Qt 4.8
qcoreevent.h
Go to the documentation of this file.
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 
50 
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  ContextMenu = 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  MenubarUpdated = 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  GraphicsSceneContextMenu = 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;
317 
318 private:
323 
324  friend class QCoreApplication;
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 
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 
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:
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 
381 {
382 public:
385 
386  inline QByteArray propertyName() const { return n; }
387 
388 private:
390 };
391 
393 
395 
396 #endif // QCOREEVENT_H
double d
Definition: qnumeric_p.h:62
The QApplication class manages the GUI application&#39;s control flow and main settings.
Definition: qapplication.h:99
The QGraphicsScene class provides a surface for managing a large number of 2D graphical items...
int type
Definition: qmetatype.cpp:239
unsigned char c[8]
Definition: qnumeric_p.h:62
#define QT_END_NAMESPACE
This macro expands to.
Definition: qglobal.h:90
#define QDOC_PROPERTY(text)
Definition: qglobal.h:2503
ushort t
Definition: qcoreevent.h:316
#define QT_MODULE(x)
Definition: qglobal.h:2783
bool polished() const
Returns true if type() is QEvent::ChildPolished; otherwise returns false.
Definition: qcoreevent.h:363
#define QT_BEGIN_HEADER
Definition: qglobal.h:136
bool added() const
Returns true if type() is QEvent::ChildAdded; otherwise returns false.
Definition: qcoreevent.h:359
The QByteArray class provides an array of bytes.
Definition: qbytearray.h:135
void setAccepted(bool accepted)
Definition: qcoreevent.h:306
ushort spont
Definition: qcoreevent.h:320
The QDynamicPropertyChangeEvent class contains event parameters for dynamic property change events...
Definition: qcoreevent.h:380
QByteArray propertyName() const
Returns the name of the dynamic property that was added, changed or removed.
Definition: qcoreevent.h:386
ushort m_accept
Definition: qcoreevent.h:321
The QObject class is the base class of all Qt objects.
Definition: qobject.h:111
bool removed() const
Returns true if type() is QEvent::ChildRemoved; otherwise returns false.
Definition: qcoreevent.h:364
#define Q_ENUMS(x)
Definition: qobjectdefs.h:84
#define QT_BEGIN_NAMESPACE
This macro expands to.
Definition: qglobal.h:89
bool isAccepted() const
Definition: qcoreevent.h:307
static bool setData(const QByteArray &data, STGMEDIUM *pmedium)
Definition: qmime_win.cpp:141
const char * name
bool spontaneous() const
Returns true if the event originated outside the application (a system event); otherwise returns fals...
Definition: qcoreevent.h:304
int timerId() const
Returns the unique timer identifier, which is the same identifier as returned from QObject::startTime...
Definition: qcoreevent.h:346
static const char * data(const QByteArray &arr)
ushort posted
Definition: qcoreevent.h:319
#define None
#define Q_GADGET
Definition: qobjectdefs.h:173
The QChildEvent class contains event parameters for child object events.
Definition: qcoreevent.h:353
QEventPrivate * d
Definition: qcoreevent.h:315
The QCoreApplication class provides an event loop for console Qt applications.
The ParentChange element allows you to reparent an Item in a state change.
#define Q_CORE_EXPORT
Definition: qglobal.h:1449
Type
This enum type defines the valid event types in Qt.
Definition: qcoreevent.h:62
The QTimerEvent class contains parameters that describe a timer event.
Definition: qcoreevent.h:341
unsigned short ushort
Definition: qglobal.h:995
The QCustomEvent class provides support for custom events.
The QGraphicsView class provides a widget for displaying the contents of a QGraphicsScene.
Definition: qgraphicsview.h:64
void ignore()
Clears the accept flag parameter of the event object, the equivalent of calling setAccepted(false).
Definition: qcoreevent.h:310
void accept()
Sets the accept flag of the event object, the equivalent of calling setAccepted(true).
Definition: qcoreevent.h:309
The Timer item triggers a handler at a specified interval.
QObject * c
Definition: qcoreevent.h:366
The QEvent class is the base class of all event classes.
Definition: qcoreevent.h:56
Type type() const
Returns the event type.
Definition: qcoreevent.h:303
#define QT_END_HEADER
Definition: qglobal.h:137
ushort reserved
Definition: qcoreevent.h:322
QObject * child() const
Returns the child object that was added or removed.
Definition: qcoreevent.h:358