File indexing completed on 2024-04-28 05:27:06
0001 /* 0002 * SPDX-FileCopyrightText: 2020 Mikhail Zolotukhin <zomial@protonmail.com> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0005 */ 0006 0007 #pragma once 0008 0009 #include <QPluginLoader> 0010 #include <QString> 0011 0012 #include <KDecoration2/Decoration> 0013 #include <KDecoration2/Private/DecorationBridge> 0014 #include <kdecoration2/decorationdefines.h> 0015 0016 0017 class KPluginFactory; 0018 0019 namespace KDecoration2 0020 { 0021 class DecorationSettings; 0022 class DecoratedClientPrivate; 0023 class DecorationSettingsPrivate; 0024 class DummyDecorationSettings; 0025 0026 class DummyDecorationBridge : public DecorationBridge 0027 { 0028 Q_OBJECT 0029 public: 0030 DummyDecorationBridge(const QString &decorationTheme, QObject *parent = nullptr); 0031 ~DummyDecorationBridge() override; 0032 0033 std::unique_ptr<KDecoration2::DecorationSettingsPrivate> settings(KDecoration2::DecorationSettings *parent) override; 0034 std::unique_ptr<KDecoration2::DecoratedClientPrivate> createClient(KDecoration2::DecoratedClient *client, KDecoration2::Decoration *decoration) override; 0035 0036 void paintButton(QPainter &painter, const QString &buttonType, const QString &buttonState); 0037 0038 private: 0039 void disableAnimations(); 0040 void enableAnimations(); 0041 0042 QString windowDecorationPluginPath(const QString &decorationTheme) const; 0043 0044 void passMouseHoverEventToButton(KDecoration2::DecorationButton *button) const; 0045 void passMousePressEventToButton(KDecoration2::DecorationButton *button) const; 0046 0047 KDecoration2::DecorationButtonType strToButtonType(const QString &type) const; 0048 0049 QString m_decorationsConfigFileName; 0050 double globalAnimationEntryValue; 0051 0052 QPluginLoader m_pluginLoader; 0053 KPluginFactory *m_factory; 0054 KDecoration2::Decoration *m_decoration; 0055 KDecoration2::DecoratedClientPrivate *m_client; 0056 KDecoration2::DummyDecorationSettings *m_settings; 0057 }; 0058 0059 }