react-native-gesture-handler 2.15.0 → 2.16.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (254) hide show
  1. package/RNGestureHandler.podspec +2 -23
  2. package/android/build.gradle +1 -1
  3. package/android/noreanimated/src/main/java/com/swmansion/gesturehandler/ReanimatedEventDispatcher.kt +2 -0
  4. package/android/paper/src/main/java/com/facebook/react/viewmanagers/RNGestureHandlerButtonManagerDelegate.java +9 -0
  5. package/android/paper/src/main/java/com/facebook/react/viewmanagers/RNGestureHandlerButtonManagerInterface.java +3 -0
  6. package/android/src/main/java/com/swmansion/gesturehandler/RNGestureHandlerPackage.kt +11 -6
  7. package/android/src/main/java/com/swmansion/gesturehandler/core/DiagonalDirections.kt +8 -0
  8. package/android/src/main/java/com/swmansion/gesturehandler/core/FlingGestureHandler.kt +65 -24
  9. package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandler.kt +86 -22
  10. package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerOrchestrator.kt +54 -29
  11. package/android/src/main/java/com/swmansion/gesturehandler/core/GestureUtils.kt +3 -0
  12. package/android/src/main/java/com/swmansion/gesturehandler/core/LongPressGestureHandler.kt +5 -1
  13. package/android/src/main/java/com/swmansion/gesturehandler/core/PanGestureHandler.kt +5 -1
  14. package/android/src/main/java/com/swmansion/gesturehandler/core/TapGestureHandler.kt +7 -3
  15. package/android/src/main/java/com/swmansion/gesturehandler/core/Vector.kt +66 -0
  16. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +119 -19
  17. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEnabledRootView.kt +2 -2
  18. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEvent.kt +1 -4
  19. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt +8 -5
  20. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.kt +7 -4
  21. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootView.kt +1 -1
  22. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerStateChangeEvent.kt +1 -4
  23. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerTouchEvent.kt +4 -7
  24. package/android/src/main/java/com/swmansion/gesturehandler/react/eventbuilders/GestureHandlerEventDataBuilder.kt +3 -0
  25. package/android/src/main/jni/cpp-adapter.cpp +18 -22
  26. package/apple/Handlers/RNFlingHandler.m +5 -4
  27. package/apple/Handlers/RNForceTouchHandler.m +3 -1
  28. package/apple/Handlers/RNHoverHandler.m +2 -1
  29. package/apple/Handlers/RNLongPressHandler.m +8 -14
  30. package/apple/Handlers/RNManualHandler.m +1 -0
  31. package/apple/Handlers/RNNativeViewHandler.mm +9 -7
  32. package/apple/Handlers/RNPanHandler.m +7 -2
  33. package/apple/Handlers/RNPinchHandler.m +50 -26
  34. package/apple/Handlers/RNRotationHandler.m +43 -29
  35. package/apple/Handlers/RNTapHandler.m +6 -4
  36. package/apple/RNGestureHandler.h +9 -0
  37. package/apple/RNGestureHandler.m +41 -4
  38. package/apple/RNGestureHandlerEvents.h +18 -9
  39. package/apple/RNGestureHandlerEvents.m +29 -11
  40. package/apple/RNGestureHandlerManager.h +5 -0
  41. package/apple/RNGestureHandlerManager.mm +32 -6
  42. package/apple/RNGestureHandlerModule.h +5 -3
  43. package/apple/RNGestureHandlerModule.mm +33 -19
  44. package/apple/RNGestureHandlerPointerType.h +8 -0
  45. package/lib/commonjs/Directions.js +19 -6
  46. package/lib/commonjs/Directions.js.map +1 -1
  47. package/lib/commonjs/PointerType.js +16 -0
  48. package/lib/commonjs/PointerType.js.map +1 -0
  49. package/lib/commonjs/RNGestureHandlerModule.web.js +7 -61
  50. package/lib/commonjs/RNGestureHandlerModule.web.js.map +1 -1
  51. package/lib/commonjs/components/DrawerLayout.js.map +1 -1
  52. package/lib/commonjs/components/GestureHandlerRootView.android.js +17 -2
  53. package/lib/commonjs/components/GestureHandlerRootView.android.js.map +1 -1
  54. package/lib/commonjs/components/GestureHandlerRootView.js +15 -2
  55. package/lib/commonjs/components/GestureHandlerRootView.js.map +1 -1
  56. package/lib/commonjs/components/GestureHandlerRootView.web.js +15 -2
  57. package/lib/commonjs/components/GestureHandlerRootView.web.js.map +1 -1
  58. package/lib/commonjs/components/Swipeable.js +3 -1
  59. package/lib/commonjs/components/Swipeable.js.map +1 -1
  60. package/lib/commonjs/components/touchables/GenericTouchable.js +1 -0
  61. package/lib/commonjs/components/touchables/GenericTouchable.js.map +1 -1
  62. package/lib/commonjs/getShadowNodeFromRef.js +19 -2
  63. package/lib/commonjs/getShadowNodeFromRef.js.map +1 -1
  64. package/lib/commonjs/handlers/createHandler.js +5 -0
  65. package/lib/commonjs/handlers/createHandler.js.map +1 -1
  66. package/lib/commonjs/handlers/customDirectEventTypes.js +14 -0
  67. package/lib/commonjs/handlers/customDirectEventTypes.js.map +1 -0
  68. package/lib/commonjs/handlers/customDirectEventTypes.web.js +11 -0
  69. package/lib/commonjs/handlers/customDirectEventTypes.web.js.map +1 -0
  70. package/lib/commonjs/handlers/gestureHandlerCommon.js +13 -2
  71. package/lib/commonjs/handlers/gestureHandlerCommon.js.map +1 -1
  72. package/lib/commonjs/handlers/gestures/GestureDetector.js +10 -0
  73. package/lib/commonjs/handlers/gestures/GestureDetector.js.map +1 -1
  74. package/lib/commonjs/handlers/gestures/gesture.js.map +1 -1
  75. package/lib/commonjs/index.js +11 -3
  76. package/lib/commonjs/index.js.map +1 -1
  77. package/lib/commonjs/mocks.js +2 -0
  78. package/lib/commonjs/mocks.js.map +1 -1
  79. package/lib/commonjs/specs/NativeRNGestureHandlerModule.js.map +1 -1
  80. package/lib/commonjs/specs/RNGestureHandlerButtonNativeComponent.js.map +1 -1
  81. package/lib/commonjs/web/Gestures.js +66 -0
  82. package/lib/commonjs/web/Gestures.js.map +1 -0
  83. package/lib/commonjs/web/constants.js +3 -8
  84. package/lib/commonjs/web/constants.js.map +1 -1
  85. package/lib/commonjs/web/handlers/FlingGestureHandler.js +36 -12
  86. package/lib/commonjs/web/handlers/FlingGestureHandler.js.map +1 -1
  87. package/lib/commonjs/web/handlers/GestureHandler.js +10 -5
  88. package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -1
  89. package/lib/commonjs/web/handlers/IGestureHandler.js +2 -0
  90. package/lib/commonjs/web/handlers/IGestureHandler.js.map +1 -0
  91. package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +5 -6
  92. package/lib/commonjs/web/handlers/NativeViewGestureHandler.js.map +1 -1
  93. package/lib/commonjs/web/interfaces.js +1 -23
  94. package/lib/commonjs/web/interfaces.js.map +1 -1
  95. package/lib/commonjs/web/tools/EventManager.js.map +1 -1
  96. package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js +117 -118
  97. package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js.map +1 -1
  98. package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js +10 -5
  99. package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js.map +1 -1
  100. package/lib/commonjs/web/tools/InteractionManager.js +12 -3
  101. package/lib/commonjs/web/tools/InteractionManager.js.map +1 -1
  102. package/lib/commonjs/web/tools/NodeManager.js.map +1 -1
  103. package/lib/commonjs/web/tools/PointerEventManager.js +77 -27
  104. package/lib/commonjs/web/tools/PointerEventManager.js.map +1 -1
  105. package/lib/commonjs/web/tools/TouchEventManager.js +29 -6
  106. package/lib/commonjs/web/tools/TouchEventManager.js.map +1 -1
  107. package/lib/commonjs/web/tools/Vector.js +58 -0
  108. package/lib/commonjs/web/tools/Vector.js.map +1 -0
  109. package/lib/commonjs/web/utils.js +14 -0
  110. package/lib/commonjs/web/utils.js.map +1 -1
  111. package/lib/commonjs/web_hammer/NodeManager.js.map +1 -1
  112. package/lib/module/Directions.js +16 -4
  113. package/lib/module/Directions.js.map +1 -1
  114. package/lib/module/PointerType.js +9 -0
  115. package/lib/module/PointerType.js.map +1 -0
  116. package/lib/module/RNGestureHandlerModule.web.js +2 -39
  117. package/lib/module/RNGestureHandlerModule.web.js.map +1 -1
  118. package/lib/module/components/DrawerLayout.js.map +1 -1
  119. package/lib/module/components/GestureHandlerRootView.android.js +15 -2
  120. package/lib/module/components/GestureHandlerRootView.android.js.map +1 -1
  121. package/lib/module/components/GestureHandlerRootView.js +15 -3
  122. package/lib/module/components/GestureHandlerRootView.js.map +1 -1
  123. package/lib/module/components/GestureHandlerRootView.web.js +15 -3
  124. package/lib/module/components/GestureHandlerRootView.web.js.map +1 -1
  125. package/lib/module/components/Swipeable.js +3 -1
  126. package/lib/module/components/Swipeable.js.map +1 -1
  127. package/lib/module/components/touchables/GenericTouchable.js +1 -0
  128. package/lib/module/components/touchables/GenericTouchable.js.map +1 -1
  129. package/lib/module/getShadowNodeFromRef.js +19 -2
  130. package/lib/module/getShadowNodeFromRef.js.map +1 -1
  131. package/lib/module/handlers/createHandler.js +5 -1
  132. package/lib/module/handlers/createHandler.js.map +1 -1
  133. package/lib/module/handlers/customDirectEventTypes.js +3 -0
  134. package/lib/module/handlers/customDirectEventTypes.js.map +1 -0
  135. package/lib/module/handlers/customDirectEventTypes.web.js +5 -0
  136. package/lib/module/handlers/customDirectEventTypes.web.js.map +1 -0
  137. package/lib/module/handlers/gestureHandlerCommon.js +11 -1
  138. package/lib/module/handlers/gestureHandlerCommon.js.map +1 -1
  139. package/lib/module/handlers/gestures/GestureDetector.js +10 -0
  140. package/lib/module/handlers/gestures/GestureDetector.js.map +1 -1
  141. package/lib/module/handlers/gestures/gesture.js.map +1 -1
  142. package/lib/module/index.js +2 -1
  143. package/lib/module/index.js.map +1 -1
  144. package/lib/module/mocks.js +2 -0
  145. package/lib/module/mocks.js.map +1 -1
  146. package/lib/module/specs/NativeRNGestureHandlerModule.js.map +1 -1
  147. package/lib/module/specs/RNGestureHandlerButtonNativeComponent.js.map +1 -1
  148. package/lib/module/web/Gestures.js +39 -0
  149. package/lib/module/web/Gestures.js.map +1 -0
  150. package/lib/module/web/constants.js +1 -6
  151. package/lib/module/web/constants.js.map +1 -1
  152. package/lib/module/web/handlers/FlingGestureHandler.js +34 -12
  153. package/lib/module/web/handlers/FlingGestureHandler.js.map +1 -1
  154. package/lib/module/web/handlers/GestureHandler.js +7 -4
  155. package/lib/module/web/handlers/GestureHandler.js.map +1 -1
  156. package/lib/module/web/handlers/IGestureHandler.js +2 -0
  157. package/lib/module/web/handlers/IGestureHandler.js.map +1 -0
  158. package/lib/module/web/handlers/NativeViewGestureHandler.js +5 -6
  159. package/lib/module/web/handlers/NativeViewGestureHandler.js.map +1 -1
  160. package/lib/module/web/interfaces.js +0 -20
  161. package/lib/module/web/interfaces.js.map +1 -1
  162. package/lib/module/web/tools/EventManager.js.map +1 -1
  163. package/lib/module/web/tools/GestureHandlerOrchestrator.js +116 -117
  164. package/lib/module/web/tools/GestureHandlerOrchestrator.js.map +1 -1
  165. package/lib/module/web/tools/GestureHandlerWebDelegate.js +9 -4
  166. package/lib/module/web/tools/GestureHandlerWebDelegate.js.map +1 -1
  167. package/lib/module/web/tools/InteractionManager.js +9 -3
  168. package/lib/module/web/tools/InteractionManager.js.map +1 -1
  169. package/lib/module/web/tools/NodeManager.js.map +1 -1
  170. package/lib/module/web/tools/PointerEventManager.js +75 -27
  171. package/lib/module/web/tools/PointerEventManager.js.map +1 -1
  172. package/lib/module/web/tools/TouchEventManager.js +28 -6
  173. package/lib/module/web/tools/TouchEventManager.js.map +1 -1
  174. package/lib/module/web/tools/Vector.js +47 -0
  175. package/lib/module/web/tools/Vector.js.map +1 -0
  176. package/lib/module/web/utils.js +4 -0
  177. package/lib/module/web/utils.js.map +1 -1
  178. package/lib/module/web_hammer/NodeManager.js.map +1 -1
  179. package/lib/typescript/Directions.d.ts +7 -0
  180. package/lib/typescript/PointerType.d.ts +6 -0
  181. package/lib/typescript/RNGestureHandlerModule.web.d.ts +4 -39
  182. package/lib/typescript/components/DrawerLayout.d.ts +1 -2
  183. package/lib/typescript/components/GestureHandlerRootView.android.d.ts +1 -1
  184. package/lib/typescript/components/GestureHandlerRootView.d.ts +1 -1
  185. package/lib/typescript/components/GestureHandlerRootView.web.d.ts +1 -1
  186. package/lib/typescript/components/touchables/GenericTouchable.d.ts +2 -1
  187. package/lib/typescript/getShadowNodeFromRef.d.ts +1 -1
  188. package/lib/typescript/handlers/NativeViewGestureHandler.d.ts +1 -1
  189. package/lib/typescript/handlers/customDirectEventTypes.d.ts +1 -0
  190. package/lib/typescript/handlers/customDirectEventTypes.web.d.ts +2 -0
  191. package/lib/typescript/handlers/gestureHandlerCommon.d.ts +13 -2
  192. package/lib/typescript/handlers/gestures/GestureDetector.d.ts +2 -1
  193. package/lib/typescript/handlers/gestures/gesture.d.ts +1 -2
  194. package/lib/typescript/index.d.ts +2 -1
  195. package/lib/typescript/mocks.d.ts +1 -0
  196. package/lib/typescript/specs/NativeRNGestureHandlerModule.d.ts +6 -6
  197. package/lib/typescript/specs/RNGestureHandlerButtonNativeComponent.d.ts +4 -1
  198. package/lib/typescript/web/Gestures.d.ts +36 -0
  199. package/lib/typescript/web/constants.d.ts +1 -6
  200. package/lib/typescript/web/handlers/FlingGestureHandler.d.ts +3 -3
  201. package/lib/typescript/web/handlers/GestureHandler.d.ts +12 -9
  202. package/lib/typescript/web/handlers/IGestureHandler.d.ts +38 -0
  203. package/lib/typescript/web/handlers/NativeViewGestureHandler.d.ts +1 -0
  204. package/lib/typescript/web/interfaces.d.ts +9 -16
  205. package/lib/typescript/web/tools/EventManager.d.ts +15 -12
  206. package/lib/typescript/web/tools/GestureHandlerDelegate.d.ts +3 -4
  207. package/lib/typescript/web/tools/GestureHandlerOrchestrator.d.ts +7 -5
  208. package/lib/typescript/web/tools/GestureHandlerWebDelegate.d.ts +3 -3
  209. package/lib/typescript/web/tools/InteractionManager.d.ts +6 -6
  210. package/lib/typescript/web/tools/NodeManager.d.ts +4 -3
  211. package/lib/typescript/web/tools/PointerEventManager.d.ts +11 -2
  212. package/lib/typescript/web/tools/TouchEventManager.d.ts +6 -1
  213. package/lib/typescript/web/tools/Vector.d.ts +15 -0
  214. package/lib/typescript/web/utils.d.ts +6 -4
  215. package/lib/typescript/web_hammer/NodeManager.d.ts +1 -1
  216. package/package.json +2 -1
  217. package/src/Directions.ts +21 -4
  218. package/src/PointerType.ts +6 -0
  219. package/src/RNGestureHandlerModule.web.ts +3 -44
  220. package/src/components/DrawerLayout.tsx +1 -1
  221. package/src/components/GestureHandlerRootView.android.tsx +13 -5
  222. package/src/components/GestureHandlerRootView.tsx +10 -5
  223. package/src/components/GestureHandlerRootView.web.tsx +10 -5
  224. package/src/components/Swipeable.tsx +2 -0
  225. package/src/components/touchables/GenericTouchable.tsx +3 -0
  226. package/src/getShadowNodeFromRef.ts +28 -6
  227. package/src/handlers/createHandler.tsx +14 -2
  228. package/src/handlers/customDirectEventTypes.ts +2 -0
  229. package/src/handlers/customDirectEventTypes.web.ts +5 -0
  230. package/src/handlers/gestureHandlerCommon.ts +30 -1
  231. package/src/handlers/gestures/GestureDetector.tsx +15 -0
  232. package/src/handlers/gestures/gesture.ts +1 -1
  233. package/src/index.ts +2 -1
  234. package/src/mocks.ts +2 -0
  235. package/src/specs/NativeRNGestureHandlerModule.ts +8 -8
  236. package/src/specs/RNGestureHandlerButtonNativeComponent.ts +4 -0
  237. package/src/web/Gestures.ts +41 -0
  238. package/src/web/constants.ts +1 -7
  239. package/src/web/handlers/FlingGestureHandler.ts +54 -24
  240. package/src/web/handlers/GestureHandler.ts +17 -12
  241. package/src/web/handlers/IGestureHandler.ts +50 -0
  242. package/src/web/handlers/NativeViewGestureHandler.ts +5 -6
  243. package/src/web/interfaces.ts +15 -17
  244. package/src/web/tools/EventManager.ts +16 -14
  245. package/src/web/tools/GestureHandlerDelegate.ts +3 -4
  246. package/src/web/tools/GestureHandlerOrchestrator.ts +162 -147
  247. package/src/web/tools/GestureHandlerWebDelegate.ts +14 -9
  248. package/src/web/tools/InteractionManager.ts +18 -12
  249. package/src/web/tools/NodeManager.ts +4 -3
  250. package/src/web/tools/PointerEventManager.ts +189 -154
  251. package/src/web/tools/TouchEventManager.ts +128 -120
  252. package/src/web/tools/Vector.ts +60 -0
  253. package/src/web/utils.ts +16 -4
  254. package/src/web_hammer/NodeManager.ts +1 -1
