File indexing completed on 2024-05-19 05:32:48
0001 /* 0002 SPDX-FileCopyrightText: 2023 David Redondo <kde@david-redondo.de> 0003 0004 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0005 */ 0006 0007 #pragma once 0008 0009 #include <QObject> 0010 0011 #include <memory> 0012 0013 #include "datadevice.h" 0014 0015 struct wl_resource; 0016 0017 namespace KWin 0018 { 0019 0020 class DataOfferInterface; 0021 class DataSourceInterface; 0022 class Display; 0023 class XdgToplevelDragV1InterfacePrivate; 0024 class XdgToplevelDragManagerV1InterfacePrivate; 0025 class XdgToplevelInterface; 0026 0027 class XdgToplevelDragV1Interface : public QObject 0028 { 0029 Q_OBJECT 0030 public: 0031 ~XdgToplevelDragV1Interface() override; 0032 0033 DataSourceInterface *dataSource(); 0034 XdgToplevelInterface *toplevel() const; 0035 QPoint offset() const; 0036 0037 Q_SIGNALS: 0038 void toplevelChanged(); 0039 0040 private: 0041 XdgToplevelDragV1Interface(wl_resource *resource, DataSourceInterface *dataSource); 0042 std::unique_ptr<XdgToplevelDragV1InterfacePrivate> d; 0043 friend class XdgToplevelDragManagerV1InterfacePrivate; 0044 }; 0045 0046 class XdgToplevelDragManagerV1Interface : public QObject 0047 { 0048 Q_OBJECT 0049 public: 0050 XdgToplevelDragManagerV1Interface(Display *display, QObject *parent = nullptr); 0051 ~XdgToplevelDragManagerV1Interface() override; 0052 0053 private: 0054 std::unique_ptr<XdgToplevelDragManagerV1InterfacePrivate> d; 0055 }; 0056 }