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 }; 106 107 // Flags specific to mouse events 108 enum MouseEventFlags { 109 EF_IS_DOUBLE_CLICK = 1 << 16, 110 EF_IS_TRIPLE_CLICK = 1 << 17, 111 EF_IS_NON_CLIENT = 1 << 18, 112 EF_FROM_TOUCH = 1 << 19, // Indicates this mouse event is generated 113 // from an unconsumed touch/gesture event. 114 EF_TOUCH_ACCESSIBILITY = 1 << 20, // Indicates this event was generated from 115 // touch accessibility mode. 116 }; 117 118 // Result of dispatching an event. 119 enum EventResult { 120 ER_UNHANDLED = 0, // The event hasn't been handled. The event can be 121 // propagated to other handlers. 122 ER_HANDLED = 1 << 0, // The event has already been handled, but it can 123 // still be propagated to other handlers. 124 ER_CONSUMED = 1 << 1, // The event has been handled, and it should not be 125 // propagated to other handlers. 126 }; 127 128 // Phase of the event dispatch. 129 enum EventPhase { 130 EP_PREDISPATCH, 131 EP_PRETARGET, 132 EP_TARGET, 133 EP_POSTTARGET, 134 EP_POSTDISPATCH 135 }; 136 137 } // namespace ui 138 139 #endif // UI_EVENTS_EVENT_CONSTANTS_H_ 140