@@ -14,11 +14,9 @@
14
14
 
15
15
  #import <React/RCTConvert.h>
16
16
 
17
- #import <mach/mach_time.h>
18
-
19
17
  @interface RNBetterLongPressGestureRecognizer : UILongPressGestureRecognizer {
20
- uint64_t startTime;
21
- uint64_t previousTime;
18
+ CFTimeInterval startTime;
19
+ CFTimeInterval previousTime;
22
20
  }
23
21
 
24
22
  - (id)initWithGestureHandler:(RNGestureHandler *)gestureHandler;
@@ -42,7 +40,7 @@
42
40
 
43
41
  - (void)handleGesture:(UIGestureRecognizer *)recognizer
44
42
  {
45
- previousTime = mach_absolute_time();
43
+ previousTime = CACurrentMediaTime();
46
44
  [_gestureHandler handleGesture:recognizer];
47
45
  }
48
46
 
@@ -59,11 +57,12 @@
59
57
 
60
58
  - (void)touchesBegan:(NSSet<RNGHUITouch *> *)touches withEvent:(UIEvent *)event
61
59
  {
60
+ [_gestureHandler setCurrentPointerType:event];
62
61
  [super touchesBegan:touches withEvent:event];
63
62
  [_gestureHandler.pointerTracker touchesBegan:touches withEvent:event];
64
63
 
65
64
  _initPosition = [self locationInView:self.view];
66
- startTime = mach_absolute_time();
65
+ startTime = CACurrentMediaTime();
67
66
  [_gestureHandler reset];
68
67
  [self triggerAction];
69
68
  }
