File indexing completed on 2025-11-30 12:09:16

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