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
qwaylandtextinputv3_p.h
Go to the documentation of this file.
1// Copyright (C) 2021 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
3
4#ifndef QWAYLANDTEXTINPUTV3_P_H
5#define QWAYLANDTEXTINPUTV3_P_H
6
7#include <QtWaylandCompositor/private/qwaylandcompositorextension_p.h>
8#include <QtWaylandCompositor/private/qwayland-server-text-input-unstable-v3.h>
9#include <QtWaylandCompositor/QWaylandDestroyListener>
10
11#include <QtCore/QObject>
12#include <QtCore/QRect>
13#include <QtGui/QInputMethod>
14#include <QtWaylandCompositor/QWaylandSurface>
15
16#include <QtCore/qhash.h>
17
18//
19// W A R N I N G
20// -------------
21//
22// This file is not part of the Qt API. It exists purely as an
23// implementation detail. This header file may change from version to
24// version without notice, or even be removed.
25//
26// We mean it.
27//
28
30
31class QInputMethodEvent;
32class QKeyEvent;
33class QWaylandCompositor;
34class QWaylandView;
35
51
52class Q_WAYLANDCOMPOSITOR_EXPORT QWaylandTextInputV3Private : public QWaylandCompositorExtensionPrivate, public QtWaylandServer::zwp_text_input_v3
53{
54 Q_DECLARE_PUBLIC(QWaylandTextInputV3)
55public:
56 explicit QWaylandTextInputV3Private(QWaylandCompositor *compositor);
57
58 void sendInputMethodEvent(QInputMethodEvent *event);
59 void sendKeyEvent(QKeyEvent *event);
60
61 QVariant inputMethodQuery(Qt::InputMethodQuery property, QVariant argument) const;
62
63 void setFocus(QWaylandSurface *surface);
64
65 QWaylandCompositor *compositor = nullptr;
66
67 QWaylandSurface *focus = nullptr;
68 Resource *focusResource = nullptr;
69 QWaylandDestroyListener focusDestroyListener;
70
71 bool inputPanelVisible = false;
72
73 QString currentPreeditString;
74
75 QScopedPointer<QWaylandTextInputV3ClientState> currentState;
76 QScopedPointer<QWaylandTextInputV3ClientState> pendingState;
77
78 QHash<Resource *, uint32_t> serials;
79 QHash<Resource *, QWaylandSurface *> enabledSurfaces;
80
81protected:
82 void zwp_text_input_v3_bind_resource(Resource *resource) override;
83 void zwp_text_input_v3_destroy_resource(Resource *resource) override;
84
85 void zwp_text_input_v3_destroy(Resource *resource) override;
86 void zwp_text_input_v3_enable(Resource *resource) override;
87 void zwp_text_input_v3_disable(Resource *resource) override;
88 void zwp_text_input_v3_set_surrounding_text(Resource *resource, const QString &text, int32_t cursor, int32_t anchor) override;
89 void zwp_text_input_v3_set_text_change_cause(Resource *resource, uint32_t cause) override;
90 void zwp_text_input_v3_set_content_type(Resource *resource, uint32_t hint, uint32_t purpose) override;
91 void zwp_text_input_v3_set_cursor_rectangle(Resource *resource, int32_t x, int32_t y, int32_t width, int32_t height) override;
92 void zwp_text_input_v3_commit(Resource *resource) override;
93};
94
95QT_END_NAMESPACE
96
97#endif // QWAYLANDTEXTINPUTV3_P_H
Qt::InputMethodQueries mergeChanged(const QWaylandTextInputV3ClientState &other)
Qt::InputMethodQueries updatedQueries(const QWaylandTextInputV3ClientState &other) const
static const struct wl_interface * interface()
void surfaceEnabled(QWaylandSurface *surface)
QVariant inputMethodQuery(Qt::InputMethodQuery property, QVariant argument) const
void sendInputMethodEvent(QInputMethodEvent *event)
void surfaceDisabled(QWaylandSurface *surface)
static QByteArray interfaceName()
void setFocus(QWaylandSurface *surface)
void add(::wl_client *client, uint32_t id, int version)
QWaylandSurface * focus() const
void sendKeyEvent(QKeyEvent *event)
bool isSurfaceEnabled(QWaylandSurface *surface) const
Combined button and popup list for selecting options.