1 | /**************************************************************************** |
2 | ** |
3 | ** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). |
4 | ** Contact: http://www.qt-project.org/legal |
5 | ** |
6 | ** This file is part of the QtCore module of the Qt Toolkit. |
7 | ** |
8 | ** $QT_BEGIN_LICENSE:LGPL$ |
9 | ** Commercial License Usage |
10 | ** Licensees holding valid commercial Qt licenses may use this file in |
11 | ** accordance with the commercial license agreement provided with the |
12 | ** Software or, alternatively, in accordance with the terms contained in |
13 | ** a written agreement between you and Digia. For licensing terms and |
14 | ** conditions see http://qt.digia.com/licensing. For further information |
15 | ** use the contact form at http://qt.digia.com/contact-us. |
16 | ** |
17 | ** GNU Lesser General Public License Usage |
18 | ** Alternatively, this file may be used under the terms of the GNU Lesser |
19 | ** General Public License version 2.1 as published by the Free Software |
20 | ** Foundation and appearing in the file LICENSE.LGPL included in the |
21 | ** packaging of this file. Please review the following information to |
22 | ** ensure the GNU Lesser General Public License version 2.1 requirements |
23 | ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. |
24 | ** |
25 | ** In addition, as a special exception, Digia gives you certain additional |
26 | ** rights. These rights are described in the Digia Qt LGPL Exception |
27 | ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. |
28 | ** |
29 | ** GNU General Public License Usage |
30 | ** Alternatively, this file may be used under the terms of the GNU |
31 | ** General Public License version 3.0 as published by the Free Software |
32 | ** Foundation and appearing in the file LICENSE.GPL included in the |
33 | ** packaging of this file. Please review the following information to |
34 | ** ensure the GNU General Public License version 3.0 requirements will be |
35 | ** met: http://www.gnu.org/copyleft/gpl.html. |
36 | ** |
37 | ** |
38 | ** $QT_END_LICENSE$ |
39 | ** |
40 | ****************************************************************************/ |
41 | |
42 | #ifndef QCOREEVENT_H |
43 | #define QCOREEVENT_H |
44 | |
45 | #include <QtCore/qnamespace.h> |
46 | #include <QtCore/qbytearray.h> |
47 | #include <QtCore/qobjectdefs.h> |
48 | |
49 | QT_BEGIN_HEADER |
50 | |
51 | QT_BEGIN_NAMESPACE |
52 | |
53 | QT_MODULE(Core) |
54 | |
55 | class QEventPrivate; |
56 | class Q_CORE_EXPORT QEvent // event base class |
57 | { |
58 | Q_GADGET |
59 | QDOC_PROPERTY(bool accepted READ isAccepted WRITE setAccepted) |
60 | Q_ENUMS(Type) |
61 | public: |
62 | enum Type { |
63 | /* |
64 | If you get a strange compiler error on the line with None, |
65 | it's probably because you're also including X11 headers, |
66 | which #define the symbol None. Put the X11 includes after |
67 | the Qt includes to solve this problem. |
68 | */ |
69 | None = 0, // invalid event |
70 | Timer = 1, // timer event |
71 | MouseButtonPress = 2, // mouse button pressed |
72 | MouseButtonRelease = 3, // mouse button released |
73 | MouseButtonDblClick = 4, // mouse button double click |
74 | MouseMove = 5, // mouse move |
75 | KeyPress = 6, // key pressed |
76 | KeyRelease = 7, // key released |
77 | FocusIn = 8, // keyboard focus received |
78 | FocusOut = 9, // keyboard focus lost |
79 | Enter = 10, // mouse enters widget |
80 | Leave = 11, // mouse leaves widget |
81 | Paint = 12, // paint widget |
82 | Move = 13, // move widget |
83 | Resize = 14, // resize widget |
84 | Create = 15, // after widget creation |
85 | Destroy = 16, // during widget destruction |
86 | Show = 17, // widget is shown |
87 | Hide = 18, // widget is hidden |
88 | Close = 19, // request to close widget |
89 | Quit = 20, // request to quit application |
90 | ParentChange = 21, // widget has been reparented |
91 | ParentAboutToChange = 131, // sent just before the parent change is done |
92 | #ifdef QT3_SUPPORT |
93 | Reparent = ParentChange, |
94 | #endif |
95 | ThreadChange = 22, // object has changed threads |
96 | WindowActivate = 24, // window was activated |
97 | WindowDeactivate = 25, // window was deactivated |
98 | ShowToParent = 26, // widget is shown to parent |
99 | HideToParent = 27, // widget is hidden to parent |
100 | Wheel = 31, // wheel event |
101 | WindowTitleChange = 33, // window title changed |
102 | WindowIconChange = 34, // icon changed |
103 | ApplicationWindowIconChange = 35, // application icon changed |
104 | ApplicationFontChange = 36, // application font changed |
105 | ApplicationLayoutDirectionChange = 37, // application layout direction changed |
106 | ApplicationPaletteChange = 38, // application palette changed |
107 | PaletteChange = 39, // widget palette changed |
108 | Clipboard = 40, // internal clipboard event |
109 | Speech = 42, // reserved for speech input |
110 | MetaCall = 43, // meta call event |
111 | SockAct = 50, // socket activation |
112 | WinEventAct = 132, // win event activation |
113 | DeferredDelete = 52, // deferred delete event |
114 | DragEnter = 60, // drag moves into widget |
115 | DragMove = 61, // drag moves in widget |
116 | DragLeave = 62, // drag leaves or is cancelled |
117 | Drop = 63, // actual drop |
118 | DragResponse = 64, // drag accepted/rejected |
119 | ChildAdded = 68, // new child widget |
120 | ChildPolished = 69, // polished child widget |
121 | #ifdef QT3_SUPPORT |
122 | ChildInsertedRequest = 67, // send ChildInserted compatibility events to receiver |
123 | ChildInserted = 70, // compatibility child inserted |
124 | LayoutHint = 72, // compatibility relayout request |
125 | #endif |
126 | ChildRemoved = 71, // deleted child widget |
127 | ShowWindowRequest = 73, // widget's window should be mapped |
128 | PolishRequest = 74, // widget should be polished |
129 | Polish = 75, // widget is polished |
130 | LayoutRequest = 76, // widget should be relayouted |
131 | UpdateRequest = 77, // widget should be repainted |
132 | UpdateLater = 78, // request update() later |
133 | |
134 | EmbeddingControl = 79, // ActiveX embedding |
135 | ActivateControl = 80, // ActiveX activation |
136 | DeactivateControl = 81, // ActiveX deactivation |
137 | = 82, // context popup menu |
138 | InputMethod = 83, // input method |
139 | AccessibilityPrepare = 86, // accessibility information is requested |
140 | TabletMove = 87, // Wacom tablet event |
141 | LocaleChange = 88, // the system locale changed |
142 | LanguageChange = 89, // the application language changed |
143 | LayoutDirectionChange = 90, // the layout direction changed |
144 | Style = 91, // internal style event |
145 | TabletPress = 92, // tablet press |
146 | TabletRelease = 93, // tablet release |
147 | OkRequest = 94, // CE (Ok) button pressed |
148 | HelpRequest = 95, // CE (?) button pressed |
149 | |
150 | IconDrag = 96, // proxy icon dragged |
151 | |
152 | FontChange = 97, // font has changed |
153 | EnabledChange = 98, // enabled state has changed |
154 | ActivationChange = 99, // window activation has changed |
155 | StyleChange = 100, // style has changed |
156 | IconTextChange = 101, // icon text has changed |
157 | ModifiedChange = 102, // modified state has changed |
158 | MouseTrackingChange = 109, // mouse tracking state has changed |
159 | |
160 | WindowBlocked = 103, // window is about to be blocked modally |
161 | WindowUnblocked = 104, // windows modal blocking has ended |
162 | WindowStateChange = 105, |
163 | |
164 | ToolTip = 110, |
165 | WhatsThis = 111, |
166 | StatusTip = 112, |
167 | |
168 | ActionChanged = 113, |
169 | ActionAdded = 114, |
170 | ActionRemoved = 115, |
171 | |
172 | FileOpen = 116, // file open request |
173 | |
174 | Shortcut = 117, // shortcut triggered |
175 | ShortcutOverride = 51, // shortcut override request |
176 | |
177 | #ifdef QT3_SUPPORT |
178 | Accel = 30, // accelerator event |
179 | AccelAvailable = 32, // accelerator available event |
180 | AccelOverride = ShortcutOverride, // accelerator override event |
181 | #endif |
182 | |
183 | WhatsThisClicked = 118, |
184 | |
185 | #ifdef QT3_SUPPORT |
186 | CaptionChange = WindowTitleChange, |
187 | IconChange = WindowIconChange, |
188 | #endif |
189 | ToolBarChange = 120, // toolbar visibility toggled |
190 | |
191 | ApplicationActivate = 121, // application has been changed to active |
192 | ApplicationActivated = ApplicationActivate, // deprecated |
193 | ApplicationDeactivate = 122, // application has been changed to inactive |
194 | ApplicationDeactivated = ApplicationDeactivate, // deprecated |
195 | |
196 | QueryWhatsThis = 123, // query what's this widget help |
197 | EnterWhatsThisMode = 124, |
198 | LeaveWhatsThisMode = 125, |
199 | |
200 | ZOrderChange = 126, // child widget has had its z-order changed |
201 | |
202 | HoverEnter = 127, // mouse cursor enters a hover widget |
203 | HoverLeave = 128, // mouse cursor leaves a hover widget |
204 | HoverMove = 129, // mouse cursor move inside a hover widget |
205 | |
206 | AccessibilityHelp = 119, // accessibility help text request |
207 | AccessibilityDescription = 130, // accessibility description text request |
208 | |
209 | // last event id used = 132 |
210 | |
211 | #ifdef QT_KEYPAD_NAVIGATION |
212 | EnterEditFocus = 150, // enter edit mode in keypad navigation (Defined only with QT_KEYPAD_NAVIGATION) |
213 | LeaveEditFocus = 151, // leave edit mode in keypad navigation (Defined only with QT_KEYPAD_NAVIGATION) |
214 | #endif |
215 | AcceptDropsChange = 152, |
216 | |
217 | = 153, // Support event for Q3MainWindow, which needs to |
218 | // knwow when QMenubar is updated. |
219 | |
220 | ZeroTimerEvent = 154, // Used for Windows Zero timer events |
221 | |
222 | GraphicsSceneMouseMove = 155, // GraphicsView |
223 | GraphicsSceneMousePress = 156, |
224 | GraphicsSceneMouseRelease = 157, |
225 | GraphicsSceneMouseDoubleClick = 158, |
226 | = 159, |
227 | GraphicsSceneHoverEnter = 160, |
228 | GraphicsSceneHoverMove = 161, |
229 | GraphicsSceneHoverLeave = 162, |
230 | GraphicsSceneHelp = 163, |
231 | GraphicsSceneDragEnter = 164, |
232 | GraphicsSceneDragMove = 165, |
233 | GraphicsSceneDragLeave = 166, |
234 | GraphicsSceneDrop = 167, |
235 | GraphicsSceneWheel = 168, |
236 | |
237 | KeyboardLayoutChange = 169, // keyboard layout changed |
238 | |
239 | DynamicPropertyChange = 170, // A dynamic property was changed through setProperty/property |
240 | |
241 | TabletEnterProximity = 171, |
242 | TabletLeaveProximity = 172, |
243 | |
244 | NonClientAreaMouseMove = 173, |
245 | NonClientAreaMouseButtonPress = 174, |
246 | NonClientAreaMouseButtonRelease = 175, |
247 | NonClientAreaMouseButtonDblClick = 176, |
248 | |
249 | MacSizeChange = 177, // when the Qt::WA_Mac{Normal,Small,Mini}Size changes |
250 | |
251 | ContentsRectChange = 178, // sent by QWidget::setContentsMargins (internal) |
252 | |
253 | MacGLWindowChange = 179, // Internal! the window of the GLWidget has changed |
254 | |
255 | FutureCallOut = 180, |
256 | |
257 | GraphicsSceneResize = 181, |
258 | GraphicsSceneMove = 182, |
259 | |
260 | CursorChange = 183, |
261 | ToolTipChange = 184, |
262 | |
263 | NetworkReplyUpdated = 185, // Internal for QNetworkReply |
264 | |
265 | GrabMouse = 186, |
266 | UngrabMouse = 187, |
267 | GrabKeyboard = 188, |
268 | UngrabKeyboard = 189, |
269 | MacGLClearDrawable = 191, // Internal Cocoa, the window has changed, so we must clear |
270 | |
271 | StateMachineSignal = 192, |
272 | StateMachineWrapped = 193, |
273 | |
274 | TouchBegin = 194, |
275 | TouchUpdate = 195, |
276 | TouchEnd = 196, |
277 | |
278 | #ifndef QT_NO_GESTURES |
279 | NativeGesture = 197, // Internal for platform gesture support |
280 | #endif |
281 | RequestSoftwareInputPanel = 199, |
282 | CloseSoftwareInputPanel = 200, |
283 | |
284 | UpdateSoftKeys = 201, // Internal for compressing soft key updates |
285 | |
286 | WinIdChange = 203, |
287 | #ifndef QT_NO_GESTURES |
288 | Gesture = 198, |
289 | GestureOverride = 202, |
290 | #endif |
291 | |
292 | PlatformPanel = 212, |
293 | |
294 | // 512 reserved for Qt Jambi's MetaCall event |
295 | // 513 reserved for Qt Jambi's DeleteOnMainThread event |
296 | |
297 | User = 1000, // first user event id |
298 | MaxUser = 65535 // last user event id |
299 | }; |
300 | |
301 | QEvent(Type type); |
302 | virtual ~QEvent(); |
303 | inline Type type() const { return static_cast<Type>(t); } |
304 | inline bool spontaneous() const { return spont; } |
305 | |
306 | inline void setAccepted(bool accepted) { m_accept = accepted; } |
307 | inline bool isAccepted() const { return m_accept; } |
308 | |
309 | inline void accept() { m_accept = true; } |
310 | inline void ignore() { m_accept = false; } |
311 | |
312 | static int registerEventType(int hint = -1); |
313 | |
314 | protected: |
315 | QEventPrivate *d; |
316 | ushort t; |
317 | |
318 | private: |
319 | ushort posted : 1; |
320 | ushort spont : 1; |
321 | ushort m_accept : 1; |
322 | ushort reserved : 13; |
323 | |
324 | friend class QCoreApplication; |
325 | friend class QCoreApplicationPrivate; |
326 | friend class QThreadData; |
327 | friend class QApplication; |
328 | friend class QApplicationPrivate; |
329 | friend class Q3AccelManager; |
330 | friend class QShortcutMap; |
331 | friend class QETWidget; |
332 | friend class QGraphicsView; |
333 | friend class QGraphicsViewPrivate; |
334 | friend class QGraphicsScene; |
335 | friend class QGraphicsScenePrivate; |
336 | #ifndef QT_NO_GESTURES |
337 | friend class QGestureManager; |
338 | #endif |
339 | }; |
340 | |
341 | class Q_CORE_EXPORT QTimerEvent : public QEvent |
342 | { |
343 | public: |
344 | QTimerEvent( int timerId ); |
345 | ~QTimerEvent(); |
346 | int timerId() const { return id; } |
347 | protected: |
348 | int id; |
349 | }; |
350 | |
351 | class QObject; |
352 | |
353 | class Q_CORE_EXPORT QChildEvent : public QEvent |
354 | { |
355 | public: |
356 | QChildEvent( Type type, QObject *child ); |
357 | ~QChildEvent(); |
358 | QObject *child() const { return c; } |
359 | bool added() const { return type() == ChildAdded; } |
360 | #ifdef QT3_SUPPORT |
361 | QT3_SUPPORT bool inserted() const { return type() == ChildInserted; } |
362 | #endif |
363 | bool polished() const { return type() == ChildPolished; } |
364 | bool removed() const { return type() == ChildRemoved; } |
365 | protected: |
366 | QObject *c; |
367 | }; |
368 | |
369 | #ifdef QT3_SUPPORT |
370 | class Q_CORE_EXPORT QCustomEvent : public QEvent |
371 | { |
372 | public: |
373 | QT3_SUPPORT_CONSTRUCTOR QCustomEvent(int type, void *data = 0); |
374 | ~QCustomEvent(); |
375 | QT3_SUPPORT void *data() const { return d; } |
376 | QT3_SUPPORT void setData(void* aData) { d = reinterpret_cast<QEventPrivate *>(aData); } |
377 | }; |
378 | #endif |
379 | |
380 | class Q_CORE_EXPORT QDynamicPropertyChangeEvent : public QEvent |
381 | { |
382 | public: |
383 | QDynamicPropertyChangeEvent(const QByteArray &name); |
384 | ~QDynamicPropertyChangeEvent(); |
385 | |
386 | inline QByteArray propertyName() const { return n; } |
387 | |
388 | private: |
389 | QByteArray n; |
390 | }; |
391 | |
392 | QT_END_NAMESPACE |
393 | |
394 | QT_END_HEADER |
395 | |
396 | #endif // QCOREEVENT_H |
397 | |