Upstream version 7.35.139.0
[platform/framework/web/crosswalk.git] / src / ui / events / event_constants.h
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_STATIONARY,
27   ET_TOUCH_CANCELLED,
28   ET_DROP_TARGET_EVENT,
29   ET_TRANSLATED_KEY_PRESS,
30   ET_TRANSLATED_KEY_RELEASE,
31
32   // GestureEvent types
33   ET_GESTURE_SCROLL_BEGIN,
34   ET_GESTURE_TYPE_START = ET_GESTURE_SCROLL_BEGIN,
35   ET_GESTURE_SCROLL_END,
36   ET_GESTURE_SCROLL_UPDATE,
37   ET_GESTURE_TAP,
38   ET_GESTURE_TAP_DOWN,
39   ET_GESTURE_TAP_CANCEL,
40   ET_GESTURE_TAP_UNCONFIRMED, // User tapped, but the tap delay hasn't expired.
41   ET_GESTURE_DOUBLE_TAP,
42   ET_GESTURE_BEGIN,  // Sent before any other gesture types.
43   ET_GESTURE_END,    // Sent after any other gestures.
44   ET_GESTURE_TWO_FINGER_TAP,
45   ET_GESTURE_PINCH_BEGIN,
46   ET_GESTURE_PINCH_END,
47   ET_GESTURE_PINCH_UPDATE,
48   ET_GESTURE_LONG_PRESS,
49   ET_GESTURE_LONG_TAP,
50   // A SWIPE gesture can happen at the end of a TAP_UP gesture if the
51   // finger(s) were moving quickly before they are released.
52   ET_GESTURE_MULTIFINGER_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,  // Only useful on OSX
89   EF_EXTENDED            = 1 << 8,  // Windows extended key (see WM_KEYDOWN doc)
90   EF_IS_SYNTHESIZED      = 1 << 9,
91   EF_ALTGR_DOWN          = 1 << 10,
92 };
93
94 // Flags specific to key events
95 enum KeyEventFlags {
96   EF_NUMPAD_KEY         = 1 << 16,  // Key originates from number pad (Xkb only)
97   EF_IME_FABRICATED_KEY = 1 << 17,  // Key event fabricated by the underlying
98                                     // IME without a user action.
99                                     // (Linux X11 only)
100 };
101
102 // Flags specific to mouse events
103 enum MouseEventFlags {
104   EF_IS_DOUBLE_CLICK    = 1 << 16,
105   EF_IS_TRIPLE_CLICK    = 1 << 17,
106   EF_IS_NON_CLIENT      = 1 << 18,
107   EF_FROM_TOUCH         = 1 << 19,  // Indicates this mouse event is generated
108                                     // from an unconsumed touch/gesture event.
109 };
110
111 // Result of dispatching an event.
112 enum EventResult {
113   ER_UNHANDLED = 0,       // The event hasn't been handled. The event can be
114                           // propagated to other handlers.
115   ER_HANDLED   = 1 << 0,  // The event has already been handled, but it can
116                           // still be propagated to other handlers.
117   ER_CONSUMED  = 1 << 1,  // The event has been handled, and it should not be
118                           // propagated to other handlers.
119 };
120
121 // Phase of the event dispatch.
122 enum EventPhase {
123   EP_PREDISPATCH,
124   EP_PRETARGET,
125   EP_TARGET,
126   EP_POSTTARGET,
127   EP_POSTDISPATCH
128 };
129
130 }  // namespace ui
131
132 #endif  // UI_EVENTS_EVENT_CONSTANTS_H_