72 lines
2.4 KiB
Objective-C
72 lines
2.4 KiB
Objective-C
#import "RNGestureHandlerState.h"
|
|
#import "RNGestureHandlerEvents.h"
|
|
|
|
#import <Foundation/Foundation.h>
|
|
#import <UIKit/UIKit.h>
|
|
#import <React/RCTConvert.h>
|
|
|
|
#define VEC_LEN_SQ(pt) (pt.x * pt.x + pt.y * pt.y)
|
|
#define TEST_MIN_IF_NOT_NAN(value, limit) \
|
|
(!isnan(limit) && ((limit < 0 && value <= limit) || (limit >= 0 && value >= limit)))
|
|
|
|
#define TEST_MAX_IF_NOT_NAN(value, max) \
|
|
(!isnan(max) && ((max < 0 && value < max) || (max >= 0 && value > max)))
|
|
|
|
#define APPLY_PROP(recognizer, config, type, prop, propName) do { \
|
|
id value = config[propName]; \
|
|
if (value != nil) recognizer.prop = [RCTConvert type:value]; \
|
|
} while(0)
|
|
|
|
#define APPLY_FLOAT_PROP(prop) do { APPLY_PROP(recognizer, config, CGFloat, prop, @#prop); } while(0)
|
|
#define APPLY_INT_PROP(prop) do { APPLY_PROP(recognizer, config, NSInteger, prop, @#prop); } while(0)
|
|
#define APPLY_NAMED_INT_PROP(prop, propName) do { APPLY_PROP(recognizer, config, NSInteger, prop, propName); } while(0)
|
|
|
|
@protocol RNGestureHandlerEventEmitter
|
|
|
|
- (void)sendTouchEvent:(nonnull RNGestureHandlerEvent *)event;
|
|
|
|
- (void)sendStateChangeEvent:(nonnull RNGestureHandlerStateChange *)event;
|
|
|
|
@end
|
|
|
|
|
|
@protocol RNRootViewGestureRecognizerDelegate <UIGestureRecognizerDelegate>
|
|
|
|
- (void)gestureRecognizer:(nullable UIGestureRecognizer *)gestureRecognizer
|
|
didActivateInRootView:(nullable UIView *)rootView;
|
|
|
|
@end
|
|
|
|
|
|
@interface RNGestureHandler : NSObject <UIGestureRecognizerDelegate> {
|
|
|
|
@protected UIGestureRecognizer *_recognizer;
|
|
@protected RNGestureHandlerState _lastState;
|
|
|
|
}
|
|
|
|
+ (nullable RNGestureHandler *)findGestureHandlerByRecognizer:(nonnull UIGestureRecognizer *)recognizer;
|
|
|
|
- (nonnull instancetype)initWithTag:(nonnull NSNumber *)tag;
|
|
|
|
@property (nonatomic, readonly, nonnull) NSNumber *tag;
|
|
@property (nonatomic, weak, nullable) id<RNGestureHandlerEventEmitter> emitter;
|
|
@property (nonatomic, readonly, nullable) UIGestureRecognizer *recognizer;
|
|
@property (nonatomic) BOOL enabled;
|
|
@property(nonatomic) BOOL shouldCancelWhenOutside;
|
|
|
|
- (void)bindToView:(nonnull UIView *)view;
|
|
- (void)unbindFromView;
|
|
- (void)configure:(nullable NSDictionary *)config NS_REQUIRES_SUPER;
|
|
- (void)handleGesture:(nonnull id)recognizer;
|
|
- (RNGestureHandlerState)state;
|
|
- (nullable RNGestureHandlerEventExtraData *)eventExtraData:(nonnull id)recognizer;
|
|
|
|
- (void)reset;
|
|
- (void)sendEventsInState:(RNGestureHandlerState)state
|
|
forViewWithTag:(nonnull NSNumber *)reactTag
|
|
withExtraData:(RNGestureHandlerEventExtraData *)extraData;
|
|
|
|
@end
|
|
|