@@ -108,13 +107,7 @@
108
107
 
109
108
  - (NSUInteger)getDuration
110
109
  {
111
- static mach_timebase_info_data_t sTimebaseInfo;
112
-
113
- if (sTimebaseInfo.denom == 0) {
114
- mach_timebase_info(&sTimebaseInfo);
115
- }
116
-
117
- return (NSUInteger)(((previousTime - startTime) * sTimebaseInfo.numer / (sTimebaseInfo.denom * 1000000)));
110
+ return (previousTime - startTime) * 1000;
118
111
  }
119
112
 
120
113
  @end
@@ -181,7 +174,8 @@
181
174
  return [RNGestureHandlerEventExtraData forPosition:[recognizer locationInView:recognizer.view]
182
175
  withAbsolutePosition:[recognizer locationInView:recognizer.view.window]
183
176
  withNumberOfTouches:recognizer.numberOfTouches
184
- withDuration:[(RNBetterLongPressGestureRecognizer *)recognizer getDuration]];
177
+ withDuration:[(RNBetterLongPressGestureRecognizer *)recognizer getDuration]
178
+ withPointerType:_pointerType];
185
179
  }
186
180
  @end
187
181
 
@@ -24,6 +24,7 @@
24
24
 
25
25
  - (void)touchesBegan:(NSSet<RNGHUITouch *> *)touches withEvent:(UIEvent *)event
