summaryrefslogtreecommitdiffstats
path: root/src/compositor/wayland_wrapper/qwltouch_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/compositor/wayland_wrapper/qwltouch_p.h')
-rw-r--r--src/compositor/wayland_wrapper/qwltouch_p.h33
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