File indexing completed on 2024-05-12 17:00:20
0001 /* 0002 SPDX-FileCopyrightText: 2015 Martin Gräßlin <mgraesslin@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0005 */ 0006 #ifndef WINDOWSYSTEM_H 0007 #define WINDOWSYSTEM_H 0008 0009 #include <private/kwindowsystem_p.h> 0010 0011 #include <QObject> 0012 0013 namespace KWayland 0014 { 0015 namespace Client 0016 { 0017 class PlasmaShell; 0018 } 0019 } 0020 0021 class WindowSystem : public QObject, public KWindowSystemPrivateV2 0022 { 0023 Q_OBJECT 0024 public: 0025 WindowSystem(); 0026 QList<WId> windows() override; 0027 QList<WId> stackingOrder() override; 0028 WId activeWindow() override; 0029 void activateWindow(WId win, long time) override; 0030 void forceActiveWindow(WId win, long time) override; 0031 #if KWINDOWSYSTEM_BUILD_DEPRECATED_SINCE(5, 101) 0032 void demandAttention(WId win, bool set) override; 0033 #endif 0034 void requestToken(QWindow *win, uint32_t serial, const QString &app_id) override; 0035 quint32 lastInputSerial(QWindow *window) override; 0036 void setCurrentToken(const QString &token) override; 0037 bool compositingActive() override; 0038 int currentDesktop() override; 0039 int numberOfDesktops() override; 0040 void setCurrentDesktop(int desktop) override; 0041 void setOnAllDesktops(WId win, bool b) override; 0042 void setOnDesktop(WId win, int desktop) override; 0043 void setOnActivities(WId win, const QStringList &activities) override; 0044 #if KWINDOWSYSTEM_BUILD_DEPRECATED_SINCE(5, 0) 0045 WId transientFor(WId window) override; 0046 WId groupLeader(WId window) override; 0047 #endif 0048 QPixmap icon(WId win, int width, int height, bool scale, int flags) override; 0049 #if KWINDOWSYSTEM_BUILD_DEPRECATED_SINCE(5, 101) 0050 void setIcons(WId win, const QPixmap &icon, const QPixmap &miniIcon) override; 0051 #endif 0052 void setType(WId win, NET::WindowType windowType) override; 0053 void setState(WId win, NET::States state) override; 0054 void clearState(WId win, NET::States state) override; 0055 void minimizeWindow(WId win) override; 0056 void unminimizeWindow(WId win) override; 0057 void raiseWindow(WId win) override; 0058 void lowerWindow(WId win) override; 0059 bool icccmCompliantMappingState() override; 0060 QRect workArea(int desktop) override; 0061 QRect workArea(const QList<WId> &excludes, int desktop) override; 0062 QString desktopName(int desktop) override; 0063 void setDesktopName(int desktop, const QString &name) override; 0064 bool showingDesktop() override; 0065 void setShowingDesktop(bool showing) override; 0066 void setUserTime(WId win, long time) override; 0067 void setExtendedStrut(WId win, 0068 int left_width, 0069 int left_start, 0070 int left_end, 0071 int right_width, 0072 int right_start, 0073 int right_end, 0074 int top_width, 0075 int top_start, 0076 int top_end, 0077 int bottom_width, 0078 int bottom_start, 0079 int bottom_end) override; 0080 void setStrut(WId win, int left, int right, int top, int bottom) override; 0081 bool allowedActionsSupported() override; 0082 QString readNameProperty(WId window, unsigned long atom) override; 0083 void allowExternalProcessWindowActivation(int pid) override; 0084 void setBlockingCompositing(WId window, bool active) override; 0085 bool mapViewport() override; 0086 int viewportToDesktop(const QPoint &pos) override; 0087 int viewportWindowToDesktop(const QRect &r) override; 0088 QPoint desktopToViewport(int desktop, bool absolute) override; 0089 QPoint constrainViewportRelativePosition(const QPoint &pos) override; 0090 void connectNotify(const QMetaMethod &signal) override; 0091 0092 private: 0093 KWayland::Client::PlasmaShell *m_waylandPlasmaShell = nullptr; 0094 QString m_lastToken; 0095 }; 0096 0097 #endif