event_constants.h revision 0529e5d033099cbfc42635f6f6183833b09dff6e
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#ifndef UI_EVENTS_EVENT_CONSTANTS_H_ 6d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#define UI_EVENTS_EVENT_CONSTANTS_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace ui { 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Event types. (prefixed because of a conflict with windows headers) 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)enum EventType { 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_UNKNOWN = 0, 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_MOUSE_PRESSED, 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_MOUSE_DRAGGED, 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_MOUSE_RELEASED, 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_MOUSE_MOVED, 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_MOUSE_ENTERED, 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_MOUSE_EXITED, 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_KEY_PRESSED, 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_KEY_RELEASED, 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_MOUSEWHEEL, 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_MOUSE_CAPTURE_CHANGED, // Event has no location. 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_TOUCH_RELEASED, 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_TOUCH_PRESSED, 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_TOUCH_MOVED, 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_TOUCH_STATIONARY, 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_TOUCH_CANCELLED, 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_DROP_TARGET_EVENT, 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_TRANSLATED_KEY_PRESS, 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_TRANSLATED_KEY_RELEASE, 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // GestureEvent types 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_GESTURE_SCROLL_BEGIN, 34a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) ET_GESTURE_TYPE_START = ET_GESTURE_SCROLL_BEGIN, 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_GESTURE_SCROLL_END, 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_GESTURE_SCROLL_UPDATE, 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_GESTURE_TAP, 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_GESTURE_TAP_DOWN, 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_GESTURE_TAP_CANCEL, 40a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) ET_GESTURE_TAP_UNCONFIRMED, // User tapped, but the tap delay hasn't expired. 41a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) ET_GESTURE_DOUBLE_TAP, 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_GESTURE_BEGIN, // Sent before any other gesture types. 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_GESTURE_END, // Sent after any other gestures. 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_GESTURE_TWO_FINGER_TAP, 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_GESTURE_PINCH_BEGIN, 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_GESTURE_PINCH_END, 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_GESTURE_PINCH_UPDATE, 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_GESTURE_LONG_PRESS, 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_GESTURE_LONG_TAP, 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // A SWIPE gesture can happen at the end of a TAP_UP gesture if the 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // finger(s) were moving quickly before they are released. 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_GESTURE_MULTIFINGER_SWIPE, 531e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) ET_GESTURE_SHOW_PRESS, 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 555d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // Sent by Win8+ metro when the user swipes from the bottom or top. 565d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) ET_GESTURE_WIN8_EDGE_SWIPE, 575d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Scroll support. 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // TODO[davemoore] we need to unify these events w/ touch and gestures. 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_SCROLL, 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_SCROLL_FLING_START, 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_SCROLL_FLING_CANCEL, 63a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) ET_GESTURE_TYPE_END = ET_SCROLL_FLING_CANCEL, 642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Sent by the system to indicate any modal type operations, such as drag and 662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // drop or menus, should stop. 672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ET_CANCEL_MODE, 682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 69eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch // Sent by the CrOS gesture library for interesting patterns that we want 70eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch // to track with the UMA system. 71eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch ET_UMA_DATA, 72eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Must always be last. User namespace starts above this value. 742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // See ui::RegisterCustomEventType(). 752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ET_LAST 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Event flags currently supported 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)enum EventFlags { 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EF_NONE = 0, // Used to denote no flags explicitly 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EF_CAPS_LOCK_DOWN = 1 << 0, 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EF_SHIFT_DOWN = 1 << 1, 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EF_CONTROL_DOWN = 1 << 2, 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EF_ALT_DOWN = 1 << 3, 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EF_LEFT_MOUSE_BUTTON = 1 << 4, 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EF_MIDDLE_MOUSE_BUTTON = 1 << 5, 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EF_RIGHT_MOUSE_BUTTON = 1 << 6, 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EF_COMMAND_DOWN = 1 << 7, // Only useful on OSX 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EF_EXTENDED = 1 << 8, // Windows extended key (see WM_KEYDOWN doc) 907d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) EF_IS_SYNTHESIZED = 1 << 9, 91a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) EF_ALTGR_DOWN = 1 << 10, 92c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch EF_MOD3_DOWN = 1 << 11, 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 950529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch// Flags specific to key events 960529e5d033099cbfc42635f6f6183833b09dff6eBen Murdochenum KeyEventFlags { 970529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch EF_NUMPAD_KEY = 1 << 16, // Key originates from number pad (Xkb only) 980529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch}; 990529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Flags specific to mouse events 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)enum MouseEventFlags { 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EF_IS_DOUBLE_CLICK = 1 << 16, 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EF_IS_TRIPLE_CLICK = 1 << 17, 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EF_IS_NON_CLIENT = 1 << 18, 1057d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) EF_FROM_TOUCH = 1 << 19, // Indicates this mouse event is generated 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // from an unconsumed touch/gesture event. 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Result of dispatching an event. 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)enum EventResult { 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ER_UNHANDLED = 0, // The event hasn't been handled. The event can be 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // propagated to other handlers. 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ER_HANDLED = 1 << 0, // The event has already been handled, but it can 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // still be propagated to other handlers. 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ER_CONSUMED = 1 << 1, // The event has been handled, and it should not be 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // propagated to other handlers. 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Phase of the event dispatch. 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)enum EventPhase { 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EP_PREDISPATCH, 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EP_PRETARGET, 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EP_TARGET, 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EP_POSTTARGET, 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EP_POSTDISPATCH 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace ui 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 130d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#endif // UI_EVENTS_EVENT_CONSTANTS_H_ 131