File indexing completed on 2024-04-21 03:59:29

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 <QWidgetList> //For WId
0010 #include <memory>
0011 
0012 class KWindowEffectsPrivate;
0013 class KWindowShadowPrivate;
0014 class KWindowShadowTilePrivate;
0015 class KWindowSystemPluginInterface;
0016 class KWindowSystemPrivate;
0017 
0018 class KWindowSystemPluginWrapper
0019 {
0020 public:
0021     KWindowSystemPluginWrapper();
0022     ~KWindowSystemPluginWrapper();
0023     static const KWindowSystemPluginWrapper &self();
0024 
0025     KWindowEffectsPrivate *effects() const;
0026     KWindowSystemPrivate *createWindowSystem() const;
0027     KWindowShadowPrivate *createWindowShadow() const;
0028     KWindowShadowTilePrivate *createWindowShadowTile() const;
0029 
0030 private:
0031     std::unique_ptr<KWindowSystemPluginInterface> m_plugin;
0032     std::unique_ptr<KWindowEffectsPrivate> m_effects;
0033 };
0034 
0035 #endif