26
26
  {
27
+ [_gestureHandler setCurrentPointerType:event];
27
28
  [super touchesBegan:touches withEvent:event];
28
29
  [_gestureHandler.pointerTracker touchesBegan:touches withEvent:event];
29
30
 
@@ -39,6 +39,7 @@
39
39
 
40
40
  - (void)touchesBegan:(NSSet<RNGHUITouch *> *)touches withEvent:(UIEvent *)event
41
41
  {
42
+ [_gestureHandler setCurrentPointerType:event];
42
43
  [_gestureHandler.pointerTracker touchesBegan:touches withEvent:event];
43
44
  }
44
45
 
@@ -133,6 +134,7 @@
133
134
 
134
135
  - (void)handleTouchDown:(UIView *)sender forEvent:(UIEvent *)event
135
136
  {
137
+ [self setCurrentPointerType:event];
136
138
  [self reset];
137
139
 
138
140
  if (_disallowInterruption) {
@@ -148,21 +150,21 @@
148
150
 
149
151
  [self sendEventsInState:RNGestureHandlerStateActive
150
152
  forViewWithTag:sender.reactTag
151
- withExtraData:[RNGestureHandlerEventExtraData forPointerInside:YES]];
153
+ withExtraData:[RNGestureHandlerEventExtraData forPointerInside:YES withPointerType:_pointerType]];
152
154
  }
153
155
 
154
156
  - (void)handleTouchUpOutside:(UIView *)sender forEvent:(UIEvent *)event
155
157
  {
156
158
  [self sendEventsInState:RNGestureHandlerStateEnd
157
159
  forViewWithTag:sender.reactTag
158
- withExtraData:[RNGestureHandlerEventExtraData forPointerInside:NO]];
160
+ withExtraData:[RNGestureHandlerEventExtraData forPointerInside:NO withPointerType:_pointerType]];
159
161
  }
160
162
 
161
163
  - (void)handleTouchUpInside:(UIView *)sender forEvent:(UIEvent *)event
162
164
  {
163
165
  [self sendEventsInState:RNGestureHandlerStateEnd
164
166
  forViewWithTag:sender.reactTag
165
- withExtraData:[RNGestureHandlerEventExtraData forPointerInside:YES]];
167
+ withExtraData:[RNGestureHandlerEventExtraData forPointerInside:YES withPointerType:_pointerType]];
166
168
  }
167
169
 
168
170
  - (void)handleDragExit:(UIView *)sender forEvent:(UIEvent *)event
@@ -173,11 +175,11 @@
173
175
  [control cancelTrackingWithEvent:event];
174
176
  [self sendEventsInState:RNGestureHandlerStateEnd
175
177
  forViewWithTag:sender.reactTag
176
- withExtraData:[RNGestureHandlerEventExtraData forPointerInside:NO]];
178
+ withExtraData:[RNGestureHandlerEventExtraData forPointerInside:NO withPointerType:_pointerType]];
177
179
  } else {
178
180
  [self sendEventsInState:RNGestureHandlerStateActive
179
181
  forViewWithTag:sender.reactTag
180
- withExtraData:[RNGestureHandlerEventExtraData forPointerInside:NO]];
182
+ withExtraData:[RNGestureHandlerEventExtraData forPointerInside:NO withPointerType:_pointerType]];
181
183
  }
182
184
  }
183
185
 
