sugarcube 0.7.2 → 0.7.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.md +25 -1
- data/lib/sugarcube/adjust.rb +2 -3
- data/lib/sugarcube/array.rb +16 -0
- data/lib/sugarcube/symbol.rb +37 -8
- data/lib/sugarcube/uipickerview.rb +9 -0
- data/lib/sugarcube/uisegmentedcontrol.rb +27 -0
- data/lib/sugarcube/uiview.rb +24 -5
- data/lib/sugarcube/version.rb +1 -1
- metadata +4 -2
data/README.md
CHANGED
@@ -45,6 +45,13 @@ Installation
|
|
45
45
|
Examples
|
46
46
|
========
|
47
47
|
|
48
|
+
Array
|
49
|
+
-------
|
50
|
+
|
51
|
+
```ruby
|
52
|
+
[1, 3].uiindexpath # NSIndexPath.indexPathWithIndex(1).indexPathByAddingIndex(3)
|
53
|
+
```
|
54
|
+
|
48
55
|
Fixnum
|
49
56
|
--------
|
50
57
|
|
@@ -119,6 +126,7 @@ This is the "big daddy". Lots of sugar here...
|
|
119
126
|
:rounded.uibuttontype # => UIButtonTypeRoundedRect
|
120
127
|
:highlighted.uicontrolstate # => UIControlStateHighlighted
|
121
128
|
:touch.uicontrolevent # => UIControlEventTouchUpInside
|
129
|
+
:changed.uicontrolevent # => UIControlEventValueChanged
|
122
130
|
:all.uicontrolevent # => UIControlEventAllEvents
|
123
131
|
:blue.uicolor # UIColor.blueColor
|
124
132
|
# all CSS colors are supported, and alpha
|
@@ -130,6 +138,7 @@ This is the "big daddy". Lots of sugar here...
|
|
130
138
|
:small.uifont # => UIFont.systemFontOfSize(:small.uifontsize)
|
131
139
|
:bold.uifont(:small) # UIFont.boldSystemFontOfSize(:small.uifontsize)
|
132
140
|
:large.uiactivityindicatorstyle # :large, :white, :gray
|
141
|
+
:bar.uisegmentedstyle # :plain, :bordered, :bar, :bezeled
|
133
142
|
|
134
143
|
# UITableView and UITableViewCell have LOTS of associated constants... I'm
|
135
144
|
# adding them as I come across them.
|
@@ -214,7 +223,9 @@ view.shake offset: 20, repeat: 10, duration: 5, keypath: 'transform.translation.
|
|
214
223
|
superview.shake offset: 0.1, repeat: 2, duration: 0.5, keypath: 'transform.rotation'
|
215
224
|
```
|
216
225
|
|
217
|
-
|
226
|
+
##### View factories
|
227
|
+
|
228
|
+
###### UIButton
|
218
229
|
|
219
230
|
```ruby
|
220
231
|
UIButton.buttonWithType(:custom.uibuttontype)
|
@@ -233,6 +244,8 @@ UIButton.contact => UIButton.buttonWithType(:contact.uibuttontype)
|
|
233
244
|
UIButton.contact_add => UIButton.buttonWithType(:contact_add.uibuttontype)
|
234
245
|
```
|
235
246
|
|
247
|
+
###### UITableView
|
248
|
+
|
236
249
|
```ruby
|
237
250
|
UITableView.alloc.initWithFrame([[0, 0], [320, 480]], style: :plain.uitableviewstyle)
|
238
251
|
# custom frame:
|
@@ -243,6 +256,17 @@ UITableView.alloc.initWithFrame([[0, 0], [320, 400]], style: :grouped.uitablevie
|
|
243
256
|
UITableView.plain
|
244
257
|
# custom frame:
|
245
258
|
UITableView.grouped([[0, 0], [320, 400]])
|
259
|
+
```
|
260
|
+
|
261
|
+
###### UISegmentedControle
|
262
|
+
|
263
|
+
```ruby
|
264
|
+
control = UISegmentedControl.alloc.initItems(["one", "ah-two-whoo", "thr-r-r-ree"])
|
265
|
+
control.segmentedControlStyle = :bar.uisegmentedstyle
|
266
|
+
|
267
|
+
# =>
|
268
|
+
|
269
|
+
UISegmentedControl.bar(["one", "ah-two-whoo", "thr-r-r-ree"])
|
246
270
|
```
|
247
271
|
|
248
272
|
UIControl
|
data/lib/sugarcube/adjust.rb
CHANGED
@@ -190,8 +190,7 @@ module SugarCube
|
|
190
190
|
print " "
|
191
191
|
elsif views_index < 100
|
192
192
|
print " "
|
193
|
-
elsif views_index > 999
|
194
|
-
# good god, man!
|
193
|
+
elsif views_index > 999 # good god, man!
|
195
194
|
space = ''
|
196
195
|
end
|
197
196
|
print views_index.to_s + ":" + space
|
@@ -204,7 +203,7 @@ module SugarCube
|
|
204
203
|
print ". "
|
205
204
|
tab = ""
|
206
205
|
end
|
207
|
-
puts view.
|
206
|
+
puts "#{view.class.name}(##{view.object_id}, #{view.frame.to_s})"
|
208
207
|
|
209
208
|
view.subviews.each_index {|index|
|
210
209
|
subview = view.subviews[index]
|
data/lib/sugarcube/array.rb
CHANGED
@@ -8,4 +8,20 @@ class Array
|
|
8
8
|
ret
|
9
9
|
end
|
10
10
|
|
11
|
+
def uiindexpath
|
12
|
+
if self.length == 0
|
13
|
+
raise "An index path must have at least one index"
|
14
|
+
end
|
15
|
+
|
16
|
+
path = nil
|
17
|
+
self.each do |val|
|
18
|
+
if path
|
19
|
+
path = path.indexPathByAddingIndex(val)
|
20
|
+
else
|
21
|
+
path = NSIndexPath.indexPathWithIndex(val)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
return path
|
25
|
+
end
|
26
|
+
|
11
27
|
end
|
data/lib/sugarcube/symbol.rb
CHANGED
@@ -25,27 +25,32 @@ You can extend the defaults by adding entries:
|
|
25
25
|
class Symbol
|
26
26
|
class << self
|
27
27
|
attr_accessor :devices
|
28
|
+
attr_accessor :orientations
|
29
|
+
attr_accessor :returnkeys
|
30
|
+
attr_accessor :statusbar_styles
|
31
|
+
attr_accessor :barmetrics
|
32
|
+
attr_accessor :barbuttomitems
|
33
|
+
attr_accessor :keyboardtypes
|
34
|
+
|
28
35
|
attr_accessor :textalignments
|
29
36
|
attr_accessor :linebreakmodes
|
30
37
|
attr_accessor :baselineadjustments
|
31
|
-
attr_accessor :
|
38
|
+
attr_accessor :system_fonts
|
39
|
+
attr_accessor :font_sizes
|
40
|
+
|
32
41
|
attr_accessor :buttontypes
|
33
42
|
attr_accessor :bordertypes
|
34
43
|
attr_accessor :controlstates
|
35
44
|
attr_accessor :controlevents
|
36
|
-
attr_accessor :system_fonts
|
37
|
-
attr_accessor :font_sizes
|
38
|
-
attr_accessor :returnkeys
|
39
45
|
attr_accessor :activityindicator_styles
|
46
|
+
attr_accessor :segmented_styles
|
47
|
+
attr_accessor :datepicker_modes
|
48
|
+
|
40
49
|
attr_accessor :tableview_styles
|
41
50
|
attr_accessor :tableview_rowanimation
|
42
51
|
attr_accessor :tableview_cellstyles
|
43
52
|
attr_accessor :tableview_cellaccessorytype
|
44
53
|
attr_accessor :tableview_cellselectionstyle
|
45
|
-
attr_accessor :statusbar_styles
|
46
|
-
attr_accessor :barmetrics
|
47
|
-
attr_accessor :barbuttomitems
|
48
|
-
attr_accessor :keyboardtypes
|
49
54
|
end
|
50
55
|
|
51
56
|
@devices = {
|
@@ -114,6 +119,7 @@ class Symbol
|
|
114
119
|
touch: UIControlEventTouchUpInside,
|
115
120
|
touch_up: UIControlEventTouchUpInside,
|
116
121
|
touch_down: UIControlEventTouchDown,
|
122
|
+
changed: UIControlEventValueChanged,
|
117
123
|
|
118
124
|
touch_down_repeat: UIControlEventTouchDownRepeat,
|
119
125
|
touch_drag_inside: UIControlEventTouchDragInside,
|
@@ -172,6 +178,20 @@ class Symbol
|
|
172
178
|
gray: UIActivityIndicatorViewStyleGray,
|
173
179
|
}
|
174
180
|
|
181
|
+
@segmented_styles = {
|
182
|
+
plain: UISegmentedControlStylePlain,
|
183
|
+
bordered: UISegmentedControlStyleBordered,
|
184
|
+
bar: UISegmentedControlStyleBar,
|
185
|
+
bezeled: UISegmentedControlStyleBezeled,
|
186
|
+
}
|
187
|
+
|
188
|
+
@datepicker_modes = {
|
189
|
+
time: UIDatePickerModeTime,
|
190
|
+
date: UIDatePickerModeDate,
|
191
|
+
dateandtime: UIDatePickerModeDateAndTime,
|
192
|
+
countdowntimer: UIDatePickerModeCountDownTimer
|
193
|
+
}
|
194
|
+
|
175
195
|
@tableview_styles = {
|
176
196
|
plain: UITableViewStylePlain,
|
177
197
|
grouped: UITableViewStyleGrouped,
|
@@ -314,6 +334,15 @@ class Symbol
|
|
314
334
|
end
|
315
335
|
alias :uiactivityindicatorviewstyle :uiactivityindicatorstyle
|
316
336
|
|
337
|
+
def uisegmentedstyle
|
338
|
+
look_in(Symbol.segmented_styles)
|
339
|
+
end
|
340
|
+
alias :uisegmentedcontrolstyle :uisegmentedstyle
|
341
|
+
|
342
|
+
def uidatepickermode
|
343
|
+
look_in(Symbol.datepicker_modes)
|
344
|
+
end
|
345
|
+
|
317
346
|
def uitablestyle
|
318
347
|
look_in(Symbol.tableview_styles)
|
319
348
|
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
class UISegmentedControl
|
2
|
+
class << self
|
3
|
+
def plain(items)
|
4
|
+
ret = self.alloc.initWithItems(items)
|
5
|
+
ret.segmentedControlStyle = :plain.uisegmentedstyle
|
6
|
+
ret
|
7
|
+
end
|
8
|
+
|
9
|
+
def bordered(items)
|
10
|
+
ret = self.alloc.initWithItems(items)
|
11
|
+
ret.segmentedControlStyle = :bordered.uisegmentedstyle
|
12
|
+
ret
|
13
|
+
end
|
14
|
+
|
15
|
+
def bar(items)
|
16
|
+
ret = self.alloc.initWithItems(items)
|
17
|
+
ret.segmentedControlStyle = :bar.uisegmentedstyle
|
18
|
+
ret
|
19
|
+
end
|
20
|
+
|
21
|
+
def bezeled(items)
|
22
|
+
ret = self.alloc.initWithItems(items)
|
23
|
+
ret.segmentedControlStyle = :bezeled.uisegmentedstyle
|
24
|
+
ret
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
data/lib/sugarcube/uiview.rb
CHANGED
@@ -42,6 +42,12 @@ class UIView
|
|
42
42
|
options: options[:options] || UIViewAnimationOptionCurveLinear,
|
43
43
|
animations: proc{
|
44
44
|
self.layer.opacity = options[:opacity] || 0
|
45
|
+
|
46
|
+
if assign = options[:assign]
|
47
|
+
assign.each_pair do |key, value|
|
48
|
+
self.send("#{key}=", value)
|
49
|
+
end
|
50
|
+
end
|
45
51
|
}, completion:after
|
46
52
|
)
|
47
53
|
self
|
@@ -76,6 +82,12 @@ class UIView
|
|
76
82
|
f = self.frame
|
77
83
|
f.origin = SugarCube::CoreGraphics::Point(position)
|
78
84
|
self.frame = f
|
85
|
+
|
86
|
+
if assign = options[:assign]
|
87
|
+
assign.each_pair do |key, value|
|
88
|
+
self.send("#{key}=", value)
|
89
|
+
end
|
90
|
+
end
|
79
91
|
}, completion:after
|
80
92
|
)
|
81
93
|
self
|
@@ -90,16 +102,23 @@ class UIView
|
|
90
102
|
end
|
91
103
|
|
92
104
|
def slide(direction, options={}, &after)
|
93
|
-
|
105
|
+
if options.is_a? Numeric
|
106
|
+
options = {size: options}
|
107
|
+
end
|
108
|
+
|
94
109
|
case direction
|
95
110
|
when :left
|
96
|
-
|
111
|
+
size = options[:size] || UIScreen.mainScreen.bounds.size.width
|
112
|
+
delta_to([-size, 0], options, &after)
|
97
113
|
when :right
|
98
|
-
|
114
|
+
size = options[:size] || UIScreen.mainScreen.bounds.size.width
|
115
|
+
delta_to([+size, 0], options, &after)
|
99
116
|
when :up
|
100
|
-
|
117
|
+
size = options[:size] || UIScreen.mainScreen.bounds.size.height
|
118
|
+
delta_to([0, -size], options, &after)
|
101
119
|
when :down
|
102
|
-
|
120
|
+
size = options[:size] || UIScreen.mainScreen.bounds.size.height
|
121
|
+
delta_to([0, +size], options, &after)
|
103
122
|
else
|
104
123
|
raise "Unknown direction #{direction.inspect}"
|
105
124
|
end
|
data/lib/sugarcube/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sugarcube
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-08-
|
13
|
+
date: 2012-08-26 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rake
|
@@ -97,6 +97,8 @@ files:
|
|
97
97
|
- lib/sugarcube/uicontrol.rb
|
98
98
|
- lib/sugarcube/uifont.rb
|
99
99
|
- lib/sugarcube/uiimage.rb
|
100
|
+
- lib/sugarcube/uipickerview.rb
|
101
|
+
- lib/sugarcube/uisegmentedcontrol.rb
|
100
102
|
- lib/sugarcube/uitableview.rb
|
101
103
|
- lib/sugarcube/uiview.rb
|
102
104
|
- lib/sugarcube/uiviewcontroller.rb
|