Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qwaylandkeyboard.h
Go to the documentation of this file.
1// Copyright (C) 2017 The Qt Company Ltd.
2// Copyright (C) 2017 Klarälvdalens Datakonsult AB (KDAB).
3// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
4// Qt-Security score:significant reason:default
5
6#ifndef QWAYLANDKEYBOARD_H
7#define QWAYLANDKEYBOARD_H
8
9#include <QtCore/QObject>
10
11#include <QtWaylandCompositor/QWaylandCompositorExtension>
12#include <QtWaylandCompositor/QWaylandSurface>
13
14QT_BEGIN_NAMESPACE
15
16class QWaylandKeyboard;
17class QWaylandKeyboardPrivate;
18class QWaylandSeat;
19class QWaylandKeymap;
20
21class Q_WAYLANDCOMPOSITOR_EXPORT QWaylandKeyboard : public QWaylandObject
22{
23 Q_OBJECT
24 Q_DECLARE_PRIVATE(QWaylandKeyboard)
25 Q_PROPERTY(quint32 repeatRate READ repeatRate WRITE setRepeatRate NOTIFY repeatRateChanged)
26 Q_PROPERTY(quint32 repeatDelay READ repeatDelay WRITE setRepeatDelay NOTIFY repeatDelayChanged)
27public:
28 QWaylandKeyboard(QWaylandSeat *seat, QObject *parent = nullptr);
29
30 QWaylandSeat *seat() const;
31 QWaylandCompositor *compositor() const;
32
33 quint32 repeatRate() const;
34 void setRepeatRate(quint32 rate);
35
36 quint32 repeatDelay() const;
37 void setRepeatDelay(quint32 delay);
38
39 virtual void setFocus(QWaylandSurface *surface);
40
41 virtual void sendKeyModifiers(QWaylandClient *client, uint32_t serial);
42 virtual void sendKeyPressEvent(uint code);
43 virtual void sendKeyReleaseEvent(uint code);
44
45 QWaylandSurface *focus() const;
46 QWaylandClient *focusClient() const;
47
48 virtual void addClient(QWaylandClient *client, uint32_t id, uint32_t version);
49
50 uint keyToScanCode(int qtKey) const;
51
52Q_SIGNALS:
53 void focusChanged(QWaylandSurface *surface);
54 void repeatRateChanged(quint32 repeatRate);
55 void repeatDelayChanged(quint32 repeatDelay);
56
57private:
58 void focusDestroyed(void *data);
59
60private Q_SLOTS:
61 void updateKeymap();
62};
63
64QT_END_NAMESPACE
65
66#endif //QWAYLANDKEYBOARD_H
\inmodule QtWaylandCompositor