Home | History | Annotate | Download | only in events
      1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef UI_EVENTS_EVENT_CONSTANTS_H_
      6 #define UI_EVENTS_EVENT_CONSTANTS_H_
      7 
      8 namespace ui {
      9 
     10 // Event types. (prefixed because of a conflict with windows headers)
     11 enum EventType {
     12   ET_UNKNOWN = 0,
     13   ET_MOUSE_PRESSED,
     14   ET_MOUSE_DRAGGED,
     15   ET_MOUSE_RELEASED,
     16   ET_MOUSE_MOVED,
     17   ET_MOUSE_ENTERED,
     18   ET_MOUSE_EXITED,
     19   ET_KEY_PRESSED,
     20   ET_KEY_RELEASED,
     21   ET_MOUSEWHEEL,
     22   ET_MOUSE_CAPTURE_CHANGED,  // Event has no location.
     23   ET_TOUCH_RELEASED,
     24   ET_TOUCH_PRESSED,
     25   ET_TOUCH_MOVED,
     26   ET_TOUCH_CANCELLED,
     27   ET_DROP_TARGET_EVENT,
     28   ET_TRANSLATED_KEY_PRESS,
     29   ET_TRANSLATED_KEY_RELEASE,
     30 
     31   // GestureEvent types
     32   ET_GESTURE_SCROLL_BEGIN,
     33   ET_GESTURE_TYPE_START = ET_GESTURE_SCROLL_BEGIN,
     34   ET_GESTURE_SCROLL_END,
     35   ET_GESTURE_SCROLL_UPDATE,
     36   ET_GESTURE_TAP,
     37   ET_GESTURE_TAP_DOWN,
     38   ET_GESTURE_TAP_CANCEL,
     39   ET_GESTURE_TAP_UNCONFIRMED, // User tapped, but the tap delay hasn't expired.
     40   ET_GESTURE_DOUBLE_TAP,
     41   ET_GESTURE_BEGIN,  // The first event sent when each finger is pressed.
     42   ET_GESTURE_END,    // Sent for each released finger.
     43   ET_GESTURE_TWO_FINGER_TAP,
     44   ET_GESTURE_PINCH_BEGIN,
     45   ET_GESTURE_PINCH_END,
     46   ET_GESTURE_PINCH_UPDATE,
     47   ET_GESTURE_LONG_PRESS,
     48   ET_GESTURE_LONG_TAP,
     49   // A SWIPE gesture can happen at the end of a touch sequence involving one or
     50   // more fingers if the finger velocity was high enough when the first finger
     51   // was released.
     52   ET_GESTURE_SWIPE,
     53   ET_GESTURE_SHOW_PRESS,
     54 
     55   // Sent by Win8+ metro when the user swipes from the bottom or top.
     56   ET_GESTURE_WIN8_EDGE_SWIPE,
     57 
     58   // Scroll support.
     59   // TODO[davemoore] we need to unify these events w/ touch and gestures.
     60   ET_SCROLL,
     61   ET_SCROLL_FLING_START,
     62   ET_SCROLL_FLING_CANCEL,
     63   ET_GESTURE_TYPE_END = ET_SCROLL_FLING_CANCEL,
     64 
     65   // Sent by the system to indicate any modal type operations, such as drag and
     66   // drop or menus, should stop.
     67   ET_CANCEL_MODE,
     68 
     69   // Sent by the CrOS gesture library for interesting patterns that we want
     70   // to track with the UMA system.
     71   ET_UMA_DATA,
     72 
     73   // Must always be last. User namespace starts above this value.
     74   // See ui::RegisterCustomEventType().
     75   ET_LAST
     76 };
     77 
     78 // Event flags currently supported
     79 enum EventFlags {
     80   EF_NONE                = 0,       // Used to denote no flags explicitly
     81   EF_CAPS_LOCK_DOWN      = 1 << 0,
     82   EF_SHIFT_DOWN          = 1 << 1,
     83   EF_CONTROL_DOWN        = 1 << 2,
     84   EF_ALT_DOWN            = 1 << 3,
     85   EF_LEFT_MOUSE_BUTTON   = 1 << 4,
     86   EF_MIDDLE_MOUSE_BUTTON = 1 << 5,
     87   EF_RIGHT_MOUSE_BUTTON  = 1 << 6,
     88   EF_COMMAND_DOWN        = 1 << 7,  // GUI Key (e.g. Command on OS X keyboards,
     89                                     // Search on Chromebook keyboards,
     90                                     // Windows on MS-oriented keyboards)
     91   EF_EXTENDED            = 1 << 8,  // Windows extended key (see WM_KEYDOWN doc)
     92   EF_IS_SYNTHESIZED      = 1 << 9,
     93   EF_ALTGR_DOWN          = 1 << 10,
     94   EF_MOD3_DOWN           = 1 << 11,
     95 };
     96 
     97 // Flags specific to key events
     98 enum KeyEventFlags {
     99   EF_NUMPAD_KEY         = 1 << 16,  // Key originates from number pad (Xkb only)
    100   EF_IME_FABRICATED_KEY = 1 << 17,  // Key event fabricated by the underlying
    101                                     // IME without a user action.
    102                                     // (Linux X11 only)
    103   EF_IS_REPEAT          = 1 << 18,
    104   EF_FUNCTION_KEY       = 1 << 19,  // Key originates from function key row
    105   EF_FINAL              = 1 << 20,  // Do not remap; the event was created with
    106                                     // the desired final values.
    107 };
    108 
    109 // Flags specific to mouse events
    110 enum MouseEventFlags {
    111   EF_IS_DOUBLE_CLICK     = 1 << 16,
    112   EF_IS_TRIPLE_CLICK     = 1 << 17,
    113   EF_IS_NON_CLIENT       = 1 << 18,
    114   EF_FROM_TOUCH          = 1 << 19,  // Indicates this mouse event is generated
    115                                      // from an unconsumed touch/gesture event.
    116   EF_TOUCH_ACCESSIBILITY = 1 << 20,  // Indicates this event was generated from
    117                                      // touch accessibility mode.
    118 };
    119 
    120 // Result of dispatching an event.
    121 enum EventResult {
    122   ER_UNHANDLED = 0,       // The event hasn't been handled. The event can be
    123                           // propagated to other handlers.
    124   ER_HANDLED   = 1 << 0,  // The event has already been handled, but it can
    125                           // still be propagated to other handlers.
    126   ER_CONSUMED  = 1 << 1,  // The event has been handled, and it should not be
    127                           // propagated to other handlers.
    128 };
    129 
    130 // Phase of the event dispatch.
    131 enum EventPhase {
    132   EP_PREDISPATCH,
    133   EP_PRETARGET,
    134   EP_TARGET,
    135   EP_POSTTARGET,
    136   EP_POSTDISPATCH
    137 };
    138 
    139 // Device ID for Touch and Key Events.
    140 enum EventDeviceId {
    141   ED_UNKNOWN_DEVICE = -1
    142 };
    143 
    144 }  // namespace ui
    145 
    146 #endif  // UI_EVENTS_EVENT_CONSTANTS_H_
    147