sugarcube 3.3.7 → 3.4.0
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.
- checksums.yaml +4 -4
- data/README.md +3 -0
- data/lib/ios/sugarcube-constants/symbol.rb +19 -0
- data/lib/ios/sugarcube-gestures/gestures.rb +19 -7
- data/lib/version.rb +1 -1
- data/spec/ios/gestures_spec.rb +20 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7c825347c6958710f5ee4933a8f1f0505b1c04df
|
4
|
+
data.tar.gz: f92835087ed01e21e55609e2b91deba8a6f7b83f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a20731556cd87e0a446650fac5e1d60528e7869f8a8d388e4e43610a33ea42f4e95a50af74a0f875d3e9995d40d7d5f6953347dab4770d78150b5cb35917be23
|
7
|
+
data.tar.gz: a1ace56fcca4ac03c2d8d62ce56dc74640cd1120c180946b3f09b90c084847dfae3d6f8d42578d4f1d94a37d803dbc6c9380e3a3e2040c6e946abd1184d4cb6f
|
data/README.md
CHANGED
@@ -440,6 +440,9 @@ view.on_pan(2) # minimum and maximum fingers required
|
|
440
440
|
view.on_pan(fingers: 2)
|
441
441
|
view.on_pan(min_fingers: 2, max_fingers: 3)
|
442
442
|
|
443
|
+
# If present, overrides fingers options and instead handles gestures originating at specified screen edges (UIScreenEdgePanGestureRecognizer)
|
444
|
+
view.on_pan(edges: [<list>]) # Some combination of [:left, :right, :top, :bottom, :all].
|
445
|
+
|
443
446
|
# `on_press` is a continuous event (it uses UILongPressGestureRecognizer), so
|
444
447
|
# you need to check the `gesture`:
|
445
448
|
view.on_press do |gesture|
|
@@ -248,6 +248,12 @@ class Symbol
|
|
248
248
|
def uigesturerecognizerstate
|
249
249
|
SugarCube.look_in(self, Symbol.uigesturerecognizerstate)
|
250
250
|
end
|
251
|
+
|
252
|
+
def uirectedge
|
253
|
+
SugarCube.look_in(self, Symbol.uirectedge)
|
254
|
+
end
|
255
|
+
|
256
|
+
|
251
257
|
alias uigesturestate uigesturerecognizerstate
|
252
258
|
|
253
259
|
class << self
|
@@ -324,6 +330,8 @@ class Symbol
|
|
324
330
|
|
325
331
|
attr :uigesturerecognizerstate
|
326
332
|
|
333
|
+
attr :uirectedge
|
334
|
+
|
327
335
|
end
|
328
336
|
|
329
337
|
@uidevice = {
|
@@ -892,4 +900,15 @@ class Symbol
|
|
892
900
|
recognized: UIGestureRecognizerStateRecognized,
|
893
901
|
}
|
894
902
|
|
903
|
+
|
904
|
+
@uirectedge = {
|
905
|
+
left: UIRectEdgeLeft,
|
906
|
+
right: UIRectEdgeRight,
|
907
|
+
top: UIRectEdgeTop,
|
908
|
+
bottom: UIRectEdgeBottom,
|
909
|
+
none: UIRectEdgeNone,
|
910
|
+
all: UIRectEdgeAll
|
911
|
+
}
|
912
|
+
|
913
|
+
|
895
914
|
end
|
@@ -121,14 +121,18 @@ class UIView
|
|
121
121
|
# @option options [Fixnum] :min_fingers Minimum number of fingers for gesture to be recognized
|
122
122
|
# @option options [Fixnum] :max_fingers Maximum number of fingers for gesture to be recognized
|
123
123
|
# @option options [Fixnum] :fingers If min_fingers or max_fingers is not assigned, this will be the default.
|
124
|
+
# @option options [Array] :edges Some combination of [:left, :right, :top, :bottom, :all]. If present, overrides fingers options and instead handles gestures originating at specified screen edges.
|
124
125
|
def on_pan(fingers_or_options=nil, &proc)
|
125
126
|
fingers = nil
|
127
|
+
edge_options = [:none]
|
126
128
|
min_fingers = nil
|
127
129
|
max_fingers = nil
|
130
|
+
recognizer = nil
|
128
131
|
|
129
132
|
if fingers_or_options
|
130
133
|
if fingers_or_options.is_a? Hash
|
131
134
|
fingers = fingers_or_options[:fingers] || fingers
|
135
|
+
edge_options = fingers_or_options[:edges] || edge_options
|
132
136
|
min_fingers = fingers_or_options[:min_fingers] || min_fingers
|
133
137
|
max_fingers = fingers_or_options[:max_fingers] || max_fingers
|
134
138
|
else
|
@@ -136,13 +140,21 @@ class UIView
|
|
136
140
|
end
|
137
141
|
end
|
138
142
|
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
143
|
+
if edge_options.uniq == [:none] # full view pan, possibly with finger options
|
144
|
+
# if fingers is assigned, but not min/max, assign it as a default
|
145
|
+
min_fingers ||= fingers
|
146
|
+
max_fingers ||= fingers
|
147
|
+
recognizer = UIPanGestureRecognizer.alloc.initWithTarget(self, action:'sugarcube_handle_gesture:')
|
148
|
+
recognizer.maximumNumberOfTouches = min_fingers if min_fingers
|
149
|
+
recognizer.minimumNumberOfTouches = max_fingers if max_fingers
|
150
|
+
else #edges option, finger options ignored
|
151
|
+
edges = :none.uirectedge
|
152
|
+
edge_options.each do | edge |
|
153
|
+
edges |= (edge.uirectedge || 0)
|
154
|
+
end
|
155
|
+
recognizer = UIScreenEdgePanGestureRecognizer.alloc.initWithTarget(self, action:'sugarcube_handle_gesture:')
|
156
|
+
recognizer.edges = edges
|
157
|
+
end
|
146
158
|
sugarcube_add_gesture(proc, recognizer)
|
147
159
|
end
|
148
160
|
|
data/lib/version.rb
CHANGED
data/spec/ios/gestures_spec.rb
CHANGED
@@ -69,7 +69,7 @@ describe 'Gestures' do
|
|
69
69
|
@view.gestureRecognizers.should.include?(gesture)
|
70
70
|
end
|
71
71
|
|
72
|
-
it 'should work with options' do
|
72
|
+
it 'should work with fingers options' do
|
73
73
|
gesture = @view.on_pan(min_fingers: 2, max_fingers: 2) do |gesture|
|
74
74
|
end
|
75
75
|
gesture.should.be.kind_of(UIPanGestureRecognizer)
|
@@ -77,6 +77,25 @@ describe 'Gestures' do
|
|
77
77
|
gesture.minimumNumberOfTouches.should == 2
|
78
78
|
@view.gestureRecognizers.should.include?(gesture)
|
79
79
|
end
|
80
|
+
|
81
|
+
it 'should work with edges option' do
|
82
|
+
gesture = @view.on_pan(edges: [:top, :left]) do |gesture|
|
83
|
+
end
|
84
|
+
gesture.should.be.kind_of(UIScreenEdgePanGestureRecognizer)
|
85
|
+
gesture.edges.should == (:left.uirectedge + :top.uirectedge)
|
86
|
+
@view.gestureRecognizers.should.include?(gesture)
|
87
|
+
end
|
88
|
+
|
89
|
+
it 'should ignore :none edges option' do
|
90
|
+
gesture = @view.on_pan(edges: [:none], min_fingers: 2, max_fingers: 2) do |gesture|
|
91
|
+
end
|
92
|
+
gesture.should.be.kind_of(UIPanGestureRecognizer)
|
93
|
+
gesture.maximumNumberOfTouches.should == 2
|
94
|
+
gesture.minimumNumberOfTouches.should == 2
|
95
|
+
@view.gestureRecognizers.should.include?(gesture)
|
96
|
+
end
|
97
|
+
|
98
|
+
|
80
99
|
end
|
81
100
|
|
82
101
|
describe 'on_press' do
|
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: 3.
|
4
|
+
version: 3.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Colin T.A. Gray
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date:
|
15
|
+
date: 2016-07-27 00:00:00.000000000 Z
|
16
16
|
dependencies: []
|
17
17
|
description: |
|
18
18
|
== Description
|
@@ -312,17 +312,17 @@ require_paths:
|
|
312
312
|
- lib
|
313
313
|
required_ruby_version: !ruby/object:Gem::Requirement
|
314
314
|
requirements:
|
315
|
-
- -
|
315
|
+
- - ">="
|
316
316
|
- !ruby/object:Gem::Version
|
317
317
|
version: '0'
|
318
318
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
319
319
|
requirements:
|
320
|
-
- -
|
320
|
+
- - ">="
|
321
321
|
- !ruby/object:Gem::Version
|
322
322
|
version: '0'
|
323
323
|
requirements: []
|
324
324
|
rubyforge_project:
|
325
|
-
rubygems_version: 2.4.5
|
325
|
+
rubygems_version: 2.4.5.1
|
326
326
|
signing_key:
|
327
327
|
specification_version: 4
|
328
328
|
summary: Extensions for Ruby to make Rubymotion development more enjoyable, and hopefully
|