1 /**************************************************************************** 2 ** 3 ** Copyright (C) 2017-2016 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com 4 ** Contact: https://www.qt.io/licensing/ 5 ** 6 ** This file is part of the QtWaylandCompositor module of the Qt Toolkit. 7 ** 8 ** $QT_BEGIN_LICENSE:GPL$ 9 ** Commercial License Usage 10 ** Licensees holding valid commercial Qt licenses may use this file in 11 ** accordance with the commercial license agreement provided with the 12 ** Software or, alternatively, in accordance with the terms contained in 13 ** a written agreement between you and The Qt Company. For licensing terms 14 ** and conditions see https://www.qt.io/terms-conditions. For further 15 ** information use the contact form at https://www.qt.io/contact-us. 16 ** 17 ** GNU General Public License Usage 18 ** Alternatively, this file may be used under the terms of the GNU 19 ** General Public License version 3 or (at your option) any later version 20 ** approved by the KDE Free Qt Foundation. The licenses are as published by 21 ** the Free Software Foundation and appearing in the file LICENSE.GPL3 22 ** included in the packaging of this file. Please review the following 23 ** information to ensure the GNU General Public License requirements will 24 ** be met: https://www.gnu.org/licenses/gpl-3.0.html. 25 ** 26 ** $QT_END_LICENSE$ 27 ** 28 ****************************************************************************/ 29 30 #ifndef QWAYLANDTEXTINPUT_H 31 #define QWAYLANDTEXTINPUT_H 32 33 #include <QtWaylandCompositor/QWaylandCompositorExtension> 34 35 struct wl_client; 36 37 QT_BEGIN_NAMESPACE 38 39 class QWaylandTextInputPrivate; 40 41 class QInputMethodEvent; 42 class QKeyEvent; 43 class QWaylandSurface; 44 45 class QWaylandTextInput : public QWaylandCompositorExtensionTemplate<QWaylandTextInput> 46 { 47 Q_OBJECT 48 Q_DECLARE_PRIVATE(QWaylandTextInput) 49 public: 50 explicit QWaylandTextInput(QWaylandObject *container, QWaylandCompositor *compositor); 51 ~QWaylandTextInput() override; 52 53 void sendInputMethodEvent(QInputMethodEvent *event); 54 void sendKeyEvent(QKeyEvent *event); 55 56 QVariant inputMethodQuery(Qt::InputMethodQuery property, QVariant argument) const; 57 58 QWaylandSurface *focus() const; 59 void setFocus(QWaylandSurface *surface); 60 61 bool isSurfaceEnabled(QWaylandSurface *surface) const; 62 63 void add(::wl_client *client, uint32_t id, int version); 64 static const struct wl_interface *interface(); 65 static QByteArray interfaceName(); 66 67 Q_SIGNALS: 68 void updateInputMethod(Qt::InputMethodQueries queries); 69 void surfaceEnabled(QWaylandSurface *surface); 70 void surfaceDisabled(QWaylandSurface *surface); 71 72 private: 73 void focusSurfaceDestroyed(void *); 74 void sendInputPanelState(); 75 void sendTextDirection(); 76 void sendLocale(); 77 }; 78 79 QT_END_NAMESPACE 80 81 #endif // QWAYLANDTEXTINPUT_H 82