blob: 6edcf9f67534233112bb7df0658042f8bbdd1016 [file] [log] [blame]
/****************************************************************************
**
** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of the QtCore module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** GNU Lesser General Public License Usage
** This file may be used under the terms of the GNU Lesser General Public
** License version 2.1 as published by the Free Software Foundation and
** appearing in the file LICENSE.LGPL included in the packaging of this
** file. Please review the following information to ensure the GNU Lesser
** General Public License version 2.1 requirements will be met:
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU General
** Public License version 3.0 as published by the Free Software Foundation
** and appearing in the file LICENSE.GPL included in the packaging of this
** file. Please review the following information to ensure the GNU General
** Public License version 3.0 requirements will be met:
** http://www.gnu.org/copyleft/gpl.html.
**
** Other Usage
** Alternatively, this file may be used in accordance with the terms and
** conditions contained in a signed written agreement between you and Nokia.
**
**
**
**
**
** $QT_END_LICENSE$
**
****************************************************************************/
#ifndef QCOREEVENT_H
#define QCOREEVENT_H
#include <QtCore/qnamespace.h>
#include <QtCore/qbytearray.h>
#include <QtCore/qobjectdefs.h>
QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
QT_MODULE(Core)
class QEventPrivate;
class Q_CORE_EXPORT QEvent // event base class
{
Q_GADGET
QDOC_PROPERTY(bool accepted READ isAccepted WRITE setAccepted)
Q_ENUMS(Type)
public:
enum Type {
/*
If you get a strange compiler error on the line with None,
it's probably because you're also including X11 headers,
which #define the symbol None. Put the X11 includes after
the Qt includes to solve this problem.
*/
None = 0, // invalid event
Timer = 1, // timer event
MouseButtonPress = 2, // mouse button pressed
MouseButtonRelease = 3, // mouse button released
MouseButtonDblClick = 4, // mouse button double click
MouseMove = 5, // mouse move
KeyPress = 6, // key pressed
KeyRelease = 7, // key released
FocusIn = 8, // keyboard focus received
FocusOut = 9, // keyboard focus lost
Enter = 10, // mouse enters widget
Leave = 11, // mouse leaves widget
Paint = 12, // paint widget
Move = 13, // move widget
Resize = 14, // resize widget
Create = 15, // after widget creation
Destroy = 16, // during widget destruction
Show = 17, // widget is shown
Hide = 18, // widget is hidden
Close = 19, // request to close widget
Quit = 20, // request to quit application
ParentChange = 21, // widget has been reparented
ParentAboutToChange = 131, // sent just before the parent change is done
#ifdef QT3_SUPPORT
Reparent = ParentChange,
#endif
ThreadChange = 22, // object has changed threads
WindowActivate = 24, // window was activated
WindowDeactivate = 25, // window was deactivated
ShowToParent = 26, // widget is shown to parent
HideToParent = 27, // widget is hidden to parent
Wheel = 31, // wheel event
WindowTitleChange = 33, // window title changed
WindowIconChange = 34, // icon changed
ApplicationWindowIconChange = 35, // application icon changed
ApplicationFontChange = 36, // application font changed
ApplicationLayoutDirectionChange = 37, // application layout direction changed
ApplicationPaletteChange = 38, // application palette changed
PaletteChange = 39, // widget palette changed
Clipboard = 40, // internal clipboard event
Speech = 42, // reserved for speech input
MetaCall = 43, // meta call event
SockAct = 50, // socket activation
WinEventAct = 132, // win event activation
DeferredDelete = 52, // deferred delete event
DragEnter = 60, // drag moves into widget
DragMove = 61, // drag moves in widget
DragLeave = 62, // drag leaves or is cancelled
Drop = 63, // actual drop
DragResponse = 64, // drag accepted/rejected
ChildAdded = 68, // new child widget
ChildPolished = 69, // polished child widget
#ifdef QT3_SUPPORT
ChildInsertedRequest = 67, // send ChildInserted compatibility events to receiver
ChildInserted = 70, // compatibility child inserted
LayoutHint = 72, // compatibility relayout request
#endif
ChildRemoved = 71, // deleted child widget
ShowWindowRequest = 73, // widget's window should be mapped
PolishRequest = 74, // widget should be polished
Polish = 75, // widget is polished
LayoutRequest = 76, // widget should be relayouted
UpdateRequest = 77, // widget should be repainted
UpdateLater = 78, // request update() later
EmbeddingControl = 79, // ActiveX embedding
ActivateControl = 80, // ActiveX activation
DeactivateControl = 81, // ActiveX deactivation
ContextMenu = 82, // context popup menu
InputMethod = 83, // input method
AccessibilityPrepare = 86, // accessibility information is requested
TabletMove = 87, // Wacom tablet event
LocaleChange = 88, // the system locale changed
LanguageChange = 89, // the application language changed
LayoutDirectionChange = 90, // the layout direction changed
Style = 91, // internal style event
TabletPress = 92, // tablet press
TabletRelease = 93, // tablet release
OkRequest = 94, // CE (Ok) button pressed
HelpRequest = 95, // CE (?) button pressed
IconDrag = 96, // proxy icon dragged
FontChange = 97, // font has changed
EnabledChange = 98, // enabled state has changed
ActivationChange = 99, // window activation has changed
StyleChange = 100, // style has changed
IconTextChange = 101, // icon text has changed
ModifiedChange = 102, // modified state has changed
MouseTrackingChange = 109, // mouse tracking state has changed
WindowBlocked = 103, // window is about to be blocked modally
WindowUnblocked = 104, // windows modal blocking has ended
WindowStateChange = 105,
ToolTip = 110,
WhatsThis = 111,
StatusTip = 112,
ActionChanged = 113,
ActionAdded = 114,
ActionRemoved = 115,
FileOpen = 116, // file open request
Shortcut = 117, // shortcut triggered
ShortcutOverride = 51, // shortcut override request
#ifdef QT3_SUPPORT
Accel = 30, // accelerator event
AccelAvailable = 32, // accelerator available event
AccelOverride = ShortcutOverride, // accelerator override event
#endif
WhatsThisClicked = 118,
#ifdef QT3_SUPPORT
CaptionChange = WindowTitleChange,
IconChange = WindowIconChange,
#endif
ToolBarChange = 120, // toolbar visibility toggled
ApplicationActivate = 121, // application has been changed to active
ApplicationActivated = ApplicationActivate, // deprecated
ApplicationDeactivate = 122, // application has been changed to inactive
ApplicationDeactivated = ApplicationDeactivate, // deprecated
QueryWhatsThis = 123, // query what's this widget help
EnterWhatsThisMode = 124,
LeaveWhatsThisMode = 125,
ZOrderChange = 126, // child widget has had its z-order changed
HoverEnter = 127, // mouse cursor enters a hover widget
HoverLeave = 128, // mouse cursor leaves a hover widget
HoverMove = 129, // mouse cursor move inside a hover widget
AccessibilityHelp = 119, // accessibility help text request
AccessibilityDescription = 130, // accessibility description text request
// last event id used = 132
#ifdef QT_KEYPAD_NAVIGATION
EnterEditFocus = 150, // enter edit mode in keypad navigation
LeaveEditFocus = 151, // enter edit mode in keypad navigation
#endif
AcceptDropsChange = 152,
MenubarUpdated = 153, // Support event for Q3MainWindow, which needs to
// knwow when QMenubar is updated.
ZeroTimerEvent = 154, // Used for Windows Zero timer events
GraphicsSceneMouseMove = 155, // GraphicsView
GraphicsSceneMousePress = 156,
GraphicsSceneMouseRelease = 157,
GraphicsSceneMouseDoubleClick = 158,
GraphicsSceneContextMenu = 159,
GraphicsSceneHoverEnter = 160,
GraphicsSceneHoverMove = 161,
GraphicsSceneHoverLeave = 162,
GraphicsSceneHelp = 163,
GraphicsSceneDragEnter = 164,
GraphicsSceneDragMove = 165,
GraphicsSceneDragLeave = 166,
GraphicsSceneDrop = 167,
GraphicsSceneWheel = 168,
KeyboardLayoutChange = 169, // keyboard layout changed
DynamicPropertyChange = 170, // A dynamic property was changed through setProperty/property
TabletEnterProximity = 171,
TabletLeaveProximity = 172,
NonClientAreaMouseMove = 173,
NonClientAreaMouseButtonPress = 174,
NonClientAreaMouseButtonRelease = 175,
NonClientAreaMouseButtonDblClick = 176,
MacSizeChange = 177, // when the Qt::WA_Mac{Normal,Small,Mini}Size changes
ContentsRectChange = 178, // sent by QWidget::setContentsMargins (internal)
MacGLWindowChange = 179, // Internal! the window of the GLWidget has changed
FutureCallOut = 180,
GraphicsSceneResize = 181,
GraphicsSceneMove = 182,
CursorChange = 183,
ToolTipChange = 184,
NetworkReplyUpdated = 185, // Internal for QNetworkReply
GrabMouse = 186,
UngrabMouse = 187,
GrabKeyboard = 188,
UngrabKeyboard = 189,
MacGLClearDrawable = 191, // Internal Cocoa, the window has changed, so we must clear
StateMachineSignal = 192,
StateMachineWrapped = 193,
TouchBegin = 194,
TouchUpdate = 195,
TouchEnd = 196,
#ifndef QT_NO_GESTURES
NativeGesture = 197, // Internal for platform gesture support
#endif
RequestSoftwareInputPanel = 199,
CloseSoftwareInputPanel = 200,
UpdateSoftKeys = 201, // Internal for compressing soft key updates
WinIdChange = 203,
#ifndef QT_NO_GESTURES
Gesture = 198,
GestureOverride = 202,
#endif
// 512 reserved for Qt Jambi's MetaCall event
// 513 reserved for Qt Jambi's DeleteOnMainThread event
User = 1000, // first user event id
MaxUser = 65535 // last user event id
};
QEvent(Type type);
virtual ~QEvent();
inline Type type() const { return static_cast<Type>(t); }
inline bool spontaneous() const { return spont; }
inline void setAccepted(bool accepted) { m_accept = accepted; }
inline bool isAccepted() const { return m_accept; }
inline void accept() { m_accept = true; }
inline void ignore() { m_accept = false; }
static int registerEventType(int hint = -1);
protected:
QEventPrivate *d;
ushort t;
private:
ushort posted : 1;
ushort spont : 1;
ushort m_accept : 1;
ushort reserved : 13;
friend class QCoreApplication;
friend class QCoreApplicationPrivate;
friend class QThreadData;
friend class QApplication;
friend class QApplicationPrivate;
friend class Q3AccelManager;
friend class QShortcutMap;
friend class QETWidget;
friend class QGraphicsView;
friend class QGraphicsViewPrivate;
friend class QGraphicsScenePrivate;
#ifndef QT_NO_GESTURES
friend class QGestureManager;
#endif
};
class Q_CORE_EXPORT QTimerEvent : public QEvent
{
public:
QTimerEvent( int timerId );
~QTimerEvent();
int timerId() const { return id; }
protected:
int id;
};
class QObject;
class Q_CORE_EXPORT QChildEvent : public QEvent
{
public:
QChildEvent( Type type, QObject *child );
~QChildEvent();
QObject *child() const { return c; }
bool added() const { return type() == ChildAdded; }
#ifdef QT3_SUPPORT
QT3_SUPPORT bool inserted() const { return type() == ChildInserted; }
#endif
bool polished() const { return type() == ChildPolished; }
bool removed() const { return type() == ChildRemoved; }
protected:
QObject *c;
};
#ifdef QT3_SUPPORT
class Q_CORE_EXPORT QCustomEvent : public QEvent
{
public:
QT3_SUPPORT_CONSTRUCTOR QCustomEvent(int type, void *data = 0);
~QCustomEvent();
QT3_SUPPORT void *data() const { return d; }
QT3_SUPPORT void setData(void* aData) { d = reinterpret_cast<QEventPrivate *>(aData); }
};
#endif
class Q_CORE_EXPORT QDynamicPropertyChangeEvent : public QEvent
{
public:
QDynamicPropertyChangeEvent(const QByteArray &name);
~QDynamicPropertyChangeEvent();
inline QByteArray propertyName() const { return n; }
private:
QByteArray n;
};
QT_END_NAMESPACE
QT_END_HEADER
#endif // QCOREEVENT_H