| // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef UI_EVENTS_EVENT_CONSTANTS_H_ |
| #define UI_EVENTS_EVENT_CONSTANTS_H_ |
| |
| namespace ui { |
| |
| // Event types. (prefixed because of a conflict with windows headers) |
| enum EventType { |
| ET_UNKNOWN = 0, |
| ET_MOUSE_PRESSED, |
| ET_MOUSE_DRAGGED, |
| ET_MOUSE_RELEASED, |
| ET_MOUSE_MOVED, |
| ET_MOUSE_ENTERED, |
| ET_MOUSE_EXITED, |
| ET_KEY_PRESSED, |
| ET_KEY_RELEASED, |
| ET_MOUSEWHEEL, |
| ET_MOUSE_CAPTURE_CHANGED, // Event has no location. |
| ET_TOUCH_RELEASED, |
| ET_TOUCH_PRESSED, |
| ET_TOUCH_MOVED, |
| ET_TOUCH_CANCELLED, |
| ET_DROP_TARGET_EVENT, |
| |
| // PointerEvent types |
| ET_POINTER_DOWN, |
| ET_POINTER_MOVED, |
| ET_POINTER_UP, |
| ET_POINTER_CANCELLED, |
| ET_POINTER_ENTERED, |
| ET_POINTER_EXITED, |
| |
| // GestureEvent types |
| ET_GESTURE_SCROLL_BEGIN, |
| ET_GESTURE_TYPE_START = ET_GESTURE_SCROLL_BEGIN, |
| ET_GESTURE_SCROLL_END, |
| ET_GESTURE_SCROLL_UPDATE, |
| ET_GESTURE_TAP, |
| ET_GESTURE_TAP_DOWN, |
| ET_GESTURE_TAP_CANCEL, |
| ET_GESTURE_TAP_UNCONFIRMED, // User tapped, but the tap delay hasn't expired. |
| ET_GESTURE_DOUBLE_TAP, |
| ET_GESTURE_BEGIN, // The first event sent when each finger is pressed. |
| ET_GESTURE_END, // Sent for each released finger. |
| ET_GESTURE_TWO_FINGER_TAP, |
| ET_GESTURE_PINCH_BEGIN, |
| ET_GESTURE_PINCH_END, |
| ET_GESTURE_PINCH_UPDATE, |
| ET_GESTURE_LONG_PRESS, |
| ET_GESTURE_LONG_TAP, |
| // A SWIPE gesture can happen at the end of a touch sequence involving one or |
| // more fingers if the finger velocity was high enough when the first finger |
| // was released. |
| ET_GESTURE_SWIPE, |
| ET_GESTURE_SHOW_PRESS, |
| |
| // Sent by Win8+ metro when the user swipes from the bottom or top. |
| ET_GESTURE_WIN8_EDGE_SWIPE, |
| |
| // Scroll support. |
| // TODO[davemoore] we need to unify these events w/ touch and gestures. |
| ET_SCROLL, |
| ET_SCROLL_FLING_START, |
| ET_SCROLL_FLING_CANCEL, |
| ET_GESTURE_TYPE_END = ET_SCROLL_FLING_CANCEL, |
| |
| // Sent by the system to indicate any modal type operations, such as drag and |
| // drop or menus, should stop. |
| ET_CANCEL_MODE, |
| |
| // Sent by the CrOS gesture library for interesting patterns that we want |
| // to track with the UMA system. |
| ET_UMA_DATA, |
| |
| // Must always be last. User namespace starts above this value. |
| // See ui::RegisterCustomEventType(). |
| ET_LAST |
| }; |
| |
| // Event flags currently supported. It is OK to add values to the middle of |
| // this list and/or reorder it, but make sure you also touch the various other |
| // enums/constants that want to stay in sync with this. |
| enum EventFlags { |
| EF_NONE = 0, // Used to denote no flags explicitly |
| |
| // Universally applicable status bits. |
| EF_IS_SYNTHESIZED = 1 << 0, |
| |
| // Modifier key state. |
| EF_SHIFT_DOWN = 1 << 1, |
| EF_CONTROL_DOWN = 1 << 2, |
| EF_ALT_DOWN = 1 << 3, |
| EF_COMMAND_DOWN = 1 << 4, // GUI Key (e.g. Command on OS X |
| // keyboards, Search on Chromebook |
| // keyboards, Windows on MS-oriented |
| // keyboards) |
| EF_ALTGR_DOWN = 1 << 5, |
| EF_MOD3_DOWN = 1 << 6, |
| |
| // Other keyboard state. |
| EF_NUM_LOCK_ON = 1 << 7, |
| EF_CAPS_LOCK_ON = 1 << 8, |
| EF_SCROLL_LOCK_ON = 1 << 9, |
| |
| // Mouse buttons. |
| EF_LEFT_MOUSE_BUTTON = 1 << 10, |
| EF_MIDDLE_MOUSE_BUTTON = 1 << 11, |
| EF_RIGHT_MOUSE_BUTTON = 1 << 12, |
| EF_BACK_MOUSE_BUTTON = 1 << 13, |
| EF_FORWARD_MOUSE_BUTTON = 1 << 14, |
| }; |
| |
| // Flags specific to key events |
| enum KeyEventFlags { |
| EF_IME_FABRICATED_KEY = 1 << 15, // Key event fabricated by the underlying |
| // IME without a user action. |
| // (Linux X11 only) |
| EF_IS_REPEAT = 1 << 16, |
| EF_FINAL = 1 << 17, // Do not remap; the event was created with |
| // the desired final values. |
| EF_IS_EXTENDED_KEY = 1 << 18, // Windows extended key (see WM_KEYDOWN doc) |
| }; |
| |
| // Flags specific to mouse events |
| enum MouseEventFlags { |
| EF_IS_DOUBLE_CLICK = 1 << 15, |
| EF_IS_TRIPLE_CLICK = 1 << 16, |
| EF_IS_NON_CLIENT = 1 << 17, |
| EF_FROM_TOUCH = 1 << 18, // Indicates this mouse event is generated |
| // from an unconsumed touch/gesture event. |
| EF_TOUCH_ACCESSIBILITY = 1 << 19, // Indicates this event was generated from |
| // touch accessibility mode. |
| }; |
| |
| // Result of dispatching an event. |
| enum EventResult { |
| ER_UNHANDLED = 0, // The event hasn't been handled. The event can be |
| // propagated to other handlers. |
| ER_HANDLED = 1 << 0, // The event has already been handled, but it can |
| // still be propagated to other handlers. |
| ER_CONSUMED = 1 << 1, // The event has been handled, and it should not be |
| // propagated to other handlers. |
| ER_DISABLE_SYNC_HANDLING = |
| 1 << 2, // The event shouldn't be handled synchronously. This |
| // happens if the event is being handled |
| // asynchronously, or if the event is invalid and |
| // shouldn't be handled at all. |
| }; |
| |
| // Phase of the event dispatch. |
| enum EventPhase { |
| EP_PREDISPATCH, |
| EP_PRETARGET, |
| EP_TARGET, |
| EP_POSTTARGET, |
| EP_POSTDISPATCH |
| }; |
| |
| // Device ID for Touch and Key Events. |
| enum EventDeviceId { |
| ED_UNKNOWN_DEVICE = -1 |
| }; |
| |
| // Pointing device type. |
| enum class EventPointerType : int { |
| POINTER_TYPE_UNKNOWN = 0, |
| POINTER_TYPE_MOUSE, |
| POINTER_TYPE_PEN, |
| POINTER_TYPE_TOUCH, |
| }; |
| |
| } // namespace ui |
| |
| #endif // UI_EVENTS_EVENT_CONSTANTS_H_ |