summaryrefslogtreecommitdiff
path: root/src/vnc-keyboard-unstable-v1.h
diff options
context:
space:
mode:
authorFabien Proriol <fabien.proriol@kazoe.org>2025-05-25 17:58:09 +0200
committerFabien Proriol <fabien.proriol@kazoe.org>2025-05-26 18:01:49 +0200
commit49daa163530ceabc9eaa8911ab96b5f799cfb552 (patch)
tree080d0b31eafd138cd8d47d5c2a52b75d3cfa6f28 /src/vnc-keyboard-unstable-v1.h
Initial Commit
Diffstat (limited to 'src/vnc-keyboard-unstable-v1.h')
-rw-r--r--src/vnc-keyboard-unstable-v1.h46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/vnc-keyboard-unstable-v1.h b/src/vnc-keyboard-unstable-v1.h
new file mode 100644
index 0000000..3728b3f
--- /dev/null
+++ b/src/vnc-keyboard-unstable-v1.h
@@ -0,0 +1,46 @@
+#ifndef VIRTUALKEYBOARD_H
+#define VIRTUALKEYBOARD_H
+
+#include "wayland-util.h"
+#include <QQuickWindow>
+#include <QtWaylandCompositor/QWaylandCompositorExtensionTemplate>
+#include <QtWaylandCompositor/QWaylandQuickExtension>
+#include <QtWaylandCompositor/QWaylandCompositor>
+#include "qwayland-server-vnc-keyboard-unstable-v1.h"
+
+class VncKeyboardManager : public QWaylandCompositorExtensionTemplate<VncKeyboardManager>
+ , public QtWaylandServer::vnc_virtual_keyboard_manager_v1
+{
+ Q_OBJECT
+ Q_PROPERTY(QQuickWindow *window MEMBER m_window);
+
+public:
+ VncKeyboardManager(QWaylandCompositor *compositor = nullptr);
+ void initialize() override;
+
+protected:
+ void vnc_virtual_keyboard_manager_v1_create_virtual_keyboard(Resource *resource, uint32_t id) override;
+
+private:
+ QQuickWindow *m_window;
+};
+
+class VncKeyboard : public QWaylandCompositorExtensionTemplate<VncKeyboard>
+ , public QtWaylandServer::vnc_keyboard_v1
+{
+ Q_OBJECT
+public:
+ VncKeyboard(QQuickWindow *window, struct ::wl_client *client, int id, int version);
+
+protected:
+ void vnc_keyboard_v1_key(Resource *resource, uint32_t time, uint32_t key, uint32_t state) override;
+ void vnc_keyboard_v1_destroy(Resource *resource) override;
+
+private:
+ QQuickWindow *m_window;
+ Qt::KeyboardModifiers m_keymod;
+};
+
+Q_COMPOSITOR_DECLARE_QUICK_EXTENSION_CLASS(VncKeyboardManager)
+
+#endif // VIRTUALKEYBOARD_H