qcoreevent.h
上传用户:detong
上传日期:2022-06-22
资源大小:20675k
文件大小:15k
源码类别:

系统编程

开发平台:

Unix_Linux

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