@@ -185,14 +187,14 @@
185
187
  {
186
188
  [self sendEventsInState:RNGestureHandlerStateActive
187
189
  forViewWithTag:sender.reactTag
188
- withExtraData:[RNGestureHandlerEventExtraData forPointerInside:YES]];
190
+ withExtraData:[RNGestureHandlerEventExtraData forPointerInside:YES withPointerType:_pointerType]];
189
191
  }
190
192
 
191
193
  - (void)handleTouchCancel:(UIView *)sender forEvent:(UIEvent *)event
192
194
  {
193
195
  [self sendEventsInState:RNGestureHandlerStateCancelled
194
196
  forViewWithTag:sender.reactTag
195
- withExtraData:[RNGestureHandlerEventExtraData forPointerInside:NO]];
197
+ withExtraData:[RNGestureHandlerEventExtraData forPointerInside:NO withPointerType:_pointerType]];
196
198
  }
197
199
 
198
200
  @end
@@ -9,6 +9,7 @@
9
9
  #import "RNPanHandler.h"
10
10
 
11
11
  #if TARGET_OS_OSX
12
+
12
13
  @interface RNBetterPanGestureRecognizer : NSPanGestureRecognizer
13
14
  #else
14
15
  #import <UIKit/UIGestureRecognizerSubclass.h>
@@ -166,6 +167,7 @@
166
167
 
167
168
  - (void)mouseDown:(NSEvent *)event
168
169
  {
170
+ [_gestureHandler setCurrentPointerTypeToMouse];
169
171
  // super call was moved to interactionsBegan method to keep the
170
172
  // original order of calls
171
173
  [self interactionsBegan:[NSSet setWithObject:event] withEvent:event];
@@ -187,6 +189,7 @@
187
189
 
188
190
  - (void)touchesBegan:(NSSet<RNGHUITouch *> *)touches withEvent:(UIEvent *)event
189
191
  {
192
+ [_gestureHandler setCurrentPointerType:event];
190
193
  // super call was moved to interactionsBegan method to keep the
191
194
  // original order of calls
192
195
  [self interactionsBegan:touches withEvent:event];
@@ -400,7 +403,8 @@
400
403
  withAbsolutePosition:[recognizer locationInView:recognizer.view.window.contentView]
401
404
  withTranslation:[recognizer translationInView:recognizer.view.window.contentView]
402
405
  withVelocity:[recognizer velocityInView:recognizer.view.window.contentView]
403
- withNumberOfTouches:1];
406
+ withNumberOfTouches:1
407
+ withPointerType:RNGestureHandlerMouse];
404
408
  }
405
409
  #else
406
410
  - (RNGestureHandlerEventExtraData *)eventExtraData:(UIPanGestureRecognizer *)recognizer
@@ -409,7 +413,8 @@
409
413
  withAbsolutePosition:[recognizer locationInView:recognizer.view.window]
410
414
  withTranslation:[recognizer translationInView:recognizer.view.window]
411
415
  withVelocity:[recognizer velocityInView:recognizer.view.window]
412
- withNumberOfTouches:recognizer.numberOfTouches];
416
+ withNumberOfTouches:recognizer.numberOfTouches
417
+ withPointerType:_pointerType];
413
418
  }
414
419
  #endif
415
420
 
@@ -13,7 +13,12 @@
13
13
  #if !TARGET_OS_TV
14
14
 
15
15
  #if TARGET_OS_OSX
16
- @interface RNBetterPinchRecognizer : NSMagnificationGestureRecognizer
16
+ @interface RNBetterPinchRecognizer : NSMagnificationGestureRecognizer {
17
+ CGFloat prevMagnification;
18
+ NSTimeInterval prevTime;
19
+ }
20
+
21
+ @property (nonatomic, readonly) CGFloat velocity;
17
22
  #else
18
23
  @interface RNBetterPinchRecognizer : UIPinchGestureRecognizer
19
24
  #endif
@@ -31,6 +36,10 @@
31
36
  if ((self = [super initWithTarget:self action:@selector(handleGesture:)])) {
32
37
  _gestureHandler = gestureHandler;
33
38
  }
39
+ #if TARGET_OS_OSX
40
+ prevMagnification = 0;
41
+ prevTime = 0;
42
+ #endif
34
43
  return self;
35
44
  }
36
45
 
@@ -67,32 +76,34 @@
67
76
  }
68
77
 
69
78
  #if TARGET_OS_OSX
70
- - (void)touchesBeganWithEvent:(NSEvent *)event
71
- {
72
- [super touchesBeganWithEvent:event];
73
- [self interactionsBegan:[NSSet setWithObject:event] withEvent:event];
74
- }
75
-
76
- - (void)touchesMovedWithEvent:(NSEvent *)event
77
- {
78
- [super touchesMovedWithEvent:event];
79
- [self interactionsMoved:[NSSet setWithObject:event] withEvent:event];
80
- }
81
-
82
- - (void)touchesEndedWithEvent:(NSEvent *)event
83
- {
84
- [super touchesEndedWithEvent:event];
85
- [self interactionsEnded:[NSSet setWithObject:event] withEvent:event];
86
- }
79
+ - (void)magnifyWithEvent:(NSEvent *)event
80
+ {
81
+ [super magnifyWithEvent:event];
82
+
83
+ switch (self.state) {
84
+ case NSGestureRecognizerStateBegan:
85
+ [_gestureHandler setCurrentPointerTypeToMouse];
86
+ [self interactionsBegan:[NSSet setWithObject:event] withEvent:event];
87
+ break;
88
+ case NSGestureRecognizerStateChanged:
89
+ [self interactionsMoved:[NSSet setWithObject:event] withEvent:event];
90
+ break;
91
+ case NSGestureRecognizerStateEnded:
92
+ [self interactionsEnded:[NSSet setWithObject:event] withEvent:event];
93
+ break;
94
+ case NSGestureRecognizerStateCancelled:
95
+ [self interactionsCancelled:[NSSet setWithObject:event] withEvent:event];
96
+ break;
97
+ }
87
98
 
88
- - (void)touchesCancelledWithEvent:(NSEvent *)event
89
- {
90
- [super touchesCancelledWithEvent:event];
91
- [self interactionsCancelled:[NSSet setWithObject:event] withEvent:event];
99
+ _velocity = (self.magnification - prevMagnification) / ((event.timestamp - prevTime) * 1000);
100
+ prevMagnification = self.magnification;
101
+ prevTime = event.timestamp;
92
102
  }
93
103
  #else
94
104
  - (void)touchesBegan:(NSSet<RNGHUITouch *> *)touches withEvent:(UIEvent *)event
95
105
  {
106
+ [_gestureHandler setCurrentPointerType:event];
96
107
  [super touchesBegan:touches withEvent:event];
97
108
  [self interactionsBegan:touches withEvent:event];
98
109
  }
@@ -145,16 +156,29 @@
145
156
  {
146
157
  return [RNGestureHandlerEventExtraData forPinch:recognizer.magnification
147
158
  withFocalPoint:[recognizer locationInView:recognizer.view]
148
- withVelocity:1
149
- withNumberOfTouches:2];
159
+ withVelocity:((RNBetterPinchRecognizer *)recognizer).velocity
160
+ withNumberOfTouches:2
161
+ withPointerType:RNGestureHandlerMouse];
150
162
  }
