File indexing completed on 2024-05-12 16:59:29
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 #pragma once 0007 0008 #include <QObject> 0009 0010 #include <memory> 0011 0012 #include <kdecoration2/private/kdecoration2_private_export.h> 0013 0014 // 0015 // W A R N I N G 0016 // ------------- 0017 // 0018 // This file is not part of the KDecoration2 API. It exists purely as an 0019 // implementation detail. This header file may change from version to 0020 // version without notice, or even be removed. 0021 // 0022 // We mean it. 0023 // 0024 0025 class QRect; 0026 0027 namespace KDecoration2 0028 { 0029 class Decoration; 0030 class DecorationSettings; 0031 class DecorationSettingsPrivate; 0032 class DecoratedClient; 0033 class DecoratedClientPrivate; 0034 0035 class KDECORATIONS_PRIVATE_EXPORT DecorationBridge : public QObject 0036 { 0037 Q_OBJECT 0038 public: 0039 ~DecorationBridge() override; 0040 0041 virtual std::unique_ptr<DecoratedClientPrivate> createClient(DecoratedClient *client, Decoration *decoration) = 0; 0042 virtual std::unique_ptr<DecorationSettingsPrivate> settings(DecorationSettings *parent) = 0; 0043 0044 protected: 0045 explicit DecorationBridge(QObject *parent = nullptr); 0046 }; 0047 0048 } // namespace 0049 0050 Q_DECLARE_METATYPE(KDecoration2::DecorationBridge *)