File indexing completed on 2023-10-01 07:59:28
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 PLUGINWRAPPER_P_H 0007 #define PLUGINWRAPPER_P_H 0008 0009 #include "netwm_def.h" 0010 0011 #include <QWidgetList> //For WId 0012 #include <memory> 0013 0014 class KWindowEffectsPrivate; 0015 class KWindowInfoPrivate; 0016 class KWindowShadowPrivate; 0017 class KWindowShadowTilePrivate; 0018 class KWindowSystemPluginInterface; 0019 class KWindowSystemPrivate; 0020 0021 class KWindowSystemPluginWrapper 0022 { 0023 public: 0024 KWindowSystemPluginWrapper(); 0025 ~KWindowSystemPluginWrapper(); 0026 static const KWindowSystemPluginWrapper &self(); 0027 0028 KWindowEffectsPrivate *effects() const; 0029 KWindowSystemPrivate *createWindowSystem() const; 0030 KWindowInfoPrivate *createWindowInfo(WId window, NET::Properties properties, NET::Properties2 properties2) const; 0031 KWindowShadowPrivate *createWindowShadow() const; 0032 KWindowShadowTilePrivate *createWindowShadowTile() const; 0033 0034 private: 0035 std::unique_ptr<KWindowSystemPluginInterface> m_plugin; 0036 std::unique_ptr<KWindowEffectsPrivate> m_effects; 0037 }; 0038 0039 #endif