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_CANCELLED, 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_DROP_TARGET_EVENT, 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_TRANSLATED_KEY_PRESS, 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_TRANSLATED_KEY_RELEASE, 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // GestureEvent types 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_GESTURE_SCROLL_BEGIN, 33a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) ET_GESTURE_TYPE_START = ET_GESTURE_SCROLL_BEGIN, 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_GESTURE_SCROLL_END, 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_GESTURE_SCROLL_UPDATE, 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_GESTURE_TAP, 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_GESTURE_TAP_DOWN, 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_GESTURE_TAP_CANCEL, 39a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) ET_GESTURE_TAP_UNCONFIRMED, // User tapped, but the tap delay hasn't expired. 40a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) ET_GESTURE_DOUBLE_TAP, 4146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) ET_GESTURE_BEGIN, // The first event sent when each finger is pressed. 4246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) ET_GESTURE_END, // Sent for each released finger. 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_GESTURE_TWO_FINGER_TAP, 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_GESTURE_PINCH_BEGIN, 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_GESTURE_PINCH_END, 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_GESTURE_PINCH_UPDATE, 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_GESTURE_LONG_PRESS, 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ET_GESTURE_LONG_TAP, 49cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // A SWIPE gesture can happen at the end of a touch sequence involving one or 50cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // more fingers if the finger velocity was high enough when the first finger 51cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // was released. 52cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ET_GESTURE_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, 88010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EF_COMMAND_DOWN = 1 << 7, // GUI Key (e.g. Command on OS X keyboards, 89010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) // Search on Chromebook keyboards, 90010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) // Windows on MS-oriented keyboards) 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EF_EXTENDED = 1 << 8, // Windows extended key (see WM_KEYDOWN doc) 927d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) EF_IS_SYNTHESIZED = 1 << 9, 93a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) EF_ALTGR_DOWN = 1 << 10, 94c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch EF_MOD3_DOWN = 1 << 11, 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 970529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch// Flags specific to key events 980529e5d033099cbfc42635f6f6183833b09dff6eBen Murdochenum KeyEventFlags { 990529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch EF_NUMPAD_KEY = 1 << 16, // Key originates from number pad (Xkb only) 1005c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EF_IME_FABRICATED_KEY = 1 << 17, // Key event fabricated by the underlying 1015c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu // IME without a user action. 1025c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu // (Linux X11 only) 10346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) EF_IS_REPEAT = 1 << 18, 10446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) EF_FUNCTION_KEY = 1 << 19, // Key originates from function key row 1055f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) EF_FINAL = 1 << 20, // Do not remap; the event was created with 1065f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) // the desired final values. 1070529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch}; 1080529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Flags specific to mouse events 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)enum MouseEventFlags { 111cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) EF_IS_DOUBLE_CLICK = 1 << 16, 112cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) EF_IS_TRIPLE_CLICK = 1 << 17, 113cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) EF_IS_NON_CLIENT = 1 << 18, 114cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) EF_FROM_TOUCH = 1 << 19, // Indicates this mouse event is generated 115cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // from an unconsumed touch/gesture event. 116cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) EF_TOUCH_ACCESSIBILITY = 1 << 20, // Indicates this event was generated from 117cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // touch accessibility mode. 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Result of dispatching an event. 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)enum EventResult { 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ER_UNHANDLED = 0, // The event hasn't been handled. The event can be 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // propagated to other handlers. 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ER_HANDLED = 1 << 0, // The event has already been handled, but it can 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // still be propagated to other handlers. 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ER_CONSUMED = 1 << 1, // The event has been handled, and it should not be 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // propagated to other handlers. 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Phase of the event dispatch. 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)enum EventPhase { 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EP_PREDISPATCH, 1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EP_PRETARGET, 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EP_TARGET, 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EP_POSTTARGET, 1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EP_POSTDISPATCH 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 139116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Device ID for Touch and Key Events. 140116680a4aac90f2aa7413d9095a592090648e557Ben Murdochenum EventDeviceId { 141116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch ED_UNKNOWN_DEVICE = -1 142116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}; 143116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace ui 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 146d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#endif // UI_EVENTS_EVENT_CONSTANTS_H_ 147