File indexing completed on 2024-07-14 14:38:32

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 KWINDOWSYSTEMPLUGININTERFACE_P_H
0007 #define KWINDOWSYSTEMPLUGININTERFACE_P_H
0008 #include "netwm_def.h"
0009 #include <kwindowsystem_export.h>
0010 
0011 #include <QObject>
0012 #include <QWidgetList> //For WId
0013 
0014 class KWindowEffectsPrivate;
0015 class KWindowInfoPrivate;
0016 class KWindowShadowPrivate;
0017 class KWindowShadowTilePrivate;
0018 class KWindowSystemPrivate;
0019 
0020 #define KWindowSystemPluginInterface_iid "org.kde.kwindowsystem.KWindowSystemPluginInterface"
0021 
0022 class KWINDOWSYSTEM_EXPORT KWindowSystemPluginInterface : public QObject
0023 {
0024     Q_OBJECT
0025 public:
0026     explicit KWindowSystemPluginInterface(QObject *parent = nullptr);
0027     ~KWindowSystemPluginInterface() override;
0028 
0029     virtual KWindowEffectsPrivate *createEffects();
0030     virtual KWindowSystemPrivate *createWindowSystem();
0031     virtual KWindowInfoPrivate *createWindowInfo(WId window, NET::Properties properties, NET::Properties2 properties2);
0032     virtual KWindowShadowPrivate *createWindowShadow();
0033     virtual KWindowShadowTilePrivate *createWindowShadowTile();
0034 };
0035 
0036 Q_DECLARE_INTERFACE(KWindowSystemPluginInterface, KWindowSystemPluginInterface_iid)
0037 
0038 #endif