diff options
author | Fabien Proriol <fabien.proriol@kazoe.org> | 2025-05-25 17:58:09 +0200 |
---|---|---|
committer | Fabien Proriol <fabien.proriol@kazoe.org> | 2025-05-26 18:01:49 +0200 |
commit | 49daa163530ceabc9eaa8911ab96b5f799cfb552 (patch) | |
tree | 080d0b31eafd138cd8d47d5c2a52b75d3cfa6f28 /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.h | 46 |
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 |