File indexing completed on 2024-05-12 05:32:26
0001 /* 0002 SPDX-FileCopyrightText: 2023 Vlad Zahorodnii <vlad.zahorodnii@kde.org> 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 "effect/globals.h" 0010 0011 #include <QObject> 0012 #include <memory> 0013 0014 struct wl_resource; 0015 0016 namespace KWin 0017 { 0018 0019 class Display; 0020 class ScreenEdgeManagerV1InterfacePrivate; 0021 class AutoHideScreenEdgeV1Interface; 0022 class AutoHideScreenEdgeV1InterfacePrivate; 0023 class SurfaceInterface; 0024 0025 class KWIN_EXPORT ScreenEdgeManagerV1Interface : public QObject 0026 { 0027 Q_OBJECT 0028 0029 public: 0030 explicit ScreenEdgeManagerV1Interface(Display *display, QObject *parent = nullptr); 0031 ~ScreenEdgeManagerV1Interface() override; 0032 0033 Q_SIGNALS: 0034 void edgeRequested(AutoHideScreenEdgeV1Interface *edge); 0035 0036 private: 0037 std::unique_ptr<ScreenEdgeManagerV1InterfacePrivate> d; 0038 }; 0039 0040 class KWIN_EXPORT AutoHideScreenEdgeV1Interface : public QObject 0041 { 0042 Q_OBJECT 0043 0044 public: 0045 AutoHideScreenEdgeV1Interface(SurfaceInterface *surface, ElectricBorder border, wl_resource *resource); 0046 ~AutoHideScreenEdgeV1Interface() override; 0047 0048 SurfaceInterface *surface() const; 0049 ElectricBorder border() const; 0050 0051 Q_SIGNALS: 0052 void deactivateRequested(); 0053 void activateRequested(); 0054 0055 private: 0056 std::unique_ptr<AutoHideScreenEdgeV1InterfacePrivate> d; 0057 }; 0058 0059 } // namespace KWin