diff options
Diffstat (limited to 'src/compositor/wayland_wrapper/qwltouch_p.h')
-rw-r--r-- | src/compositor/wayland_wrapper/qwltouch_p.h | 33 |
1 files changed, 31 insertions, 2 deletions
diff --git a/src/compositor/wayland_wrapper/qwltouch_p.h b/src/compositor/wayland_wrapper/qwltouch_p.h index 6b597e29e..695609809 100644 --- a/src/compositor/wayland_wrapper/qwltouch_p.h +++ b/src/compositor/wayland_wrapper/qwltouch_p.h @@ -42,9 +42,11 @@ #ifndef QTWAYLAND_QWLTOUCH_P_H #define QTWAYLAND_QWLTOUCH_P_H +#include <QtCompositor/qwaylandexport.h> + #include <QtCore/QPoint> -#include <qwayland-server-wayland.h> +#include <QtCompositor/private/qwayland-server-wayland.h> QT_BEGIN_NAMESPACE @@ -52,14 +54,35 @@ namespace QtWayland { class Compositor; class Surface; +class Touch; + +class Q_COMPOSITOR_EXPORT TouchGrabber { +public: + TouchGrabber(); + virtual ~TouchGrabber(); -class Touch : public QtWaylandServer::wl_touch + virtual void down(uint32_t time, int touch_id, const QPointF &position) = 0; + virtual void up(uint32_t time, int touch_id) = 0; + virtual void motion(uint32_t time, int touch_id, const QPointF &position) = 0; + + const Touch *touch() const; + Touch *touch(); + void setTouch(Touch *touch); + +private: + Touch *m_touch; +}; + +class Q_COMPOSITOR_EXPORT Touch : public QtWaylandServer::wl_touch, public TouchGrabber { public: explicit Touch(Compositor *compositor); void setFocus(Surface *surface); + void startGrab(TouchGrabber *grab); + void endGrab(); + void sendCancel(); void sendFrame(); @@ -67,11 +90,17 @@ public: void sendMotion(int touch_id, const QPointF &position); void sendUp(int touch_id); + void down(uint32_t time, int touch_id, const QPointF &position); + void up(uint32_t time, int touch_id); + void motion(uint32_t time, int touch_id, const QPointF &position); + private: Compositor *m_compositor; Surface *m_focus; Resource *m_focusResource; + + TouchGrabber *m_grab; }; } // namespace QtWayland |