File indexing completed on 2024-04-28 05:36:52
0001 /* 0002 * SPDX-FileCopyrightText: 2018 Red Hat Inc 0003 * 0004 * SPDX-License-Identifier: LGPL-2.0-or-later 0005 * 0006 * SPDX-FileCopyrightText: 2018 Jan Grulich <jgrulich@redhat.com> 0007 */ 0008 0009 #ifndef XDG_DESKTOP_PORTAL_KDE_REMOTEDESKTOP_H 0010 #define XDG_DESKTOP_PORTAL_KDE_REMOTEDESKTOP_H 0011 0012 #include <QDBusAbstractAdaptor> 0013 #include <QDBusObjectPath> 0014 0015 class RemoteDesktopPortal : public QDBusAbstractAdaptor 0016 { 0017 Q_OBJECT 0018 Q_CLASSINFO("D-Bus Interface", "org.freedesktop.impl.portal.RemoteDesktop") 0019 Q_PROPERTY(uint version READ version CONSTANT) 0020 Q_PROPERTY(uint AvailableDeviceTypes READ AvailableDeviceTypes CONSTANT) 0021 public: 0022 explicit RemoteDesktopPortal(QObject *parent); 0023 ~RemoteDesktopPortal() override; 0024 0025 enum DeviceType { 0026 None = 0x0, 0027 Keyboard = 0x1, 0028 Pointer = 0x2, 0029 TouchScreen = 0x4, 0030 All = (Keyboard | Pointer | TouchScreen), 0031 }; 0032 Q_DECLARE_FLAGS(DeviceTypes, DeviceType) 0033 0034 uint version() const 0035 { 0036 return 2; 0037 } 0038 uint AvailableDeviceTypes() const 0039 { 0040 return All; 0041 }; 0042 0043 public Q_SLOTS: 0044 uint CreateSession(const QDBusObjectPath &handle, 0045 const QDBusObjectPath &session_handle, 0046 const QString &app_id, 0047 const QVariantMap &options, 0048 QVariantMap &results); 0049 0050 uint SelectDevices(const QDBusObjectPath &handle, 0051 const QDBusObjectPath &session_handle, 0052 const QString &app_id, 0053 const QVariantMap &options, 0054 QVariantMap &results); 0055 0056 uint Start(const QDBusObjectPath &handle, 0057 const QDBusObjectPath &session_handle, 0058 const QString &app_id, 0059 const QString &parent_window, 0060 const QVariantMap &options, 0061 QVariantMap &results); 0062 0063 void NotifyPointerMotion(const QDBusObjectPath &session_handle, const QVariantMap &options, double dx, double dy); 0064 0065 void NotifyPointerMotionAbsolute(const QDBusObjectPath &session_handle, const QVariantMap &options, uint stream, double x, double y); 0066 0067 void NotifyPointerButton(const QDBusObjectPath &session_handle, const QVariantMap &options, int button, uint state); 0068 0069 void NotifyPointerAxis(const QDBusObjectPath &session_handle, const QVariantMap &options, double dx, double dy); 0070 0071 void NotifyPointerAxisDiscrete(const QDBusObjectPath &session_handle, const QVariantMap &options, uint axis, int steps); 0072 0073 void NotifyKeyboardKeycode(const QDBusObjectPath &session_handle, const QVariantMap &options, int keycode, uint state); 0074 0075 void NotifyKeyboardKeysym(const QDBusObjectPath &session_handle, const QVariantMap &options, int keysym, uint state); 0076 0077 void NotifyTouchDown(const QDBusObjectPath &session_handle, const QVariantMap &options, uint stream, uint slot, int x, int y); 0078 0079 void NotifyTouchMotion(const QDBusObjectPath &session_handle, const QVariantMap &options, uint stream, uint slot, int x, int y); 0080 0081 void NotifyTouchUp(const QDBusObjectPath &session_handle, const QVariantMap &options, uint slot); 0082 }; 0083 Q_DECLARE_OPERATORS_FOR_FLAGS(RemoteDesktopPortal::DeviceTypes) 0084 0085 #endif // XDG_DESKTOP_PORTAL_KDE_REMOTEDESKTOP_H