151
163
  #else
152
164
  - (RNGestureHandlerEventExtraData *)eventExtraData:(UIPinchGestureRecognizer *)recognizer
153
165
  {
166
+ CGPoint accumulatedPoint = CGPointZero;
167
+
168
+ for (int i = 0; i < recognizer.numberOfTouches; i++) {
169
+ CGPoint location = [recognizer locationOfTouch:i inView:recognizer.view];
170
+ accumulatedPoint.x += location.x;
171
+ accumulatedPoint.y += location.y;
172
+ }
173
+
174
+ CGPoint focalPoint =
175
+ CGPointMake(accumulatedPoint.x / recognizer.numberOfTouches, accumulatedPoint.y / recognizer.numberOfTouches);
176
+
154
177
  return [RNGestureHandlerEventExtraData forPinch:recognizer.scale
155
- withFocalPoint:[recognizer locationInView:recognizer.view]
178
+ withFocalPoint:focalPoint
156
179
  withVelocity:recognizer.velocity
157
- withNumberOfTouches:recognizer.numberOfTouches];
180
+ withNumberOfTouches:recognizer.numberOfTouches
181
+ withPointerType:_pointerType];
158
182
  }
159
183
  #endif
160
184
  #endif // !TARGET_OS_TV
@@ -11,10 +11,16 @@
11
11
  #if !TARGET_OS_TV
12
12
 
13
13
  #if TARGET_OS_OSX
14
- @interface RNBetterRotationRecognizer : NSRotationGestureRecognizer
14
+ @interface RNBetterRotationRecognizer : NSRotationGestureRecognizer {
15
+ CGFloat prevRotation;
16
+ NSTimeInterval prevTime;
17
+ }
18
+
19
+ @property (nonatomic, readonly) CGFloat velocity;
15
20
  #else
16
21
  @interface RNBetterRotationRecognizer : UIRotationGestureRecognizer
17
22
  #endif
23
+
18
24
  - (id)initWithGestureHandler:(RNGestureHandler *)gestureHandler;
19
25
 
20
26
  @end
@@ -28,6 +34,10 @@
28
34
  if ((self = [super initWithTarget:self action:@selector(handleGesture:)])) {
29
35
  _gestureHandler = gestureHandler;
30
36
  }
37
+ #if TARGET_OS_OSX
38
+ prevRotation = 0;
39
+ prevTime = 0;
40
+ #endif
31
41
  return self;
32
42
  }
33
43
 
@@ -60,52 +70,54 @@
60
70
  }
61
71
 
62
72
  #if TARGET_OS_OSX
63
- - (void)touchesBeganWithEvent:(NSEvent *)event
64
- {
65
- [super touchesBeganWithEvent:event];
66
- [self interactionsBegan:[NSSet setWithObject:event] withEvent:event];
67
- }
68
-
69
- - (void)touchesMovedWithEvent:(NSEvent *)event
70
- {
71
- [super touchesMovedWithEvent:event];
72
- [self interactionsMoved:[NSSet setWithObject:event] withEvent:event];
73
- }
74
-
75
- - (void)touchesEndedWithEvent:(NSEvent *)event
76
- {
77
- [super touchesEndedWithEvent:event];
78
- [self interactionsEnded:[NSSet setWithObject:event] withEvent:event];
79
- }
73
+ - (void)rotateWithEvent:(NSEvent *)event
74
+ {
75
+ [super rotateWithEvent:event];
76
+
77
+ switch (self.state) {
78
+ case NSGestureRecognizerStateBegan:
79
+ [_gestureHandler setCurrentPointerTypeToMouse];
80
+ [self interactionsBegan:[NSSet setWithObject:event] withEvent:event];
81
+ break;
82
+ case NSGestureRecognizerStateChanged:
83
+ [self interactionsMoved:[NSSet setWithObject:event] withEvent:event];
84
+ break;
85
+ case NSGestureRecognizerStateEnded:
86
+ [self interactionsEnded:[NSSet setWithObject:event] withEvent:event];
87
+ break;
88
+ case NSGestureRecognizerStateCancelled:
89
+ [self interactionsCancelled:[NSSet setWithObject:event] withEvent:event];
90
+ break;
91
+ }
80
92
 
81
- - (void)touchesCancelledWithEvent:(NSEvent *)event
82
- {
83
- [super touchesCancelledWithEvent:event];
84
- [self interactionsCancelled:[NSSet setWithObject:event] withEvent:event];
93
+ _velocity = (self.rotation - prevRotation) / ((event.timestamp - prevTime) * 1000);
94
+ prevRotation = self.rotation;
95
+ prevTime = event.timestamp;
85
96
  }
86
97
  #else
87
98
  - (void)touchesBegan:(NSSet<RNGHUITouch *> *)touches withEvent:(UIEvent *)event
88
99
  {
100
+ [_gestureHandler setCurrentPointerType:event];
89
101
  [super touchesBegan:touches withEvent:event];
90
- [self interactionsBegan:[NSSet setWithObject:event] withEvent:event];
102
+ [self interactionsBegan:touches withEvent:event];
91
103
  }
92
104
 
93
105
  - (void)touchesMoved:(NSSet<RNGHUITouch *> *)touches withEvent:(UIEvent *)event
94
106
  {
95
107
  [super touchesMoved:touches withEvent:event];
96
- [self interactionsMoved:[NSSet setWithObject:event] withEvent:event];
108
+ [self interactionsMoved:touches withEvent:event];
97
109
  }
98
110
 
99
111
  - (void)touchesEnded:(NSSet<RNGHUITouch *> *)touches withEvent:(UIEvent *)event
100
112
  {
101
113
  [super touchesEnded:touches withEvent:event];
102
- [self interactionsEnded:[NSSet setWithObject:event] withEvent:event];
114
+ [self interactionsEnded:touches withEvent:event];
103
115
  }
104
116
 
105
117
  - (void)touchesCancelled:(NSSet<RNGHUITouch *> *)touches withEvent:(UIEvent *)event
106
118
  {
107
119
  [super touchesCancelled:touches withEvent:event];
108
- [self interactionsCancelled:[NSSet setWithObject:event] withEvent:event];
120
+ [self interactionsCancelled:touches withEvent:event];
109
121
  }
110
122
  #endif
111
123
 
@@ -138,8 +150,9 @@
138
150
  {
139
151
  return [RNGestureHandlerEventExtraData forRotation:recognizer.rotation
140
152
  withAnchorPoint:[recognizer locationInView:recognizer.view]
141
- withVelocity:1
142
- withNumberOfTouches:2];
153
+ withVelocity:((RNBetterRotationRecognizer *)recognizer).velocity
154
+ withNumberOfTouches:2
155
+ withPointerType:RNGestureHandlerMouse];
143
156
  }
