ruby_motion_query 0.1.1

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.
Files changed (46) hide show
  1. checksums.yaml +15 -0
  2. data/LICENSE +21 -0
  3. data/README.md +964 -0
  4. data/lib/ruby_motion_query.rb +8 -0
  5. data/motion/ext.rb +34 -0
  6. data/motion/ruby_motion_query/actions.rb +44 -0
  7. data/motion/ruby_motion_query/animations.rb +125 -0
  8. data/motion/ruby_motion_query/app.rb +71 -0
  9. data/motion/ruby_motion_query/base.rb +161 -0
  10. data/motion/ruby_motion_query/color.rb +80 -0
  11. data/motion/ruby_motion_query/data.rb +32 -0
  12. data/motion/ruby_motion_query/device.rb +73 -0
  13. data/motion/ruby_motion_query/enumerablish.rb +74 -0
  14. data/motion/ruby_motion_query/event.rb +125 -0
  15. data/motion/ruby_motion_query/events.rb +65 -0
  16. data/motion/ruby_motion_query/factory.rb +32 -0
  17. data/motion/ruby_motion_query/font.rb +66 -0
  18. data/motion/ruby_motion_query/format.rb +54 -0
  19. data/motion/ruby_motion_query/image.rb +79 -0
  20. data/motion/ruby_motion_query/position.rb +45 -0
  21. data/motion/ruby_motion_query/selectors.rb +56 -0
  22. data/motion/ruby_motion_query/stylers/ui_button_styler.rb +32 -0
  23. data/motion/ruby_motion_query/stylers/ui_control_styler.rb +8 -0
  24. data/motion/ruby_motion_query/stylers/ui_date_picker_styler.rb +8 -0
  25. data/motion/ruby_motion_query/stylers/ui_image_view_styler.rb +14 -0
  26. data/motion/ruby_motion_query/stylers/ui_label_styler.rb +36 -0
  27. data/motion/ruby_motion_query/stylers/ui_navigation_bar_styler.rb +8 -0
  28. data/motion/ruby_motion_query/stylers/ui_page_control_styler.rb +8 -0
  29. data/motion/ruby_motion_query/stylers/ui_refresh_control_styler.rb +8 -0
  30. data/motion/ruby_motion_query/stylers/ui_scroll_view_styler.rb +10 -0
  31. data/motion/ruby_motion_query/stylers/ui_segmented_control_styler.rb +8 -0
  32. data/motion/ruby_motion_query/stylers/ui_slider_styler.rb +8 -0
  33. data/motion/ruby_motion_query/stylers/ui_stepper_styler.rb +8 -0
  34. data/motion/ruby_motion_query/stylers/ui_switch_styler.rb +10 -0
  35. data/motion/ruby_motion_query/stylers/ui_tab_bar_styler.rb +8 -0
  36. data/motion/ruby_motion_query/stylers/ui_table_view_cell_styler.rb +8 -0
  37. data/motion/ruby_motion_query/stylers/ui_table_view_styler.rb +8 -0
  38. data/motion/ruby_motion_query/stylers/ui_text_field_styler.rb +8 -0
  39. data/motion/ruby_motion_query/stylers/ui_text_view_styler.rb +8 -0
  40. data/motion/ruby_motion_query/stylers/ui_view_styler.rb +243 -0
  41. data/motion/ruby_motion_query/stylesheet.rb +185 -0
  42. data/motion/ruby_motion_query/subviews.rb +52 -0
  43. data/motion/ruby_motion_query/tags.rb +14 -0
  44. data/motion/ruby_motion_query/traverse.rb +183 -0
  45. data/motion/ruby_motion_query/utils.rb +53 -0
  46. metadata +89 -0
