File indexing completed on 2024-05-05 16:19:51
0001 /* 0002 SPDX-FileCopyrightText: 2014 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 0007 #ifndef KWINDOWINFO_P_X11_H 0008 #define KWINDOWINFO_P_X11_H 0009 #include "kwindowinfo_p.h" 0010 #include <memory> 0011 0012 class NETWinInfo; 0013 0014 class KWindowInfoPrivateX11 : public KWindowInfoPrivate, 0015 public KWindowInfoPrivateDesktopFileNameExtension, 0016 public KWindowInfoPrivatePidExtension, 0017 public KWindowInfoPrivateAppMenuExtension, 0018 public KWindowInfoPrivateGtkApplicationIdExtension 0019 { 0020 public: 0021 KWindowInfoPrivateX11(WId window, NET::Properties properties, NET::Properties2 properties2); 0022 ~KWindowInfoPrivateX11() override; 0023 0024 bool valid(bool withdrawn_is_valid) const override; 0025 NET::States state() const override; 0026 bool isMinimized() const override; 0027 NET::MappingState mappingState() const override; 0028 NETExtendedStrut extendedStrut() const override; 0029 NET::WindowType windowType(NET::WindowTypes supported_types) const override; 0030 QString visibleName() const override; 0031 QString visibleNameWithState() const override; 0032 QString name() const override; 0033 QString visibleIconName() const override; 0034 QString visibleIconNameWithState() const override; 0035 QString iconName() const override; 0036 bool onAllDesktops() const override; 0037 bool isOnDesktop(int desktop) const override; 0038 int desktop() const override; 0039 QStringList activities() const override; 0040 QRect geometry() const override; 0041 QRect frameGeometry() const override; 0042 WId transientFor() const override; 0043 WId groupLeader() const override; 0044 QByteArray windowClassClass() const override; 0045 QByteArray windowClassName() const override; 0046 QByteArray windowRole() const override; 0047 QByteArray clientMachine() const override; 0048 bool actionSupported(NET::Action action) const override; 0049 0050 QByteArray desktopFileName() const override; 0051 QByteArray applicationMenuObjectPath() const override; 0052 QByteArray applicationMenuServiceName() const override; 0053 QByteArray gtkApplicationId() const override; 0054 0055 int pid() const override; 0056 0057 private: 0058 bool icccmCompliantMappingState() const; 0059 0060 std::unique_ptr<NETWinInfo> m_info; 0061 QString m_name; 0062 QString m_iconic_name; 0063 QRect m_geometry; 0064 QRect m_frame_geometry; 0065 int m_pid = -1; // real PID from XResources. Valid if > 0 0066 bool m_valid; 0067 }; 0068 0069 #endif