File indexing completed on 2024-05-12 17:00:19
0001 /* 0002 SPDX-FileCopyrightText: 2014 Martin Gräßlin <mgraesslin@kde.org> 0003 SPDX-FileCopyrightText: 2015 Marco Martin <mart@kde.org> 0004 0005 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0006 */ 0007 #ifndef WINDOWINFO_H 0008 #define WINDOWINFO_H 0009 0010 #include <kwindowinfo.h> 0011 #include <private/kwindowinfo_p.h> 0012 0013 namespace KWayland 0014 { 0015 namespace Client 0016 { 0017 class Surface; 0018 class PlasmaShellSurface; 0019 } 0020 } 0021 0022 class WindowInfo : public KWindowInfoPrivate 0023 { 0024 public: 0025 WindowInfo(WId window, NET::Properties properties, NET::Properties2 properties2); 0026 ~WindowInfo() override; 0027 0028 bool valid(bool withdrawn_is_valid) const override; 0029 NET::States state() const override; 0030 bool isMinimized() const override; 0031 NET::MappingState mappingState() const override; 0032 NETExtendedStrut extendedStrut() const override; 0033 NET::WindowType windowType(NET::WindowTypes supported_types) const override; 0034 QString visibleName() const override; 0035 QString visibleNameWithState() const override; 0036 QString name() const override; 0037 QString visibleIconName() const override; 0038 QString visibleIconNameWithState() const override; 0039 QString iconName() const override; 0040 bool onAllDesktops() const override; 0041 bool isOnDesktop(int desktop) const override; 0042 int desktop() const override; 0043 QStringList activities() const override; 0044 QRect geometry() const override; 0045 QRect frameGeometry() const override; 0046 WId transientFor() const override; 0047 WId groupLeader() const override; 0048 QByteArray windowClassClass() const override; 0049 QByteArray windowClassName() const override; 0050 QByteArray windowRole() const override; 0051 QByteArray clientMachine() const override; 0052 bool actionSupported(NET::Action action) const override; 0053 0054 private: 0055 bool m_valid; 0056 NET::Properties m_properties; 0057 NET::Properties2 m_properties2; 0058 KWayland::Client::Surface *m_surface; 0059 KWayland::Client::PlasmaShellSurface *m_plasmaShellSurface; 0060 }; 0061 0062 #endif