@@ -0,0 +1,125 @@
1
+ module RubyMotionQuery
2
+ class Event
3
+ attr_accessor :block, :recognizer, :event, :sdk_event_or_recognizer, :gesture, :sender
4
+
5
+ def initialize(sender, event, block)
6
+ if @sdk_event_or_recognizer = VIEW_GESTURES[event]
7
+ @gesture = true
8
+ elsif sender.is_a?(UIControl)
9
+ @gesture = false
10
+ @sdk_event_or_recognizer = CONTROL_EVENTS[event]
11
+ end
12
+
13
+ if @sdk_event_or_recognizer
14
+ @sender = sender
15
+ @event = event
16
+ @block = block
17
+
18
+ if @gesture
19
+ @recognizer = @sdk_event_or_recognizer.alloc.initWithTarget(self, action: :handle_gesture_or_event)
20
+ @sender.addGestureRecognizer(@recognizer)
21
+ else
22
+ @sender.addTarget(self, action: :handle_gesture_or_event, forControlEvents: @sdk_event_or_recognizer)
23
+ end
24
+ else
25
+ raise "[RMQ Error] Invalid event or gesture or invalid sender (#{event}). Example of use: button.on(:touch) { my_code }"
26
+ end
27
+ end
28
+
29
+ def handle_gesture_or_event
30
+ case @block.arity
31
+ when 2
32
+ @block.call(@sender, self)
33
+ when 1
34
+ @block.call(@sender)
35
+ else
36
+ @block.call
37
+ end
38
+ end
39
+
40
+ def set_options(opts)
41
+ if gesture?
42
+ @recognizer.tap do |o|
43
+ o.cancelsTouchesInView = opts[:cancels_touches_in_view] if opts.include?(:cancels_touches_in_view)
44
+ o.delegate = opts[:delegate] if opts.include?(:delegate)
45
+ o.numberOfTapsRequired = opts[:taps_required] if opts.include?(:taps_required)
46
+ o.numberOfTouchesRequired = opts[:fingers_required] if opts.include?(:fingers_required)
47
+ # TODO, add the rest
48
+ end
49
+ end
50
+ end
51
+
52
+ def gesture?
53
+ @gesture
54
+ end
55
+
56
+ def location
57
+ if gesture?
58
+ @recognizer.locationInView(@sender)
59
+ else
60
+ @sender.convertRect(@sender.bounds, toView: nil).origin
61
+ end
62
+ end
63
+
64
+ def location_in(view)
65
+ if gesture?
66
+ @recognizer.locationInView(view)
67
+ else
68
+ @sender.convertRect(@sender.bounds, toView: view).origin
69
+ end
70
+ end
71
+
72
+ def remove
73
+ if @sender
74
+ if self.gesture?
75
+ @sender.removeGestureRecognizer(@recognizer)
76
+ else
77
+ @sender.removeTarget(self, action: :handle_gesture_or_event, forControlEvents: @sdk_event_or_recognizer)
78
+ end
79
+ end
80
+ end
81
+
82
+ CONTROL_EVENTS = {
83
+ touch: UIControlEventTouchUpInside,
84
+ touch_up: UIControlEventTouchUpInside,
85
+ touch_down: UIControlEventTouchDown,
86
+ touch_start: UIControlEventTouchDown | UIControlEventTouchDragEnter,
87
+ touch_stop: UIControlEventTouchUpInside | UIControlEventTouchCancel | UIControlEventTouchDragExit,
88
+ change: UIControlEventValueChanged | UIControlEventEditingChanged,
89
+
90
+ touch_down_repeat: UIControlEventTouchDownRepeat,
91
+ touch_drag_inside: UIControlEventTouchDragInside,
92
+ touch_drag_outside: UIControlEventTouchDragOutside,
93
+ touch_drag_enter: UIControlEventTouchDragEnter,
94
+ touch_drag_exit: UIControlEventTouchDragExit,
95
+ touch_up_inside: UIControlEventTouchUpInside,
96
+ touch_up_outside: UIControlEventTouchUpOutside,
97
+ touch_cancel: UIControlEventTouchCancel,
98
+
99
+ value_changed: UIControlEventValueChanged,
100
+
101
+ editing_did_begin: UIControlEventEditingDidBegin,
102
+ editing_changed: UIControlEventEditingChanged,
103
+ editing_did_change: UIControlEventEditingChanged,
104
+ editing_did_end: UIControlEventEditingDidEnd,
105
+ editing_did_endonexit: UIControlEventEditingDidEndOnExit,
106
+
107
+ all_touch: UIControlEventAllTouchEvents,
108
+ all_editing: UIControlEventAllEditingEvents,
109
+
110
+ application: UIControlEventApplicationReserved,
111
+ system: UIControlEventSystemReserved,
112
+ all: UIControlEventAllEvents
113
+ }
114
+
115
+ VIEW_GESTURES = {
116
+ tap: UITapGestureRecognizer,
117
+ pinch: UIPinchGestureRecognizer,
118
+ rotate: UIRotationGestureRecognizer,
119
+ swipe: UISwipeGestureRecognizer,
120
+ pan: UIPanGestureRecognizer,
121
+ long_press: UILongPressGestureRecognizer
122
+ }
123
+
124
+ end
125
+ end
@@ -0,0 +1,65 @@
1
+ module RubyMotionQuery
2
+ class RMQ
3
+ def on(event, args = {}, &block)
4
+ selected.each do |view|
5
+ events(view).on(view, event, args, &block)
6
+ end
7
+
8
+ self
9
+ end
10
+
11
+ def off(*events)
12
+ selected.each do |view|
13
+ events(view).off(events)
14
+ end
15
+
16
+ self
17
+ end
18
+
19
+ protected
20
+
21
+ def events(view)
22
+ view.rmq_data.events ||= Events.new
23
+ end
24
+ end
25
+
26
+ class Events
27
+ def initialize
28
+ @event_set = {}
29
+ end
30
+
31
+ def has_events?
32
+ !RMQ.is_blank?(@event_set)
33
+ end
34
+
35
+ def has_event?(event)
36
+ @event_set.include?(event)
37
+ end
38
+
39
+ def on(view, event, args = {}, &block)
40
+ raise "[RMQ Error] Event already exists on this object: #{event}. Remove first, using .off" if @event_set[event]
41
+
42
+ if rmqe = RubyMotionQuery::Event.new(view, event, block)
43
+ rmqe.set_options(args)
44
+
45
+ @event_set[event] = rmqe
46
+ end
47
+
48
+ view
49
+ end
50
+
51
+ def off(*events)
52
+ events.flatten!
53
+ events = @event_set.keys if events.length == 0
54
+
55
+ events.each do |event|
56
+ if rm_event = @event_set.delete(event)
57
+ rm_event.remove
58
+ end
59
+ end
60
+
61
+ self
62
+ end
63
+
64
+ end
65
+ end
@@ -0,0 +1,32 @@
1
+ module RubyMotionQuery
2
+ class RMQ
3
+ # TODO question, should there be a rmq pool to reuse?
4
+
5
+ def create_blank_rmq
6
+ RMQ.create_with_array_and_selectors([], self.selectors, @context)
7
+ end
8
+
9
+ def create_rmq_in_context(*selectors)
10
+ RMQ.create_with_selectors(selectors, @context)
11
+ end
12
+
13
+ class << self
14
+
15
+ def create_with_selectors(selectors, context)
16
+ RMQ.new.tap do |o|
17
+ o.context = context
18
+ o.selectors = selectors
19
+ end
20
+ end
21
+
22
+ def create_with_array_and_selectors(array, selectors, context)
23
+ RMQ.new.tap do |o|
24
+ o.context = context
25
+ o.selectors = selectors
26
+ o.selected = array # Must be last
27
+ end
28
+ end
29
+
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,66 @@
1
+ # Add custome app-wide fonts here
2
+ module RubyMotionQuery
3
+ class RMQ
4
+ def self.font
5
+ Font
6
+ end
7
+
8
+ def font
9
+ Font
10
+ end
11
+ end
12
+
13
+ class Font
14
+ class << self
15
+ # One way to add your own fonts it to open up the Font class and add your
16
+ # own message.
17
+ #
18
+ # STANDARD_FONT = 'Helvetica Neue'
19
+ # def standard_at_size(size);
20
+ # UIFont.fontWithName(STANDARD_NAME, size: size)
21
+ # end
22
+ # def standard_large ; @standard_large ||= standard_at_size(18) ; end
23
+ # def standard_medium ; @standard_medium ||= standard_at_size(12) ; end
24
+
25
+
26
+ # Another way is to add named fonts:
27
+ #
28
+ # Example
29
+ # RubyMotionQuery::Font.add_named_font :large, STANDARD_FONT, 44
30
+ #
31
+ # # The use like so in your stylesheet:
32
+ # font = font.large
33
+ def add_named(key, font_name_or_font, size = nil)
34
+ font = if font_name_or_font.is_a?(UIFont)
35
+ font_name_or_font
36
+ else
37
+ Font.font_with_name(font_name_or_font, size || 22)
38
+ end
39
+
40
+ Font.define_singleton_method(key) do
41
+ font
42
+ end
43
+ end
44
+
45
+ def font_with_name(name, size)
46
+ UIFont.fontWithName(name, size: size)
47
+ end
48
+ alias :with_name :font_with_name
49
+
50
+ # Use this in the console to get a list of font families
51
+ def family_list
52
+ UIFont.familyNames.sort
53
+ end
54
+
55
+ def for_family(family)
56
+ UIFont.fontNamesForFamilyName(family)
57
+ end
58
+
59
+ def system(size = nil)
60
+ UIFont.systemFontOfSize(size)
61
+ end
62
+
63
+ end
64
+ end
65
+
66
+ end
@@ -0,0 +1,54 @@
1
+ module RubyMotionQuery
2
+ class RMQ
3
+ def format
4
+ Format
5
+ end
6
+ def self.format
7
+ Format
8
+ end
9
+ end
10
+
11
+ class Format
12
+ class << self
13
+
14
+ # rmq.format.number(1232, '#,##0.##')
15
+ def numeric(number, format)
16
+ RubyMotionQuery::Format.numeric_formatter(format).stringFromNumber(number)
17
+ end
18
+ alias :number :numeric
19
+
20
+ # rmq.format.date(Time.now, 'EEE, MMM d, ''yy')
21
+ #
22
+ # See <http://www.unicode.org/reports/tr35/tr35-19.html#Date_Format_Patterns>
23
+ # for more information about date format strings.
24
+ def date(date, format)
25
+ RubyMotionQuery::Format.date_formatter(format).stringFromDate(date)
26
+ end
27
+
28
+ def numeric_formatter(format)
29
+ @_numeric_formatter ||= {}
30
+
31
+ # Caching here is very important for performance
32
+ @_numeric_formatter[format] ||= begin
33
+ number_formater = NSNumberFormatter.alloc.init
34
+ number_formater.setPositiveFormat(format)
35
+ number_formater
36
+ end
37
+ end
38
+
39
+ def date_formatter(format)
40
+ @_date_formatters ||= {}
41
+
42
+ # Caching here is very important for performance
43
+ @_date_formatters[format] ||= begin
44
+ format_template = NSDateFormatter.dateFormatFromTemplate(format, options:0,
45
+ locale: NSLocale.currentLocale)
46
+ date_formatter = NSDateFormatter.alloc.init
47
+ date_formatter.setDateFormat(format_template)
48
+ date_formatter
49
+ end
50
+ end
51
+
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,79 @@
1
+ module RubyMotionQuery
2
+ class RMQ
3
+ def self.image
4
+ ImageUtils
5
+ end
6
+
7
+ def image
8
+ ImageUtils
9
+ end
10
+ end
11
+
12
+ class ImageUtils
13
+ class << self
14
+ DEFAULT_IMAGE_EXT = 'png'
15
+ def resource_for_device(file_base_name, opts = {})
16
+ resource( RMQ.device.four_inch? ? "#{file_base_name}-568h" : file_base_name, opts)
17
+ end
18
+
19
+ def resource(file_base_name, opts = {})
20
+ ext = opts[:ext] || DEFAULT_IMAGE_EXT
21
+ cached = opts[:cached]
22
+ cached = true if cached.nil?
23
+
24
+ if cached
25
+ UIImage.imageNamed("#{file_base_name}.#{ext}")
26
+ else
27
+ file_base_name << '@2x' if RMQ.device.retina?
28
+ file = NSBundle.mainBundle.pathForResource(file_base_name, ofType: ext)
29
+ UIImage.imageWithContentsOfFile(file)
30
+ end
31
+ end
32
+
33
+ def resource_resizable(file_base_name, opts)
34
+ # TODO, also alloow short syntax, t: instead of top: etc
35
+ ext = opts[:ext] || DEFAULT_IMAGE_EXT
36
+ image = resource(file_base_name, opts)
37
+ image.resizableImageWithCapInsets([opts[:top], opts[:left], opts[:bottom], opts[:right]], resizingMode: UIImageResizingModeStretch)
38
+ end
39
+
40
+ # [FROM Sugarcube, thanks Sugarcube]
41
+ #
42
+ # Easily take a snapshot of a `UIView`.
43
+ #
44
+ # Calling `from_view` with no arguments will return the image based on the
45
+ # `bounds` of the image. In the case of container views (notably
46
+ # `UIScrollView` and its children) this does not include the entire contents,
47
+ # which is something you probably want.
48
+ #
49
+ # If you pass a truthy value to this method, it will use the `contentSize` of
50
+ # the view instead of the `bounds`, and it will draw all the child views, not
51
+ # just those that are visible in the viewport.
52
+ #
53
+ # It is guaranteed that `true` and `:all` will always have this behavior. In
54
+ # the future, if this argument becomes something that accepts multiple values,
55
+ # those two are sacred.
56
+ def from_view(view, use_content_size = false)
57
+ scale = UIScreen.mainScreen.scale
58
+ if use_content_size
59
+ UIGraphicsBeginImageContextWithOptions(view.contentSize, false, scale)
60
+ context = UIGraphicsGetCurrentContext()
61
+ view.subviews.each do |subview|
62
+ CGContextSaveGState(context)
63
+ CGContextTranslateCTM(context, subview.frame.origin.x, subview.frame.origin.y)
64
+ subview.layer.renderInContext(context)
65
+ CGContextRestoreGState(context)
66
+ end
67
+ image = UIGraphicsGetImageFromCurrentImageContext()
68
+ UIGraphicsEndImageContext()
69
+ else
70
+ UIGraphicsBeginImageContextWithOptions(view.bounds.size, false, scale)
71
+ view.layer.renderInContext(UIGraphicsGetCurrentContext())
72
+ image = UIGraphicsGetImageFromCurrentImageContext()
73
+ UIGraphicsEndImageContext()
74
+ end
75
+ image
76
+ end
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,45 @@
1
+ module RubyMotionQuery
2
+ class RMQ
3
+
4
+ def move(opts)
5
+ # TODO, add centered and from_bottom and from_top, and bottom and top
6
+ # TODO, add animate option
7
+ left = opts[:left] || opts[:l] || opts[:x]
8
+ top = opts[:top] || opts[:t] || opts[:y]
9
+ width = opts[:width] || opts[:w]
10
+ height = opts[:height] || opts[:h]
11
+
12
+ selected.each do |view|
13
+ view.frame = [
14
+ [left || view.origin.x, top || view.origin.y],
15
+ [width || view.size.width, height || view.size.height]
16
+ ]
17
+ end
18
+
19
+ self
20
+ end
21
+ alias :resize :move
22
+
23
+ def align(direction)
24
+ # TODO
25
+ # rmq(UILabel).align(:left)
26
+ # rmq(UILabel).align(:left, :top)
27
+ end
28
+
29
+ def nudge(opts)
30
+ left = opts[:left] || opts[:l] || 0
31
+ right = opts[:right] || opts[:r] || 0
32
+ up = opts[:up] || opts[:u] || 0
33
+ down = opts[:down] || opts[:d] || 0
34
+
35
+ selected.each do |view|
36
+ f = view.frame
37
+ f.origin = [view.origin.x - left + right, view.origin.y + down - up]
38
+ view.frame = f
39
+ end
40
+
41
+ self
42
+ end
43
+
44
+ end
45
+ end
@@ -0,0 +1,56 @@
1
+ module RubyMotionQuery
2
+ class RMQ
3
+
4
+ def selectors=(value)
5
+ @selected_dirty = true
6
+ normalize_selectors(value)
7
+ @_selectors = value
8
+ end
9
+ def selectors
10
+ @_selectors
11
+ end
12
+
13
+ def match_context(new_selectors)
14
+ match(context_or_context_view, new_selectors)
15
+ end
16
+
17
+ def match(view, new_selectors)
18
+ new_selectors.each do |selector|
19
+ if selector == :tagged
20
+ return true unless view.rmq_data.has_tag?
21
+ elsif selector.is_a?(Hash)
22
+ return true if match_hash(view, selector)
23
+ elsif selector.is_a?(Symbol)
24
+ # TODO, make this faster
25
+ return true if (view.rmq_data.style_name == selector) || view.rmq_data.has_tag?(selector)
26
+ elsif selector.is_a?(Integer)
27
+ # TODO, make this hugely faster
28
+ return true if view.object_id == selector
29
+ elsif RMQ.is_class?(selector)
30
+ return true if view.is_a?(selector)
31
+ else
32
+ return true if view == selector
33
+ end
34
+ end
35
+
36
+ false
37
+ end
38
+
39
+
40
+ private
41
+
42
+ def match_hash(view, hash)
43
+ # TODO, check speed, and do sub hashes for stuff like origin
44
+ # it's probably pretty slow
45
+ hash.each do |k,v|
46
+ return true if view.respond_to?(k) && (view.send(k) == v)
47
+ end
48
+ false
49
+ end
50
+
51
+ def normalize_selectors(a = self.selectors)
52
+ a.flatten! if a
53
+ a
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,32 @@
1
+ module RubyMotionQuery
2
+ module Stylers
3
+ class UIButtonStyler < UIControlStyler
4
+
5
+ def text=(value)
6
+ @view.setTitle(value, forState: UIControlStateNormal)
7
+ end
8
+ def text
9
+ @view.title
10
+ end
11
+
12
+ def font=(value) ; @view.titleLabel.font = value ; end
13
+ def font ; @view.titleLabel.font ; end
14
+
15
+ def color=(value)
16
+ @view.setTitleColor(value, forState: UIControlStateNormal)
17
+ end
18
+ def color
19
+ @view.titleColor
20
+ end
21
+
22
+ def image_normal=(value)
23
+ @view.setImage value, forState: UIControlStateNormal
24
+ end
25
+
26
+ def image_highlighted=(value)
27
+ @view.setImage value, forState: UIControlStateHighlighted
28
+ end
29
+
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,8 @@
1
+ module RubyMotionQuery
2
+ module Stylers
3
+
4
+ class UIControlStyler < UIViewStyler
5
+ end
6
+
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ module RubyMotionQuery
2
+ module Stylers
3
+
4
+ class UIDatePickerStyler < UIControlStyler
5
+ end
6
+
7
+ end
8
+ end
@@ -0,0 +1,14 @@
1
+ module RubyMotionQuery
2
+ module Stylers
3
+
4
+ class UIImageViewStyler < UIViewStyler
5
+ def image=(value)
6
+ @view.image = value
7
+ end
8
+ def image
9
+ @view.image
10
+ end
11
+ end
12
+
13
+ end
14
+ end
@@ -0,0 +1,36 @@
1
+ module RubyMotionQuery
2
+ module Stylers
3
+
4
+ class UILabelStyler < UIViewStyler
5
+ def text=(value) ; @view.text = value ; end
6
+ def text ; @view.text ; end
7
+
8
+ def font=(value) ; @view.font = value ; end
9
+ def font ; @view.font ; end
10
+
11
+ def color=(value) ; @view.textColor = value ; end
12
+ def color ; @view.textColor ; end
13
+
14
+ def text_alignment=(value)
15
+ @view.textAlignment = TEXT_ALIGNMENTS[value] || value
16
+ end
17
+ def text_alignment
18
+ @view.textAlignment
19
+ end
20
+
21
+ def resize_to_fit_text
22
+ @view.sizeToFit
23
+ end
24
+ alias :size_to_fit :resize_to_fit_text
25
+
26
+ TEXT_ALIGNMENTS = {
27
+ left: NSTextAlignmentLeft,
28
+ center: NSTextAlignmentCenter,
29
+ right: NSTextAlignmentRight,
30
+ justified: NSTextAlignmentJustified,
31
+ natural: NSTextAlignmentNatural
32
+ }
33
+ end
34
+
35
+ end
36
+ end
@@ -0,0 +1,8 @@
1
+ module RubyMotionQuery
2
+ module Stylers
3
+
4
+ class UINavigationBarStyler < UIViewStyler
5
+ end
6
+
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ module RubyMotionQuery
2
+ module Stylers
3
+
4
+ class UIPageControlStyler < UIControlStyler
5
+ end
6
+
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ module RubyMotionQuery
2
+ module Stylers
3
+
4
+ class UIRefreshControlStyler < UIControlStyler
5
+ end
6
+
7
+ end
8
+ end
@@ -0,0 +1,10 @@
1
+ module RubyMotionQuery
2
+ module Stylers
3
+
4
+ class UIScrollViewStyler < UIViewStyler
5
+ def paging=(value) ; @view.pagingEnabled = value ; end
6
+ def paging ; @view.isPagingEnabled ; end
7
+ end
8
+
9
+ end
10
+ end
@@ -0,0 +1,8 @@
1
+ module RubyMotionQuery
2
+ module Stylers
3
+
4
+ class UISegmentedControlStyler < UIControlStyler
5
+ end
6
+
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ module RubyMotionQuery
2
+ module Stylers
3
+
4
+ class UISliderStyler < UIControlStyler
5
+ end
6
+
7
+ end
8
+ end