Move parseFontFaceDescriptor to CSSPropertyParser.cpp
[chromium-blink-merge.git] / third_party / WebKit / Source / platform / PlatformEvent.h
blobf4b1949133c7a7dab98e90a986f3761cfbe3201b
1 /*
2 * Copyright (C) 2011 Apple Inc. All rights reserved.
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
14 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
17 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23 * THE POSSIBILITY OF SUCH DAMAGE.
26 #ifndef PlatformEvent_h
27 #define PlatformEvent_h
29 namespace blink {
31 class PlatformEvent {
32 public:
33 enum Type {
34 NoType = 0,
36 // PlatformKeyboardEvent
37 KeyDown,
38 KeyUp,
39 RawKeyDown,
40 Char,
42 // PlatformMouseEvent
43 MouseMoved,
44 MousePressed,
45 MouseReleased,
46 MouseScroll,
48 // PlatformWheelEvent
49 Wheel,
51 // PlatformGestureEvent
52 GestureScrollBegin,
53 GestureScrollEnd,
54 GestureScrollUpdate,
55 GestureTap,
56 GestureTapUnconfirmed,
57 GestureTapDown,
58 GestureShowPress,
59 GestureTapDownCancel,
60 GestureTwoFingerTap,
61 GestureLongPress,
62 GestureLongTap,
63 GesturePinchBegin,
64 GesturePinchEnd,
65 GesturePinchUpdate,
66 GestureFlingStart,
68 // PlatformTouchEvent
69 TouchStart,
70 TouchMove,
71 TouchEnd,
72 TouchCancel,
75 enum Modifiers {
76 AltKey = 1 << 0,
77 CtrlKey = 1 << 1,
78 MetaKey = 1 << 2,
79 ShiftKey = 1 << 3,
81 IsKeyPad = 1 << 4,
82 IsAutoRepeat = 1 << 5,
84 LeftButtonDown = 1 << 6,
85 MiddleButtonDown = 1 << 7,
86 RightButtonDown = 1 << 8,
88 IsLeft = 1 << 11,
89 IsRight = 1 << 12,
92 enum RailsMode {
93 RailsModeFree = 0,
94 RailsModeHorizontal = 1,
95 RailsModeVertical = 2,
98 Type type() const { return static_cast<Type>(m_type); }
100 bool shiftKey() const { return m_modifiers & ShiftKey; }
101 bool ctrlKey() const { return m_modifiers & CtrlKey; }
102 bool altKey() const { return m_modifiers & AltKey; }
103 bool metaKey() const { return m_modifiers & MetaKey; }
105 unsigned modifiers() const { return m_modifiers; }
107 double timestamp() const { return m_timestamp; }
109 protected:
110 PlatformEvent()
111 : m_type(NoType)
112 , m_modifiers(0)
113 , m_timestamp(0)
117 explicit PlatformEvent(Type type)
118 : m_type(type)
119 , m_modifiers(0)
120 , m_timestamp(0)
124 PlatformEvent(Type type, Modifiers modifiers, double timestamp)
125 : m_type(type)
126 , m_modifiers(modifiers)
127 , m_timestamp(timestamp)
131 PlatformEvent(Type type, bool shiftKey, bool ctrlKey, bool altKey, bool metaKey, double timestamp)
132 : m_type(type)
133 , m_modifiers(0)
134 , m_timestamp(timestamp)
136 if (shiftKey)
137 m_modifiers |= ShiftKey;
138 if (ctrlKey)
139 m_modifiers |= CtrlKey;
140 if (altKey)
141 m_modifiers |= AltKey;
142 if (metaKey)
143 m_modifiers |= MetaKey;
146 // Explicit protected destructor so that people don't accidentally
147 // delete a PlatformEvent.
148 ~PlatformEvent()
152 unsigned m_type;
153 unsigned m_modifiers;
154 double m_timestamp;
157 } // namespace blink
159 #endif // PlatformEvent_h