react-native-gesture-handler 2.15.0 → 2.16.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.
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>