KWin
Loading...
Searching...
No Matches
decorationbridge.h
Go to the documentation of this file.
1/*
2 KWin - the KDE window manager
3 This file is part of the KDE project.
4
5 SPDX-FileCopyrightText: 2014 Martin Gräßlin <mgraesslin@kde.org>
6
7 SPDX-License-Identifier: GPL-2.0-or-later
8*/
9#pragma once
10
11#include "kwin_export.h"
12#include <KDecoration2/Private/DecorationBridge>
13#include <QObject>
14
15class KPluginFactory;
16namespace KDecoration2
17{
18class DecorationSettings;
19}
20
21namespace KWin
22{
23
24class Window;
25
26namespace Decoration
27{
28
29class KWIN_EXPORT DecorationBridge : public KDecoration2::DecorationBridge
30{
31 Q_OBJECT
32public:
33 explicit DecorationBridge();
34
35 static bool hasPlugin();
36
37 void init();
38 KDecoration2::Decoration *createDecoration(Window *window);
39
40 std::unique_ptr<KDecoration2::DecoratedClientPrivate> createClient(KDecoration2::DecoratedClient *client, KDecoration2::Decoration *decoration) override;
41 std::unique_ptr<KDecoration2::DecorationSettingsPrivate> settings(KDecoration2::DecorationSettings *parent) override;
42
43 QString recommendedBorderSize() const
44 {
45 return m_recommendedBorderSize;
46 }
47
48 bool showToolTips() const
49 {
50 return m_showToolTips;
51 }
52
53 void reconfigure();
54
55 const std::shared_ptr<KDecoration2::DecorationSettings> &settings() const
56 {
57 return m_settings;
58 }
59
60 QString supportInformation() const;
61
62Q_SIGNALS:
64
65private:
66 QString readPlugin();
67 void loadMetaData(const QJsonObject &object);
68 void findTheme(const QVariantMap &map);
69 bool initPlugin();
70 QString readTheme() const;
71 void readDecorationOptions();
72 std::unique_ptr<KPluginFactory> m_factory;
73 bool m_showToolTips;
74 QString m_recommendedBorderSize;
75 QString m_plugin;
76 QString m_defaultTheme;
77 QString m_theme;
78 std::shared_ptr<KDecoration2::DecorationSettings> m_settings;
79 bool m_noPlugin;
80};
81} // Decoration
82} // KWin
const std::shared_ptr< KDecoration2::DecorationSettings > & settings() const