// Copyright (C) 2017 Pier Luigi Fiorini // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only #ifndef QWAYLANDCLIENT_H #define QWAYLANDCLIENT_H #include #include #include #include struct wl_client; QT_BEGIN_NAMESPACE class QWaylandClientPrivate; class QWaylandCompositor; class Q_WAYLANDCOMPOSITOR_EXPORT QWaylandClient : public QObject { Q_OBJECT Q_DECLARE_PRIVATE(QWaylandClient) Q_PROPERTY(QWaylandCompositor *compositor READ compositor CONSTANT) Q_PROPERTY(qint64 userId READ userId CONSTANT) Q_PROPERTY(qint64 groupId READ groupId CONSTANT) Q_PROPERTY(qint64 processId READ processId CONSTANT) Q_MOC_INCLUDE("qwaylandcompositor.h") QML_NAMED_ELEMENT(WaylandClient) QML_ADDED_IN_VERSION(1, 0) QML_UNCREATABLE("") public: ~QWaylandClient() override; enum TextInputProtocol { NoProtocol = 0, QtTextInputMethodV1 = 1, TextInputV2 = 2, TextInputV3 = 4, TextInputV4 = TextInputV3, // TextInputV4 was an experimental API that is now deprecated QtTextInputMethod = QtTextInputMethodV1, TextInput = TextInputV2 }; Q_DECLARE_FLAGS(TextInputProtocols, TextInputProtocol) TextInputProtocols textInputProtocols() const; void setTextInputProtocols(TextInputProtocols p); static QWaylandClient *fromWlClient(QWaylandCompositor *compositor, wl_client *wlClient); QWaylandCompositor *compositor() const; wl_client *client() const; qint64 userId() const; qint64 groupId() const; qint64 processId() const; Q_INVOKABLE void kill(int signal = SIGTERM); public Q_SLOTS: void close(); private: explicit QWaylandClient(QWaylandCompositor *compositor, wl_client *client); }; QT_END_NAMESPACE #endif // QWAYLANDCLIENT_H