1 /****************************************************************************
3 ** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
4 ** Contact: http://www.qt-project.org/
6 ** This file is part of the QtGui module of the Qt Toolkit.
8 ** $QT_BEGIN_LICENSE:LGPL$
9 ** GNU Lesser General Public License Usage
10 ** This file may be used under the terms of the GNU Lesser General Public
11 ** License version 2.1 as published by the Free Software Foundation and
12 ** appearing in the file LICENSE.LGPL included in the packaging of this
13 ** file. Please review the following information to ensure the GNU Lesser
14 ** General Public License version 2.1 requirements will be met:
15 ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
17 ** In addition, as a special exception, Nokia gives you certain additional
18 ** rights. These rights are described in the Nokia Qt LGPL Exception
19 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
21 ** GNU General Public License Usage
22 ** Alternatively, this file may be used under the terms of the GNU General
23 ** Public License version 3.0 as published by the Free Software Foundation
24 ** and appearing in the file LICENSE.GPL included in the packaging of this
25 ** file. Please review the following information to ensure the GNU General
26 ** Public License version 3.0 requirements will be met:
27 ** http://www.gnu.org/copyleft/gpl.html.
30 ** Alternatively, this file may be used in accordance with the terms and
31 ** conditions contained in a signed written agreement between you and Nokia.
40 ****************************************************************************/
45 #include <QtGui/qwindowdefs.h>
46 #include <QtCore/qobject.h>
47 #include <QtGui/qregion.h>
48 #include <QtCore/qnamespace.h>
49 #include <QtCore/qstring.h>
50 #include <QtGui/qkeysequence.h>
51 #include <QtCore/qcoreevent.h>
52 #include <QtCore/qvariant.h>
53 #include <QtCore/qmap.h>
54 #include <QtCore/qvector.h>
55 #include <QtCore/qset.h>
56 #include <QtCore/qfile.h>
57 #include <QtGui/qvector2d.h>
58 #include <QtGui/qtouchdevice.h>
66 #ifndef QT_NO_GESTURES
71 class Q_GUI_EXPORT QInputEvent : public QEvent
74 explicit QInputEvent(Type type, Qt::KeyboardModifiers modifiers = Qt::NoModifier);
76 inline Qt::KeyboardModifiers modifiers() const { return modState; }
77 inline void setModifiers(Qt::KeyboardModifiers amodifiers) { modState = amodifiers; }
78 inline ulong timestamp() const { return ts; }
79 inline void setTimestamp(ulong atimestamp) { ts = atimestamp; }
81 Qt::KeyboardModifiers modState;
85 class Q_GUI_EXPORT QMouseEvent : public QInputEvent
88 QMouseEvent(Type type, const QPointF &pos, Qt::MouseButton button,
89 Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers);
90 QMouseEvent(Type type, const QPointF &pos, const QPointF &globalPos,
91 Qt::MouseButton button, Qt::MouseButtons buttons,
92 Qt::KeyboardModifiers modifiers);
93 QMouseEvent(Type type, const QPointF &pos, const QPointF &windowPos, const QPointF &globalPos,
94 Qt::MouseButton button, Qt::MouseButtons buttons,
95 Qt::KeyboardModifiers modifiers);
98 #ifndef QT_NO_INTEGER_EVENT_COORDINATES
99 inline QPoint pos() const { return l.toPoint(); }
100 inline QPoint globalPos() const { return s.toPoint(); }
101 inline int x() const { return qRound(l.x()); }
102 inline int y() const { return qRound(l.y()); }
103 inline int globalX() const { return qRound(s.x()); }
104 inline int globalY() const { return qRound(s.y()); }
106 const QPointF &localPos() const { return l; }
107 const QPointF &windowPos() const { return w; }
108 const QPointF &screenPos() const { return s; }
110 inline Qt::MouseButton button() const { return b; }
111 inline Qt::MouseButtons buttons() const { return mouseState; }
113 #if QT_DEPRECATED_SINCE(5, 0)
114 QT_DEPRECATED inline QPointF posF() const { return l; }
120 Qt::MouseButtons mouseState;
123 class Q_GUI_EXPORT QHoverEvent : public QInputEvent
126 QHoverEvent(Type type, const QPointF &pos, const QPointF &oldPos, Qt::KeyboardModifiers modifiers = Qt::NoModifier);
129 #ifndef QT_NO_INTEGER_EVENT_COORDINATES
130 inline QPoint pos() const { return p.toPoint(); }
131 inline QPoint oldPos() const { return op.toPoint(); }
134 inline const QPointF &posF() const { return p; }
135 inline const QPointF &oldPosF() const { return op; }
141 #ifndef QT_NO_WHEELEVENT
142 class Q_GUI_EXPORT QWheelEvent : public QInputEvent
145 QWheelEvent(const QPointF &pos, int delta,
146 Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers,
147 Qt::Orientation orient = Qt::Vertical);
148 QWheelEvent(const QPointF &pos, const QPointF& globalPos, int delta,
149 Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers,
150 Qt::Orientation orient = Qt::Vertical);
151 QWheelEvent(const QPointF &pos, const QPointF& globalPos,
152 QPoint pixelDelta, QPoint angleDelta, int qt4Delta, Qt::Orientation qt4Orientation,
153 Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers);
158 inline QPoint pixelDelta() const { return pixelD; }
159 inline QPoint angleDelta() const { return angleD; }
161 inline int delta() const { return qt4D; }
162 inline Qt::Orientation orientation() const { return qt4O; }
164 #ifndef QT_NO_INTEGER_EVENT_COORDINATES
165 inline QPoint pos() const { return p.toPoint(); }
166 inline QPoint globalPos() const { return g.toPoint(); }
167 inline int x() const { return p.x(); }
168 inline int y() const { return p.y(); }
169 inline int globalX() const { return g.x(); }
170 inline int globalY() const { return g.y(); }
172 inline const QPointF &posF() const { return p; }
173 inline const QPointF &globalPosF() const { return g; }
175 inline Qt::MouseButtons buttons() const { return mouseState; }
182 Qt::Orientation qt4O;
183 Qt::MouseButtons mouseState;
188 #ifndef QT_NO_TABLETEVENT
189 class Q_GUI_EXPORT QTabletEvent : public QInputEvent
192 enum TabletDevice { NoDevice, Puck, Stylus, Airbrush, FourDMouse,
193 XFreeEraser /*internal*/, RotationStylus };
194 enum PointerType { UnknownPointer, Pen, Cursor, Eraser };
195 QTabletEvent(Type t, const QPointF &pos, const QPointF &globalPos,
196 int device, int pointerType, qreal pressure, int xTilt, int yTilt,
197 qreal tangentialPressure, qreal rotation, int z,
198 Qt::KeyboardModifiers keyState, qint64 uniqueID);
201 inline const QPoint pos() const { return mPos.toPoint(); }
202 inline const QPoint globalPos() const { return mGPos.toPoint(); }
203 #if QT_DEPRECATED_SINCE(5,0)
204 QT_DEPRECATED inline const QPointF &hiResGlobalPos() const { return mPos; }
207 inline const QPointF &posF() const { return mPos; }
208 inline const QPointF &globalPosF() const { return mGPos; }
210 inline int x() const { return qRound(mPos.x()); }
211 inline int y() const { return qRound(mPos.y()); }
212 inline int globalX() const { return qRound(mGPos.x()); }
213 inline int globalY() const { return qRound(mGPos.y()); }
214 inline qreal hiResGlobalX() const { return mGPos.x(); }
215 inline qreal hiResGlobalY() const { return mGPos.y(); }
216 inline TabletDevice device() const { return TabletDevice(mDev); }
217 inline PointerType pointerType() const { return PointerType(mPointerType); }
218 inline qint64 uniqueId() const { return mUnique; }
219 inline qreal pressure() const { return mPress; }
220 inline int z() const { return mZ; }
221 inline qreal tangentialPressure() const { return mTangential; }
222 inline qreal rotation() const { return mRot; }
223 inline int xTilt() const { return mXT; }
224 inline int yTilt() const { return mYT; }
228 int mDev, mPointerType, mXT, mYT, mZ;
229 qreal mPress, mTangential, mRot;
232 // I don't know what the future holds for tablets but there could be some
233 // new devices coming along, and there seem to be "holes" in the
234 // OS-specific events for this.
237 #endif // QT_NO_TABLETEVENT
239 class Q_GUI_EXPORT QKeyEvent : public QInputEvent
242 QKeyEvent(Type type, int key, Qt::KeyboardModifiers modifiers, const QString& text = QString(),
243 bool autorep = false, ushort count = 1);
244 QKeyEvent(Type type, int key, Qt::KeyboardModifiers modifiers,
245 quint32 nativeScanCode, quint32 nativeVirtualKey, quint32 nativeModifiers,
246 const QString &text = QString(), bool autorep = false, ushort count = 1);
249 int key() const { return k; }
250 #ifndef QT_NO_SHORTCUT
251 bool matches(QKeySequence::StandardKey key) const;
253 Qt::KeyboardModifiers modifiers() const;
254 inline QString text() const { return txt; }
255 inline bool isAutoRepeat() const { return autor; }
256 inline int count() const { return int(c); }
258 inline quint32 nativeScanCode() const { return nScanCode; }
259 inline quint32 nativeVirtualKey() const { return nVirtualKey; }
260 inline quint32 nativeModifiers() const { return nModifiers; }
262 // Functions for the extended key event information
263 #if QT_DEPRECATED_SINCE(5, 0)
264 static inline QKeyEvent *createExtendedKeyEvent(Type type, int key, Qt::KeyboardModifiers modifiers,
265 quint32 nativeScanCode, quint32 nativeVirtualKey,
266 quint32 nativeModifiers,
267 const QString& text = QString(), bool autorep = false,
270 return new QKeyEvent(type, key, modifiers,
271 nativeScanCode, nativeVirtualKey, nativeModifiers,
272 text, autorep, count);
275 inline bool hasExtendedInfo() const { return true; }
286 // ushort reserved:15;
290 class Q_GUI_EXPORT QFocusEvent : public QEvent
293 explicit QFocusEvent(Type type, Qt::FocusReason reason=Qt::OtherFocusReason);
296 inline bool gotFocus() const { return type() == FocusIn; }
297 inline bool lostFocus() const { return type() == FocusOut; }
299 Qt::FocusReason reason() const;
302 Qt::FocusReason m_reason;
306 class Q_GUI_EXPORT QPaintEvent : public QEvent
309 explicit QPaintEvent(const QRegion& paintRegion);
310 explicit QPaintEvent(const QRect &paintRect);
313 inline const QRect &rect() const { return m_rect; }
314 inline const QRegion ®ion() const { return m_region; }
317 friend class QApplication;
318 friend class QCoreApplication;
324 // ### Qt5: make internal
325 class Q_GUI_EXPORT QUpdateLaterEvent : public QEvent
328 explicit QUpdateLaterEvent(const QRegion& paintRegion);
329 ~QUpdateLaterEvent();
331 inline const QRegion ®ion() const { return m_region; }
337 class Q_GUI_EXPORT QMoveEvent : public QEvent
340 QMoveEvent(const QPoint &pos, const QPoint &oldPos);
343 inline const QPoint &pos() const { return p; }
344 inline const QPoint &oldPos() const { return oldp;}
347 friend class QApplication;
348 friend class QCoreApplication;
351 class Q_GUI_EXPORT QExposeEvent : public QEvent
354 explicit QExposeEvent(const QRegion &rgn);
357 inline const QRegion ®ion() const { return rgn; }
363 class Q_GUI_EXPORT QResizeEvent : public QEvent
366 QResizeEvent(const QSize &size, const QSize &oldSize);
369 inline const QSize &size() const { return s; }
370 inline const QSize &oldSize()const { return olds;}
373 friend class QApplication;
374 friend class QCoreApplication;
378 class Q_GUI_EXPORT QCloseEvent : public QEvent
386 class Q_GUI_EXPORT QIconDragEvent : public QEvent
394 class Q_GUI_EXPORT QShowEvent : public QEvent
402 class Q_GUI_EXPORT QHideEvent : public QEvent
409 #ifndef QT_NO_CONTEXTMENU
410 class Q_GUI_EXPORT QContextMenuEvent : public QInputEvent
413 enum Reason { Mouse, Keyboard, Other };
415 QContextMenuEvent(Reason reason, const QPoint &pos, const QPoint &globalPos,
416 Qt::KeyboardModifiers modifiers);
417 QContextMenuEvent(Reason reason, const QPoint &pos, const QPoint &globalPos);
418 QContextMenuEvent(Reason reason, const QPoint &pos);
419 ~QContextMenuEvent();
421 inline int x() const { return p.x(); }
422 inline int y() const { return p.y(); }
423 inline int globalX() const { return gp.x(); }
424 inline int globalY() const { return gp.y(); }
426 inline const QPoint& pos() const { return p; }
427 inline const QPoint& globalPos() const { return gp; }
429 inline Reason reason() const { return Reason(reas); }
436 #endif // QT_NO_CONTEXTMENU
438 #ifndef QT_NO_INPUTMETHOD
439 class Q_GUI_EXPORT QInputMethodEvent : public QEvent
451 Attribute(AttributeType t, int s, int l, QVariant val) : type(t), start(s), length(l), value(val) {}
459 QInputMethodEvent(const QString &preeditText, const QList<Attribute> &attributes);
460 void setCommitString(const QString &commitString, int replaceFrom = 0, int replaceLength = 0);
461 QT_DEPRECATED void setTentativeCommitString(const QString &tentativeCommitString);
463 inline const QList<Attribute> &attributes() const { return attrs; }
464 inline const QString &preeditString() const { return preedit; }
466 inline const QString &commitString() const { return commit; }
467 inline int replacementStart() const { return replace_from; }
468 inline int replacementLength() const { return replace_length; }
469 QT_DEPRECATED inline const QString &tentativeCommitString() const { return tentativeCommit; }
471 QInputMethodEvent(const QInputMethodEvent &other);
475 QList<Attribute> attrs;
479 QString tentativeCommit;
481 Q_DECLARE_TYPEINFO(QInputMethodEvent::Attribute, Q_MOVABLE_TYPE);
483 class Q_GUI_EXPORT QInputMethodQueryEvent : public QEvent
486 explicit QInputMethodQueryEvent(Qt::InputMethodQueries queries);
487 ~QInputMethodQueryEvent();
489 Qt::InputMethodQueries queries() const { return m_queries; }
491 void setValue(Qt::InputMethodQuery query, const QVariant &value);
492 QVariant value(Qt::InputMethodQuery query) const;
494 Qt::InputMethodQueries m_queries;
496 Qt::InputMethodQuery query;
499 QVector<QueryPair> m_values;
502 #endif // QT_NO_INPUTMETHOD
504 #ifndef QT_NO_DRAGANDDROP
508 class Q_GUI_EXPORT QDropEvent : public QEvent
511 QDropEvent(const QPointF& pos, Qt::DropActions actions, const QMimeData *data,
512 Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Type type = Drop);
515 inline const QPoint pos() const { return p.toPoint(); }
516 inline const QPointF &posF() const { return p; }
517 inline Qt::MouseButtons mouseButtons() const { return mouseState; }
518 inline Qt::KeyboardModifiers keyboardModifiers() const { return modState; }
520 inline Qt::DropActions possibleActions() const { return act; }
521 inline Qt::DropAction proposedAction() const { return default_action; }
522 inline void acceptProposedAction() { drop_action = default_action; accept(); }
524 inline Qt::DropAction dropAction() const { return drop_action; }
525 void setDropAction(Qt::DropAction action);
527 QObject* source() const;
528 inline const QMimeData *mimeData() const { return mdata; }
531 friend class QApplication;
533 Qt::MouseButtons mouseState;
534 Qt::KeyboardModifiers modState;
536 Qt::DropAction drop_action;
537 Qt::DropAction default_action;
538 const QMimeData *mdata;
542 class Q_GUI_EXPORT QDragMoveEvent : public QDropEvent
545 QDragMoveEvent(const QPoint &pos, Qt::DropActions actions, const QMimeData *data,
546 Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Type type = DragMove);
549 inline QRect answerRect() const { return rect; }
551 inline void accept() { QDropEvent::accept(); }
552 inline void ignore() { QDropEvent::ignore(); }
554 inline void accept(const QRect & r) { accept(); rect = r; }
555 inline void ignore(const QRect & r) { ignore(); rect = r; }
558 friend class QApplication;
563 class Q_GUI_EXPORT QDragEnterEvent : public QDragMoveEvent
566 QDragEnterEvent(const QPoint &pos, Qt::DropActions actions, const QMimeData *data,
567 Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers);
572 class Q_GUI_EXPORT QDragLeaveEvent : public QEvent
578 #endif // QT_NO_DRAGANDDROP
581 class Q_GUI_EXPORT QHelpEvent : public QEvent
584 QHelpEvent(Type type, const QPoint &pos, const QPoint &globalPos);
587 inline int x() const { return p.x(); }
588 inline int y() const { return p.y(); }
589 inline int globalX() const { return gp.x(); }
590 inline int globalY() const { return gp.y(); }
592 inline const QPoint& pos() const { return p; }
593 inline const QPoint& globalPos() const { return gp; }
600 #ifndef QT_NO_STATUSTIP
601 class Q_GUI_EXPORT QStatusTipEvent : public QEvent
604 explicit QStatusTipEvent(const QString &tip);
607 inline QString tip() const { return s; }
613 #ifndef QT_NO_WHATSTHIS
614 class Q_GUI_EXPORT QWhatsThisClickedEvent : public QEvent
617 explicit QWhatsThisClickedEvent(const QString &href);
618 ~QWhatsThisClickedEvent();
620 inline QString href() const { return s; }
627 class Q_GUI_EXPORT QActionEvent : public QEvent
631 QActionEvent(int type, QAction *action, QAction *before = 0);
634 inline QAction *action() const { return act; }
635 inline QAction *before() const { return bef; }
639 class Q_GUI_EXPORT QFileOpenEvent : public QEvent
642 explicit QFileOpenEvent(const QString &file);
643 explicit QFileOpenEvent(const QUrl &url);
646 inline QString file() const { return f; }
648 bool openFile(QFile &file, QIODevice::OpenMode flags) const;
653 #ifndef QT_NO_TOOLBAR
654 class Q_GUI_EXPORT QToolBarChangeEvent : public QEvent
657 explicit QToolBarChangeEvent(bool t);
658 ~QToolBarChangeEvent();
660 inline bool toggle() const { return tog; }
666 #ifndef QT_NO_SHORTCUT
667 class Q_GUI_EXPORT QShortcutEvent : public QEvent
670 QShortcutEvent(const QKeySequence &key, int id, bool ambiguous = false);
673 inline const QKeySequence &key() const { return sequence; }
674 inline int shortcutId() const { return sid; }
675 inline bool isAmbiguous() const { return ambig; }
677 QKeySequence sequence;
683 class Q_GUI_EXPORT QWindowStateChangeEvent: public QEvent
686 explicit QWindowStateChangeEvent(Qt::WindowStates aOldState);
687 QWindowStateChangeEvent(Qt::WindowStates aOldState, bool isOverride);
688 ~QWindowStateChangeEvent();
690 inline Qt::WindowStates oldState() const { return ostate; }
691 bool isOverride() const;
694 Qt::WindowStates ostate;
697 #ifndef QT_NO_DEBUG_STREAM
698 Q_GUI_EXPORT QDebug operator<<(QDebug, const QEvent *);
701 #ifndef QT_NO_SHORTCUT
702 inline bool operator==(QKeyEvent *e, QKeySequence::StandardKey key){return (e ? e->matches(key) : false);}
703 inline bool operator==(QKeySequence::StandardKey key, QKeyEvent *e){return (e ? e->matches(key) : false);}
704 #endif // QT_NO_SHORTCUT
706 class QTouchEventTouchPointPrivate;
707 class Q_GUI_EXPORT QTouchEvent : public QInputEvent
710 class Q_GUI_EXPORT TouchPoint
716 Q_DECLARE_FLAGS(InfoFlags, InfoFlag)
718 explicit TouchPoint(int id = -1);
719 TouchPoint(const TouchPoint &other);
720 #ifdef Q_COMPILER_RVALUE_REFS
721 TouchPoint(TouchPoint &&other) : d(other.d) { other.d = 0; }
722 TouchPoint &operator=(TouchPoint &&other)
723 { qSwap(d, other.d); return *this; }
727 TouchPoint &operator=(const TouchPoint &other)
728 { if ( d != other.d ) { TouchPoint copy(other); swap(copy); } return *this; }
730 void swap(TouchPoint &other) { qSwap(d, other.d); }
734 Qt::TouchPointState state() const;
737 QPointF startPos() const;
738 QPointF lastPos() const;
740 QPointF scenePos() const;
741 QPointF startScenePos() const;
742 QPointF lastScenePos() const;
744 QPointF screenPos() const;
745 QPointF startScreenPos() const;
746 QPointF lastScreenPos() const;
748 QPointF normalizedPos() const;
749 QPointF startNormalizedPos() const;
750 QPointF lastNormalizedPos() const;
753 QRectF sceneRect() const;
754 QRectF screenRect() const;
756 qreal pressure() const;
757 QVector2D velocity() const;
758 InfoFlags flags() const;
759 QVector<QPointF> rawScreenPositions() const;
763 void setState(Qt::TouchPointStates state);
764 void setPos(const QPointF &pos);
765 void setScenePos(const QPointF &scenePos);
766 void setScreenPos(const QPointF &screenPos);
767 void setNormalizedPos(const QPointF &normalizedPos);
768 void setStartPos(const QPointF &startPos);
769 void setStartScenePos(const QPointF &startScenePos);
770 void setStartScreenPos(const QPointF &startScreenPos);
771 void setStartNormalizedPos(const QPointF &startNormalizedPos);
772 void setLastPos(const QPointF &lastPos);
773 void setLastScenePos(const QPointF &lastScenePos);
774 void setLastScreenPos(const QPointF &lastScreenPos);
775 void setLastNormalizedPos(const QPointF &lastNormalizedPos);
776 void setRect(const QRectF &rect);
777 void setSceneRect(const QRectF &sceneRect);
778 void setScreenRect(const QRectF &screenRect);
779 void setPressure(qreal pressure);
780 void setVelocity(const QVector2D &v);
781 void setFlags(InfoFlags flags);
782 void setRawScreenPositions(const QVector<QPointF> &positions);
785 QTouchEventTouchPointPrivate *d;
786 friend class QGuiApplication;
787 friend class QGuiApplicationPrivate;
788 friend class QApplication;
789 friend class QApplicationPrivate;
792 #if QT_DEPRECATED_SINCE(5, 0)
793 QT_DEPRECATED enum DeviceType {
799 explicit QTouchEvent(QEvent::Type eventType,
800 QTouchDevice *device = 0,
801 Qt::KeyboardModifiers modifiers = Qt::NoModifier,
802 Qt::TouchPointStates touchPointStates = 0,
803 const QList<QTouchEvent::TouchPoint> &touchPoints = QList<QTouchEvent::TouchPoint>());
806 inline QWindow *window() const { return _window; }
807 inline QObject *target() const { return _target; }
808 #if QT_DEPRECATED_SINCE(5, 0)
809 QT_DEPRECATED inline QTouchEvent::DeviceType deviceType() const { return static_cast<DeviceType>(int(_device->type())); }
811 inline Qt::TouchPointStates touchPointStates() const { return _touchPointStates; }
812 inline const QList<QTouchEvent::TouchPoint> &touchPoints() const { return _touchPoints; }
813 inline QTouchDevice *device() const { return _device; }
816 inline void setWindow(QWindow *awindow) { _window = awindow; }
817 inline void setTarget(QObject *atarget) { _target = atarget; }
818 inline void setTouchPointStates(Qt::TouchPointStates aTouchPointStates) { _touchPointStates = aTouchPointStates; }
819 inline void setTouchPoints(const QList<QTouchEvent::TouchPoint> &atouchPoints) { _touchPoints = atouchPoints; }
820 inline void setDevice(QTouchDevice *adevice) { _device = adevice; }
825 QTouchDevice *_device;
826 Qt::TouchPointStates _touchPointStates;
827 QList<QTouchEvent::TouchPoint> _touchPoints;
829 friend class QGuiApplication;
830 friend class QGuiApplicationPrivate;
831 friend class QApplication;
832 friend class QApplicationPrivate;
834 Q_DECLARE_TYPEINFO(QTouchEvent::TouchPoint, Q_MOVABLE_TYPE);
835 Q_DECLARE_OPERATORS_FOR_FLAGS(QTouchEvent::TouchPoint::InfoFlags)
837 class QScrollPrepareEventPrivate;
838 class Q_GUI_EXPORT QScrollPrepareEvent : public QEvent
841 explicit QScrollPrepareEvent(const QPointF &startPos);
842 ~QScrollPrepareEvent();
844 QPointF startPos() const;
846 QSizeF viewportSize() const;
847 QRectF contentPosRange() const;
848 QPointF contentPos() const;
850 void setViewportSize(const QSizeF &size);
851 void setContentPosRange(const QRectF &rect);
852 void setContentPos(const QPointF &pos);
855 QScrollPrepareEventPrivate *d_func();
856 const QScrollPrepareEventPrivate *d_func() const;
860 class QScrollEventPrivate;
861 class Q_GUI_EXPORT QScrollEvent : public QEvent
871 QScrollEvent(const QPointF &contentPos, const QPointF &overshoot, ScrollState scrollState);
874 QPointF contentPos() const;
875 QPointF overshootDistance() const;
876 ScrollState scrollState() const;
879 QScrollEventPrivate *d_func();
880 const QScrollEventPrivate *d_func() const;
883 class QScreenOrientationChangeEventPrivate;
884 class Q_GUI_EXPORT QScreenOrientationChangeEvent : public QEvent
887 QScreenOrientationChangeEvent(QScreen *screen, Qt::ScreenOrientation orientation);
888 ~QScreenOrientationChangeEvent();
890 QScreen *screen() const;
891 Qt::ScreenOrientation orientation() const;
894 QScreenOrientationChangeEventPrivate *d_func();
895 const QScreenOrientationChangeEventPrivate *d_func() const;