144
157
  #else
145
158
  - (RNGestureHandlerEventExtraData *)eventExtraData:(UIRotationGestureRecognizer *)recognizer
@@ -147,7 +160,8 @@
147
160
  return [RNGestureHandlerEventExtraData forRotation:recognizer.rotation
148
161
  withAnchorPoint:[recognizer locationInView:recognizer.view]
149
162
  withVelocity:recognizer.velocity
150
- withNumberOfTouches:recognizer.numberOfTouches];
163
+ withNumberOfTouches:recognizer.numberOfTouches
164
+ withPointerType:_pointerType];
151
165
  }
152
166
  #endif
153
167
  #endif // !TARGET_OS_TV
@@ -147,6 +147,7 @@ static const NSTimeInterval defaultMaxDuration = 0.5;
147
147
  #if TARGET_OS_OSX
148
148
  - (void)mouseDown:(NSEvent *)event
149
149
  {
150
+ [_gestureHandler setCurrentPointerTypeToMouse];
150
151
  [super mouseDown:event];
151
152
  [self interactionsBegan:[NSSet setWithObject:event] withEvent:event];
152
153
  }
@@ -184,26 +185,27 @@ static const NSTimeInterval defaultMaxDuration = 0.5;
184
185
 
185
186
  - (void)touchesBegan:(NSSet<RNGHUITouch *> *)touches withEvent:(UIEvent *)event
186
187
  {
188
+ [_gestureHandler setCurrentPointerType:event];
187
189
  [super touchesBegan:touches withEvent:event];
188
- [self interactionsBegan:[NSSet setWithObject:event] withEvent:event];
190
+ [self interactionsBegan:touches withEvent:event];
189
191
  }
190
192
 
191
193
  - (void)touchesMoved:(NSSet<RNGHUITouch *> *)touches withEvent:(UIEvent *)event
192
194
  {
193
195
  [super touchesMoved:touches withEvent:event];
194
- [self interactionsMoved:[NSSet setWithObject:event] withEvent:event];
196
+ [self interactionsMoved:touches withEvent:event];
195
197
  }
196
198
 
197
199
  - (void)touchesEnded:(NSSet<RNGHUITouch *> *)touches withEvent:(UIEvent *)event
198
200
  {
199
201
  [super touchesEnded:touches withEvent:event];
200
- [self interactionsEnded:[NSSet setWithObject:event] withEvent:event];
202
+ [self interactionsEnded:touches withEvent:event];
201
203
  }
202
204
 
203
205
  - (void)touchesCancelled:(NSSet<RNGHUITouch *> *)touches withEvent:(UIEvent *)event
204
206
  {
205
207
  [super touchesCancelled:touches withEvent:event];
206
- [self interactionsCancelled:[NSSet setWithObject:event] withEvent:event];
208
+ [self interactionsCancelled:touches withEvent:event];
207
209
  }
208
210
 
209
211
  #endif
@@ -3,6 +3,7 @@
3
3
  #import "RNGestureHandlerDirection.h"
4
4
  #import "RNGestureHandlerEvents.h"
5
5
  #import "RNGestureHandlerPointerTracker.h"
6
+ #import "RNGestureHandlerPointerType.h"
6
7
  #import "RNGestureHandlerState.h"
7
8
 
8
9
  #import <Foundation/Foundation.h>
@@ -53,6 +54,8 @@
53
54
  UIGestureRecognizer *_recognizer;
54
55
  @protected
55
56
  RNGestureHandlerState _lastState;
57
+ @protected
58
+ NSInteger _pointerType;
56
59
  }
57
60
 
58
61
  + (nullable RNGestureHandler *)findGestureHandlerByRecognizer:(nonnull UIGestureRecognizer *)recognizer;
@@ -87,4 +90,10 @@
87
90
  - (void)sendEvent:(nonnull RNGestureHandlerStateChange *)event;
88
91
  - (void)sendTouchEventInState:(RNGestureHandlerState)state forViewWithTag:(nonnull NSNumber *)reactTag;
89
92
 
93
+ #if !TARGET_OS_OSX
94
+ - (void)setCurrentPointerType:(nonnull UIEvent *)event;
95
+ #else
96
+ - (void)setCurrentPointerTypeToMouse;
97
+ #endif
98
+
90
99
  @end
@@ -176,6 +176,38 @@ static NSHashTable<RNGestureHandler *> *allGestureHandlers;
176
176
  self.recognizer.enabled = enabled;
177
177
  }
178
178
 
179
+ #if !TARGET_OS_OSX
180
+ - (void)setCurrentPointerType:(UIEvent *)event
181
+ {
182
+ UITouch *touch = [[event allTouches] anyObject];
183
+
184
+ switch (touch.type) {
185
+ case UITouchTypeDirect:
186
+ _pointerType = RNGestureHandlerTouch;
187
+ break;
188
+ case UITouchTypePencil:
189
+ _pointerType = RNGestureHandlerStylus;
190
+ break;
191
+ case UITouchTypeIndirectPointer:
192
+ _pointerType = RNGestureHandlerMouse;
193
+ break;
194
+ default:
195
+ _pointerType = RNGestureHandlerOtherPointer;
196
+ break;
197
+ }
198
+ }
199
+ #else
200
+ - (void)setCurrentPointerTypeToMouse
201
+ {
202
+ _pointerType = RNGestureHandlerMouse;
203
+ }
204
+ #endif
205
+
206
+ - (UITouchType)getPointerType
207
+ {
208
+ return _pointerType;
209
+ }
210
+
179
211
  - (void)bindToView:(RNGHUIView *)view
