当前位置:编程学习 > wap >>

iOS WebCore的WebEvent和EventHandler

WebEvent是iOS专有的类,负责封装和携带从UIKit得到的系统事件信息,并由WebKit层的WAKResponder子类传递到WebCore的EventHandler。
 
开源码中WebEvent的声明为:


[cpp] typedef enum { 
    WebEventMouseDown, 
    WebEventMouseUp, 
    WebEventMouseMoved, 
     
    WebEventScrollWheel, 
     
    WebEventKeyDown, 
    WebEventKeyUp, 
     
    WebEventTouchBegin, 
    WebEventTouchChange, 
    WebEventTouchEnd, 
    WebEventTouchCancel 
} WebEventType; 
 
typedef enum { 
    WebEventTouchPhaseBegan, 
    WebEventTouchPhaseMoved, 
    WebEventTouchPhaseStationary, 
    WebEventTouchPhaseEnded, 
    WebEventTouchPhaseCancelled 
} WebEventTouchPhaseType; 
 
// These enum values are copied directly from GSEvent for compatibility.  
typedef enum 

    WebEventFlagMaskAlphaShift = 0x00010000, 
    WebEventFlagMaskShift      = 0x00020000, 
    WebEventFlagMaskControl    = 0x00040000, 
    WebEventFlagMaskAlternate  = 0x00080000, 
    WebEventFlagMaskCommand    = 0x00100000, 
} WebEventFlagValues; 
typedef unsigned WebEventFlags; 
 
// These enum values are copied directly from GSEvent for compatibility.  
typedef enum 

    WebEventCharacterSetASCII           = 0, 
    WebEventCharacterSetSymbol          = 1, 
    WebEventCharacterSetDingbats        = 2, 
    WebEventCharacterSetUnicode         = 253, 
    WebEventCharacterSetFunctionKeys    = 254, 
} WebEventCharacterSet; 
 
@inte易做图ce WebEvent : NSObject { 
@private 
    WebEventType _type; 
    CFTimeInterval _timestamp; 
     
    CGPoint _locationInWindow; 
     
    NSString *_characters; 
    NSString *_charactersIgnoringModifiers; 
    WebEventFlags _modifierFlags; 
    BOOL _keyRepeating; 
    BOOL _popupVariant; 
    uint16_t _keyCode; 
    BOOL _tabKey; 
    WebEventCharacterSet _characterSet; 
     
    float _deltaX; 
    float _deltaY; 
     
    unsigned _touchCount; 
    NSArray *_touchLocations; 
    NSArray *_touchIdentifiers; 
    NSArray *_touchPhases; 
     
    BOOL _isGesture; 
    float _gestureScale; 
    float _gestureRotation; 

 
- (WebEvent *)initWithMouseEventType:(WebEventType)type 
                           timeStamp:(CFTimeInterval)timeStamp 
                            location:(CGPoint)point; 
 
- (WebEvent *)initWithScrollWheelEventWithTimeStamp:(CFTimeInterval)timeStamp 
                                           location:(CGPoint)point 
                                              deltaX:(float)deltaX 
                                              deltaY:(float)deltaY; 
 
- (WebEvent *)initWithTouchEventType:(WebEventType)type 
                           timeStamp:(CFTimeInterval)timeStamp 
                            location:(CGPoint)point 
                           modifiers:(WebEventFlags)modifiers 
                          touchCount:(unsigned)touchCount 
                      touchLocations:(NSArray *)touchLocations 
                    touchIdentifiers:(NSArray *)touchIdentifiers 
                         touchPhases:(NSArray *)touchPhases isGesture:(BOOL)isGesture 
                        gestureScale:(float)gestureScale 
                     gestureRotation:(float)gestureRotation; 
 
- (WebEvent *)initWithKeyEventType:(WebEventType)type 
                         timeStamp:(CFTimeInterval)timeStamp 
                        characters:(NSString *)characters 
       charactersIgnoringModifiers:(NSString *)charactersIgnoringModifiers 
                         modifiers:(WebEventFlag

补充:移动开发 , IOS ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,