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

系统编程

开发平台:

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 QtGui 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 QEVENT_H
  38. #define QEVENT_H
  39. #include <QtGui/qwindowdefs.h>
  40. #include <QtCore/qobject.h>
  41. #include <QtGui/qregion.h>
  42. #include <QtCore/qnamespace.h>
  43. #include <QtCore/qstring.h>
  44. #include <QtGui/qkeysequence.h>
  45. #include <QtCore/qcoreevent.h>
  46. #include <QtGui/qmime.h>
  47. #include <QtGui/qdrag.h>
  48. #include <QtCore/qvariant.h>
  49. QT_BEGIN_HEADER
  50. QT_BEGIN_NAMESPACE
  51. QT_MODULE(Gui)
  52. class QAction;
  53. class Q_GUI_EXPORT QInputEvent : public QEvent
  54. {
  55. public:
  56.     QInputEvent(Type type, Qt::KeyboardModifiers modifiers = Qt::NoModifier);
  57.     ~QInputEvent();
  58.     inline Qt::KeyboardModifiers modifiers() const { return modState; }
  59. protected:
  60.     Qt::KeyboardModifiers modState;
  61. };
  62. class Q_GUI_EXPORT QMouseEvent : public QInputEvent
  63. {
  64. public:
  65.     QMouseEvent(Type type, const QPoint &pos, Qt::MouseButton button,
  66.                 Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers);
  67.     QMouseEvent(Type type, const QPoint &pos, const QPoint &globalPos,
  68.                 Qt::MouseButton button, Qt::MouseButtons buttons,
  69.                 Qt::KeyboardModifiers modifiers);
  70.     ~QMouseEvent();
  71.     inline const QPoint &pos() const { return p; }
  72.     inline const QPoint &globalPos() const { return g; }
  73.     inline int x() const { return p.x(); }
  74.     inline int y() const { return p.y(); }
  75.     inline int globalX() const { return g.x(); }
  76.     inline int globalY() const { return g.y(); }
  77.     inline Qt::MouseButton button() const { return b; }
  78.     inline Qt::MouseButtons buttons() const { return mouseState; }
  79.     static QMouseEvent *createExtendedMouseEvent(Type type, const QPointF &pos,
  80.                                                  const QPoint &globalPos, Qt::MouseButton button,
  81.                                                  Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers);
  82.     inline bool hasExtendedInfo() const { return reinterpret_cast<const QMouseEvent *>(d) == this; }
  83.     QPointF posF() const;
  84. #ifdef QT3_SUPPORT
  85.     QT3_SUPPORT_CONSTRUCTOR QMouseEvent(Type type, const QPoint &pos, Qt::ButtonState button, int state);
  86.     QT3_SUPPORT_CONSTRUCTOR QMouseEvent(Type type, const QPoint &pos, const QPoint &globalPos,
  87.                                       Qt::ButtonState button, int state);
  88.     inline QT3_SUPPORT Qt::ButtonState state() const
  89.     { return Qt::ButtonState((mouseState^b)|int(modifiers())); }
  90.     inline QT3_SUPPORT Qt::ButtonState stateAfter() const
  91.     { return Qt::ButtonState(int(mouseState)|int(modifiers())); }
  92. #endif
  93. protected:
  94.     QPoint p, g;
  95.     Qt::MouseButton b;
  96.     Qt::MouseButtons mouseState;
  97. };
  98. class Q_GUI_EXPORT QHoverEvent : public QEvent
  99. {
  100. public:
  101.     QHoverEvent(Type type, const QPoint &pos, const QPoint &oldPos);
  102.     ~QHoverEvent();
  103.     inline const QPoint &pos() const { return p; }
  104.     inline const QPoint &oldPos() const { return op; }
  105. protected:
  106.     QPoint p, op;
  107. };
  108. #ifndef QT_NO_WHEELEVENT
  109. class Q_GUI_EXPORT QWheelEvent : public QInputEvent
  110. {
  111. public:
  112.     QWheelEvent(const QPoint &pos, int delta,
  113.                 Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers,
  114.                 Qt::Orientation orient = Qt::Vertical);
  115.     QWheelEvent(const QPoint &pos, const QPoint& globalPos, int delta,
  116.                 Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers,
  117.                 Qt::Orientation orient = Qt::Vertical);
  118.     ~QWheelEvent();
  119.     inline int delta() const { return d; }
  120.     inline const QPoint &pos() const { return p; }
  121.     inline const QPoint &globalPos()   const { return g; }
  122.     inline int x() const { return p.x(); }
  123.     inline int y() const { return p.y(); }
  124.     inline int globalX() const { return g.x(); }
  125.     inline int globalY() const { return g.y(); }
  126.     inline Qt::MouseButtons buttons() const { return mouseState; }
  127.     Qt::Orientation orientation() const { return o; }
  128. #ifdef QT3_SUPPORT
  129.     QT3_SUPPORT_CONSTRUCTOR QWheelEvent(const QPoint &pos, int delta, int state,
  130.                                       Qt::Orientation orient = Qt::Vertical);
  131.     QT3_SUPPORT_CONSTRUCTOR QWheelEvent(const QPoint &pos, const QPoint& globalPos, int delta, int state,
  132.                                       Qt::Orientation orient = Qt::Vertical);
  133.     inline QT3_SUPPORT Qt::ButtonState state() const
  134.     { return static_cast<Qt::ButtonState>(int(buttons())|int(modifiers())); }
  135. #endif
  136. protected:
  137.     QPoint p;
  138.     QPoint g;
  139.     int d;
  140.     Qt::MouseButtons mouseState;
  141.     Qt::Orientation o;
  142. };
  143. #endif
  144. #ifndef QT_NO_TABLETEVENT
  145. class Q_GUI_EXPORT QTabletEvent : public QInputEvent
  146. {
  147. public:
  148.     enum TabletDevice { NoDevice, Puck, Stylus, Airbrush, FourDMouse,
  149.                         XFreeEraser /*internal*/, RotationStylus };
  150.     enum PointerType { UnknownPointer, Pen, Cursor, Eraser };
  151.     QTabletEvent(Type t, const QPoint &pos, const QPoint &globalPos, const QPointF &hiResGlobalPos,
  152.                  int device, int pointerType, qreal pressure, int xTilt, int yTilt,
  153.                  qreal tangentialPressure, qreal rotation, int z,
  154.                  Qt::KeyboardModifiers keyState, qint64 uniqueID);
  155.     ~QTabletEvent();
  156.     inline const QPoint &pos() const { return mPos; }
  157.     inline const QPoint &globalPos() const { return mGPos; }
  158.     inline const QPointF &hiResGlobalPos() const { return mHiResGlobalPos; }
  159.     inline int x() const { return mPos.x(); }
  160.     inline int y() const { return mPos.y(); }
  161.     inline int globalX() const { return mGPos.x(); }
  162.     inline int globalY() const { return mGPos.y(); }
  163.     inline qreal hiResGlobalX() const { return mHiResGlobalPos.x(); }
  164.     inline qreal hiResGlobalY() const { return mHiResGlobalPos.y(); }
  165.     inline TabletDevice device() const { return TabletDevice(mDev); }
  166.     inline PointerType pointerType() const { return PointerType(mPointerType); }
  167.     inline qint64 uniqueId() const { return mUnique; }
  168.     inline qreal pressure() const { return mPress; }
  169.     inline int z() const { return mZ; }
  170.     inline qreal tangentialPressure() const { return mTangential; }
  171.     inline qreal rotation() const { return mRot; }
  172.     inline int xTilt() const { return mXT; }
  173.     inline int yTilt() const { return mYT; }
  174. protected:
  175.     QPoint mPos, mGPos;
  176.     QPointF mHiResGlobalPos;
  177.     int mDev, mPointerType, mXT, mYT, mZ;
  178.     qreal mPress, mTangential, mRot;
  179.     qint64 mUnique;
  180.     // I don't know what the future holds for tablets but there could be some
  181.     // new devices coming along, and there seem to be "holes" in the
  182.     // OS-specific events for this.
  183.     void *mExtra;
  184. };
  185. #endif // QT_NO_TABLETEVENT
  186. class Q_GUI_EXPORT QKeyEvent : public QInputEvent
  187. {
  188. public:
  189.     QKeyEvent(Type type, int key, Qt::KeyboardModifiers modifiers, const QString& text = QString(),
  190.               bool autorep = false, ushort count = 1);
  191.     ~QKeyEvent();
  192.     int key() const { return k; }
  193. #ifndef QT_NO_SHORTCUT
  194.     bool matches(QKeySequence::StandardKey key) const;
  195. #endif
  196.     Qt::KeyboardModifiers modifiers() const;
  197.     inline QString text() const { return txt; }
  198.     inline bool isAutoRepeat() const { return autor; }
  199.     inline int count() const { return int(c); }
  200.     // Functions for the extended key event information
  201.     static QKeyEvent *createExtendedKeyEvent(Type type, int key, Qt::KeyboardModifiers modifiers,
  202.                                              quint32 nativeScanCode, quint32 nativeVirtualKey,
  203.                                              quint32 nativeModifiers,
  204.                                              const QString& text = QString(), bool autorep = false,
  205.                                              ushort count = 1);
  206.     inline bool hasExtendedInfo() const { return reinterpret_cast<const QKeyEvent*>(d) == this; }
  207.     quint32 nativeScanCode() const;
  208.     quint32 nativeVirtualKey() const;
  209.     quint32 nativeModifiers() const;
  210. #ifdef QT3_SUPPORT
  211.     inline QT3_SUPPORT_CONSTRUCTOR QKeyEvent(Type type, int key, int /*ascii*/,
  212.                                            int modifiers, const QString& text = QString(),
  213.                                            bool autorep = false, ushort count = 1)
  214.         : QInputEvent(type, (Qt::KeyboardModifiers)(modifiers & (int)Qt::KeyButtonMask)), txt(text), k(key),
  215.           c(count), autor(autorep)
  216.     {
  217.         if (key >= Qt::Key_Back && key <= Qt::Key_MediaLast)
  218.             ignore();
  219.     }
  220.     inline QT3_SUPPORT int ascii() const
  221.     { return (txt.length() ? txt.unicode()->toLatin1() : 0); }
  222.     inline QT3_SUPPORT Qt::ButtonState state() const { return Qt::ButtonState(QInputEvent::modifiers()); }
  223.     inline QT3_SUPPORT Qt::ButtonState stateAfter() const { return Qt::ButtonState(modifiers()); }
  224. #endif
  225. protected:
  226.     QString txt;
  227.     int k;
  228.     ushort c;
  229.     uint autor:1;
  230. };
  231. class Q_GUI_EXPORT QFocusEvent : public QEvent
  232. {
  233. public:
  234.     QFocusEvent(Type type, Qt::FocusReason reason=Qt::OtherFocusReason);
  235.     ~QFocusEvent();
  236.     inline bool gotFocus() const { return type() == FocusIn; }
  237.     inline bool lostFocus() const { return type() == FocusOut; }
  238. #ifdef QT3_SUPPORT
  239.     enum Reason { Mouse=Qt::MouseFocusReason, Tab=Qt::TabFocusReason,
  240.                   Backtab=Qt::BacktabFocusReason, MenuBar=Qt::MenuBarFocusReason,
  241.                   ActiveWindow=Qt::ActiveWindowFocusReason, Other=Qt::OtherFocusReason,
  242.                   Popup=Qt::PopupFocusReason, Shortcut=Qt::ShortcutFocusReason };
  243. #endif
  244.     Qt::FocusReason reason();
  245.     Qt::FocusReason reason() const;
  246. private:
  247.     Qt::FocusReason m_reason;
  248. };
  249. class Q_GUI_EXPORT QPaintEvent : public QEvent
  250. {
  251. public:
  252.     QPaintEvent(const QRegion& paintRegion);
  253.     QPaintEvent(const QRect &paintRect);
  254.     ~QPaintEvent();
  255.     inline const QRect &rect() const { return m_rect; }
  256.     inline const QRegion &region() const { return m_region; }
  257. #ifdef QT3_SUPPORT
  258.     QT3_SUPPORT_CONSTRUCTOR QPaintEvent(const QRegion &paintRegion, const QRect &paintRect);
  259.     inline QT3_SUPPORT bool erased() const { return m_erased; }
  260.     inline QT3_SUPPORT void setErased(bool b) { m_erased = b; }
  261. #endif
  262. protected:
  263.     friend class QApplication;
  264.     friend class QCoreApplication;
  265.     QRect m_rect;
  266.     QRegion m_region;
  267.     bool m_erased;
  268. };
  269. class QUpdateLaterEvent : public QEvent
  270. {
  271. public:
  272.     QUpdateLaterEvent(const QRegion& paintRegion);
  273.     ~QUpdateLaterEvent();
  274.     inline const QRegion &region() const { return m_region; }
  275. protected:
  276.     QRegion m_region;
  277. };
  278. class Q_GUI_EXPORT QMoveEvent : public QEvent
  279. {
  280. public:
  281.     QMoveEvent(const QPoint &pos, const QPoint &oldPos);
  282.     ~QMoveEvent();
  283.     inline const QPoint &pos() const { return p; }
  284.     inline const QPoint &oldPos() const { return oldp;}
  285. protected:
  286.     QPoint p, oldp;
  287.     friend class QApplication;
  288.     friend class QCoreApplication;
  289. };
  290. class Q_GUI_EXPORT QResizeEvent : public QEvent
  291. {
  292. public:
  293.     QResizeEvent(const QSize &size, const QSize &oldSize);
  294.     ~QResizeEvent();
  295.     inline const QSize &size() const { return s; }
  296.     inline const QSize &oldSize()const { return olds;}
  297. protected:
  298.     QSize s, olds;
  299.     friend class QApplication;
  300.     friend class QCoreApplication;
  301. };
  302. class Q_GUI_EXPORT QCloseEvent : public QEvent
  303. {
  304. public:
  305.     QCloseEvent();
  306.     ~QCloseEvent();
  307. };
  308. class Q_GUI_EXPORT QIconDragEvent : public QEvent
  309. {
  310. public:
  311.     QIconDragEvent();
  312.     ~QIconDragEvent();
  313. };
  314. class Q_GUI_EXPORT QShowEvent : public QEvent
  315. {
  316. public:
  317.     QShowEvent();
  318.     ~QShowEvent();
  319. };
  320. class Q_GUI_EXPORT QHideEvent : public QEvent
  321. {
  322. public:
  323.     QHideEvent();
  324.     ~QHideEvent();
  325. };
  326. #ifndef QT_NO_CONTEXTMENU
  327. class Q_GUI_EXPORT QContextMenuEvent : public QInputEvent
  328. {
  329. public:
  330.     enum Reason { Mouse, Keyboard, Other };
  331.     QContextMenuEvent(Reason reason, const QPoint &pos, const QPoint &globalPos,
  332.                       Qt::KeyboardModifiers modifiers);
  333.     QContextMenuEvent(Reason reason, const QPoint &pos, const QPoint &globalPos);
  334.     QContextMenuEvent(Reason reason, const QPoint &pos);
  335.     ~QContextMenuEvent();
  336.     inline int x() const { return p.x(); }
  337.     inline int y() const { return p.y(); }
  338.     inline int globalX() const { return gp.x(); }
  339.     inline int globalY() const { return gp.y(); }
  340.     inline const QPoint& pos() const { return p; }
  341.     inline const QPoint& globalPos() const { return gp; }
  342.     inline Reason reason() const { return Reason(reas); }
  343. #ifdef QT3_SUPPORT
  344.     QT3_SUPPORT_CONSTRUCTOR QContextMenuEvent(Reason reason, const QPoint &pos, const QPoint &globalPos, int);
  345.     QT3_SUPPORT_CONSTRUCTOR QContextMenuEvent(Reason reason, const QPoint &pos, int);
  346.     QT3_SUPPORT Qt::ButtonState state() const;
  347. #endif
  348. protected:
  349.     QPoint p;
  350.     QPoint gp;
  351.     uint reas : 8;
  352. };
  353. #endif // QT_NO_CONTEXTMENU
  354. #ifndef QT_NO_INPUTMETHOD
  355. class Q_GUI_EXPORT QInputMethodEvent : public QEvent
  356. {
  357. public:
  358.     enum AttributeType {
  359.        TextFormat,
  360.        Cursor,
  361.        Language,
  362.        Ruby
  363.     };
  364.     class Attribute {
  365.     public:
  366.         Attribute(AttributeType t, int s, int l, QVariant val) : type(t), start(s), length(l), value(val) {}
  367.         AttributeType type;
  368.         int start;
  369.         int length;
  370.         QVariant value;
  371.     };
  372.     QInputMethodEvent();
  373.     QInputMethodEvent(const QString &preeditText, const QList<Attribute> &attributes);
  374.     void setCommitString(const QString &commitString, int replaceFrom = 0, int replaceLength = 0);
  375.     inline const QList<Attribute> &attributes() const { return attrs; }
  376.     inline const QString &preeditString() const { return preedit; }
  377.     inline const QString &commitString() const { return commit; }
  378.     inline int replacementStart() const { return replace_from; }
  379.     inline int replacementLength() const { return replace_length; }
  380.     QInputMethodEvent(const QInputMethodEvent &other);
  381. private:
  382.     QString preedit;
  383.     QList<Attribute> attrs;
  384.     QString commit;
  385.     int replace_from;
  386.     int replace_length;
  387. };
  388. #endif // QT_NO_INPUTMETHOD
  389. #ifndef QT_NO_DRAGANDDROP
  390. class QMimeData;
  391. class Q_GUI_EXPORT QDropEvent : public QEvent
  392. // QT3_SUPPORT
  393.                               , public QMimeSource
  394. // END QT3_SUPPORT
  395. {
  396. public:
  397.     QDropEvent(const QPoint& pos, Qt::DropActions actions, const QMimeData *data,
  398.                Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Type type = Drop);
  399.     ~QDropEvent();
  400.     inline const QPoint &pos() const { return p; }
  401.     inline Qt::MouseButtons mouseButtons() const { return mouseState; }
  402.     inline Qt::KeyboardModifiers keyboardModifiers() const { return modState; }
  403.     inline Qt::DropActions possibleActions() const { return act; }
  404.     inline Qt::DropAction proposedAction() const { return default_action; }
  405.     inline void acceptProposedAction() { drop_action = default_action; accept(); }
  406.     inline Qt::DropAction dropAction() const { return drop_action; }
  407.     void setDropAction(Qt::DropAction action);
  408.     QWidget* source() const;
  409.     inline const QMimeData *mimeData() const { return mdata; }
  410. // QT3_SUPPORT
  411.     const char* format(int n = 0) const;
  412.     QByteArray encodedData(const char*) const;
  413.     bool provides(const char*) const;
  414. // END QT3_SUPPORT
  415. #ifdef QT3_SUPPORT
  416.     inline void accept() { QEvent::accept(); }
  417.     inline QT3_SUPPORT void accept(bool y) { setAccepted(y); }
  418.     inline QT3_SUPPORT QByteArray data(const char* f) const { return encodedData(f); }
  419.     enum Action { Copy, Link, Move, Private, UserAction = Private };
  420.     QT3_SUPPORT Action action() const;
  421.     inline QT3_SUPPORT void acceptAction(bool y = true)  { if (y) { drop_action = default_action; accept(); } }
  422.     inline QT3_SUPPORT void setPoint(const QPoint& np) { p = np; }
  423. #endif
  424. protected:
  425.     friend class QApplication;
  426.     QPoint p;
  427.     Qt::MouseButtons mouseState;
  428.     Qt::KeyboardModifiers modState;
  429.     Qt::DropActions act;
  430.     Qt::DropAction drop_action;
  431.     Qt::DropAction default_action;
  432.     const QMimeData *mdata;
  433.     mutable QList<QByteArray> fmts; // only used for QT3_SUPPORT
  434. };
  435. class Q_GUI_EXPORT QDragMoveEvent : public QDropEvent
  436. {
  437. public:
  438.     QDragMoveEvent(const QPoint &pos, Qt::DropActions actions, const QMimeData *data,
  439.                    Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Type type = DragMove);
  440.     ~QDragMoveEvent();
  441.     inline QRect answerRect() const { return rect; }
  442.     inline void accept() { QDropEvent::accept(); }
  443.     inline void ignore() { QDropEvent::ignore(); }
  444.     inline void accept(const QRect & r) { accept(); rect = r; }
  445.     inline void ignore(const QRect & r) { ignore(); rect = r; }
  446. #ifdef QT3_SUPPORT
  447.     inline QT3_SUPPORT void accept(bool y) { setAccepted(y); }
  448. #endif
  449. protected:
  450.     friend class QApplication;
  451.     QRect rect;
  452. };
  453. class Q_GUI_EXPORT QDragEnterEvent : public QDragMoveEvent
  454. {
  455. public:
  456.     QDragEnterEvent(const QPoint &pos, Qt::DropActions actions, const QMimeData *data,
  457.                     Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers);
  458.     ~QDragEnterEvent();
  459. };
  460. /* An internal class */
  461. class Q_GUI_EXPORT QDragResponseEvent : public QEvent
  462. {
  463. public:
  464.     QDragResponseEvent(bool accepted);
  465.     ~QDragResponseEvent();
  466.     inline bool dragAccepted() const { return a; }
  467. protected:
  468.     bool a;
  469. };
  470. class Q_GUI_EXPORT QDragLeaveEvent : public QEvent
  471. {
  472. public:
  473.     QDragLeaveEvent();
  474.     ~QDragLeaveEvent();
  475. };
  476. #endif // QT_NO_DRAGANDDROP
  477. class Q_GUI_EXPORT QHelpEvent : public QEvent
  478. {
  479. public:
  480.     QHelpEvent(Type type, const QPoint &pos, const QPoint &globalPos);
  481.     ~QHelpEvent();
  482.     inline int x() const { return p.x(); }
  483.     inline int y() const { return p.y(); }
  484.     inline int globalX() const { return gp.x(); }
  485.     inline int globalY() const { return gp.y(); }
  486.     inline const QPoint& pos()  const { return p; }
  487.     inline const QPoint& globalPos() const { return gp; }
  488. private:
  489.     QPoint p;
  490.     QPoint gp;
  491. };
  492. #ifndef QT_NO_STATUSTIP
  493. class Q_GUI_EXPORT QStatusTipEvent : public QEvent
  494. {
  495. public:
  496.     QStatusTipEvent(const QString &tip);
  497.     ~QStatusTipEvent();
  498.     inline QString tip() const { return s; }
  499. private:
  500.     QString s;
  501. };
  502. #endif
  503. #ifndef QT_NO_WHATSTHIS
  504. class Q_GUI_EXPORT QWhatsThisClickedEvent : public QEvent
  505. {
  506. public:
  507.     QWhatsThisClickedEvent(const QString &href);
  508.     ~QWhatsThisClickedEvent();
  509.     inline QString href() const { return s; }
  510. private:
  511.     QString s;
  512. };
  513. #endif
  514. #ifndef QT_NO_ACTION
  515. class Q_GUI_EXPORT QActionEvent : public QEvent
  516. {
  517.     QAction *act, *bef;
  518. public:
  519.     QActionEvent(int type, QAction *action, QAction *before = 0);
  520.     ~QActionEvent();
  521.     inline QAction *action() const { return act; }
  522.     inline QAction *before() const { return bef; }
  523. };
  524. #endif
  525. class Q_GUI_EXPORT QFileOpenEvent : public QEvent
  526. {
  527. public:
  528.     QFileOpenEvent(const QString &file);
  529.     ~QFileOpenEvent();
  530.     inline QString file() const { return f; }
  531. private:
  532.     QString f;
  533. };
  534. #ifndef QT_NO_TOOLBAR
  535. class Q_GUI_EXPORT QToolBarChangeEvent : public QEvent
  536. {
  537. public:
  538.     QToolBarChangeEvent(bool t);
  539.     ~QToolBarChangeEvent();
  540.     inline bool toggle() const { return tog; }
  541. private:
  542.     uint tog : 1;
  543. };
  544. #endif
  545. #ifndef QT_NO_SHORTCUT
  546. class Q_GUI_EXPORT QShortcutEvent : public QEvent
  547. {
  548. public:
  549.     QShortcutEvent(const QKeySequence &key, int id, bool ambiguous = false);
  550.     ~QShortcutEvent();
  551.     inline const QKeySequence &key() { return sequence; }
  552.     inline const QKeySequence &key() const { return sequence; }
  553.     inline int shortcutId() { return sid; }
  554.     inline int shortcutId() const { return sid; }
  555.     inline bool isAmbiguous() { return ambig; }
  556.     inline bool isAmbiguous() const { return ambig; }
  557. protected:
  558.     QKeySequence sequence;
  559.     bool ambig;
  560.     int  sid;
  561. };
  562. #endif
  563. #ifndef QT_NO_CLIPBOARD
  564. class Q_GUI_EXPORT QClipboardEvent : public QEvent
  565. {
  566. public:
  567.     QClipboardEvent(QEventPrivate *data);
  568.     ~QClipboardEvent();
  569.     QEventPrivate *data() { return d; };
  570. };
  571. #endif
  572. class Q_GUI_EXPORT QWindowStateChangeEvent: public QEvent
  573. {
  574. public:
  575.     QWindowStateChangeEvent(Qt::WindowStates aOldState);
  576.     QWindowStateChangeEvent(Qt::WindowStates aOldState, bool isOverride);
  577.     ~QWindowStateChangeEvent();
  578.     inline Qt::WindowStates oldState() const { return ostate; }
  579.     bool isOverride() const;
  580. private:
  581.     Qt::WindowStates ostate;
  582. };
  583. #ifdef QT3_SUPPORT
  584. class QMenuBar;
  585. class Q_GUI_EXPORT QMenubarUpdatedEvent: public QEvent
  586. {
  587. public:
  588.     QMenubarUpdatedEvent(QMenuBar * const menBar);
  589.     inline QMenuBar *menuBar() { return m_menuBar; }
  590. private:
  591.     QMenuBar *m_menuBar;
  592. };
  593. #endif
  594. #ifndef QT_NO_DEBUG_STREAM
  595. Q_GUI_EXPORT QDebug operator<<(QDebug, const QEvent *);
  596. #endif
  597. #ifndef QT_NO_SHORTCUT
  598. inline bool operator==(QKeyEvent *e, QKeySequence::StandardKey key){return (e ? e->matches(key) : false);}
  599. inline bool operator==(QKeySequence::StandardKey key, QKeyEvent *e){return (e ? e->matches(key) : false);}
  600. #endif // QT_NO_SHORTCUT
  601. QT_END_NAMESPACE
  602. QT_END_HEADER
  603. #endif // QEVENT_H