diff options
Diffstat (limited to 'src/gui/kernel/qtestsupport_gui.h')
-rw-r--r-- | src/gui/kernel/qtestsupport_gui.h | 41 |
1 files changed, 40 insertions, 1 deletions
diff --git a/src/gui/kernel/qtestsupport_gui.h b/src/gui/kernel/qtestsupport_gui.h index 86ff956ef8..5f1ac12936 100644 --- a/src/gui/kernel/qtestsupport_gui.h +++ b/src/gui/kernel/qtestsupport_gui.h @@ -41,15 +41,54 @@ #define QTESTSUPPORT_GUI_H #include <QtGui/qtguiglobal.h> +#include <QtGui/qevent.h> +#include <QtCore/qmap.h> QT_BEGIN_NAMESPACE class QWindow; +Q_GUI_EXPORT void qt_handleTouchEvent(QWindow *w, const QPointingDevice *device, + const QList<QEventPoint> &points, + Qt::KeyboardModifiers mods = Qt::NoModifier); + namespace QTest { + Q_REQUIRED_RESULT Q_GUI_EXPORT bool qWaitForWindowActive(QWindow *window, int timeout = 5000); Q_REQUIRED_RESULT Q_GUI_EXPORT bool qWaitForWindowExposed(QWindow *window, int timeout = 5000); -} + +Q_GUI_EXPORT QPointingDevice * createTouchDevice(QInputDevice::DeviceType devType = QInputDevice::DeviceType::TouchScreen, + QInputDevice::Capabilities caps = QInputDevice::Capability::Position); + +class Q_GUI_EXPORT QTouchEventSequence +{ +public: + virtual ~QTouchEventSequence(); + QTouchEventSequence& press(int touchId, const QPoint &pt, QWindow *window = nullptr); + QTouchEventSequence& move(int touchId, const QPoint &pt, QWindow *window = nullptr); + QTouchEventSequence& release(int touchId, const QPoint &pt, QWindow *window = nullptr); + virtual QTouchEventSequence& stationary(int touchId); + + virtual void commit(bool processEvents = true); + +protected: + QTouchEventSequence(QWindow *window, QPointingDevice *aDevice, bool autoCommit); + + QPoint mapToScreen(QWindow *window, const QPoint &pt); + + QEventPoint &point(int touchId); + + QEventPoint &pointOrPreviousPoint(int touchId); + + QMap<int, QEventPoint> previousPoints; + QMap<int, QEventPoint> points; + QWindow *targetWindow; + QPointingDevice *device; + bool commitWhenDestroyed; + friend QTouchEventSequence touchEvent(QWindow *window, QPointingDevice *device, bool autoCommit); +}; + +} // namespace QTest QT_END_NAMESPACE |