180
212
  {
181
213
  #if !TARGET_OS_OSX
@@ -200,11 +232,13 @@ static NSHashTable<RNGestureHandler *> *allGestureHandlers;
200
232
  #if TARGET_OS_OSX
201
233
  return [RNGestureHandlerEventExtraData forPosition:[recognizer locationInView:recognizer.view]
202
234
  withAbsolutePosition:[recognizer locationInView:recognizer.view.window.contentView]
203
- withNumberOfTouches:1];
235
+ withNumberOfTouches:1
236
+ withPointerType:RNGestureHandlerMouse];
204
237
  #else
205
238
  return [RNGestureHandlerEventExtraData forPosition:[recognizer locationInView:recognizer.view]
206
239
  withAbsolutePosition:[recognizer locationInView:recognizer.view.window]
207
- withNumberOfTouches:recognizer.numberOfTouches];
240
+ withNumberOfTouches:recognizer.numberOfTouches
241
+ withPointerType:_pointerType];
208
242
  #endif
209
243
  }
210
244
 
@@ -294,7 +328,8 @@ static NSHashTable<RNGestureHandler *> *allGestureHandlers;
294
328
  id extraData = [RNGestureHandlerEventExtraData forEventType:_pointerTracker.eventType
295
329
  withChangedPointers:_pointerTracker.changedPointersData
296
330
  withAllPointers:_pointerTracker.allPointersData
297
- withNumberOfTouches:_pointerTracker.trackedPointersCount];
331
+ withNumberOfTouches:_pointerTracker.trackedPointersCount
332
+ withPointerType:_pointerType];
298
333
  id event = [[RNGestureHandlerEvent alloc] initWithReactTag:reactTag
299
334
  handlerTag:_tag
300
335
  state:state
@@ -447,7 +482,9 @@ static NSHashTable<RNGestureHandler *> *allGestureHandlers;
447
482
  return YES;
448
483
  }
449
484
  }
450
- } else if (handler->_simultaneousHandlers) {
485
+ }
486
+
487
+ if (handler->_simultaneousHandlers) {
451
488
  for (NSNumber *handlerTag in handler->_simultaneousHandlers) {
452
489
  if ([self.tag isEqual:handlerTag]) {
453
490
  return YES;
@@ -12,36 +12,45 @@
12
12
 
13
13
  - (instancetype)initWithData:(NSDictionary *)data;
14
14
 
15
- + (RNGestureHandlerEventExtraData *)forPosition:(CGPoint)position withAbsolutePosition:(CGPoint)absolutePosition;
16
15
  + (RNGestureHandlerEventExtraData *)forPosition:(CGPoint)position
17
16
  withAbsolutePosition:(CGPoint)absolutePosition
18
- withNumberOfTouches:(NSUInteger)numberOfTouches;
17
+ withPointerType:(NSInteger)pointerType;
19
18
  + (RNGestureHandlerEventExtraData *)forPosition:(CGPoint)position
20
19
  withAbsolutePosition:(CGPoint)absolutePosition
21
20
  withNumberOfTouches:(NSUInteger)numberOfTouches
22
- withDuration:(NSUInteger)duration;
21
+ withPointerType:(NSInteger)pointerType;
22
+ + (RNGestureHandlerEventExtraData *)forPosition:(CGPoint)position
23
+ withAbsolutePosition:(CGPoint)absolutePosition
24
+ withNumberOfTouches:(NSUInteger)numberOfTouches
25
+ withDuration:(NSUInteger)duration
26
+ withPointerType:(NSInteger)pointerType;
23
27
  + (RNGestureHandlerEventExtraData *)forPan:(CGPoint)position
24
28
  withAbsolutePosition:(CGPoint)absolutePosition
25
29
  withTranslation:(CGPoint)translation
26
30
  withVelocity:(CGPoint)velocity
27
- withNumberOfTouches:(NSUInteger)numberOfTouches;
31
+ withNumberOfTouches:(NSUInteger)numberOfTouches
32
+ withPointerType:(NSInteger)pointerType;
28
33
  + (RNGestureHandlerEventExtraData *)forForce:(CGFloat)force
29
34
  forPosition:(CGPoint)position
30
35
  withAbsolutePosition:(CGPoint)absolutePosition
31
- withNumberOfTouches:(NSUInteger)numberOfTouches;
36
+ withNumberOfTouches:(NSUInteger)numberOfTouches
37
+ withPointerType:(NSInteger)pointerType;
32
38
  + (RNGestureHandlerEventExtraData *)forPinch:(CGFloat)scale
33
39
  withFocalPoint:(CGPoint)focalPoint
34
40
  withVelocity:(CGFloat)velocity
35
- withNumberOfTouches:(NSUInteger)numberOfTouches;
41
+ withNumberOfTouches:(NSUInteger)numberOfTouches
42
+ withPointerType:(NSInteger)pointerType;
36
43
  + (RNGestureHandlerEventExtraData *)forRotation:(CGFloat)rotation
37
44
  withAnchorPoint:(CGPoint)anchorPoint
38
45
  withVelocity:(CGFloat)velocity
39
- withNumberOfTouches:(NSUInteger)numberOfTouches;
46
+ withNumberOfTouches:(NSUInteger)numberOfTouches
47
+ withPointerType:(NSInteger)pointerType;
40
48
  + (RNGestureHandlerEventExtraData *)forEventType:(RNGHTouchEventType)eventType
41
49
  withChangedPointers:(NSArray<NSDictionary *> *)changedPointers
42
50
  withAllPointers:(NSArray<NSDictionary *> *)allPointers
43
- withNumberOfTouches:(NSUInteger)numberOfTouches;
44
- + (RNGestureHandlerEventExtraData *)forPointerInside:(BOOL)pointerInside;
51
+ withNumberOfTouches:(NSUInteger)numberOfTouches
52
+ withPointerType:(NSInteger)pointerType;
53
+ + (RNGestureHandlerEventExtraData *)forPointerInside:(BOOL)pointerInside withPointerType:(NSInteger)pointerType;
45
54
  @end
46
55
 
47
56
  @interface RNGestureHandlerEvent : NSObject <RCTEvent>