/* KWin - the KDE window manager This file is part of the KDE project. SPDX-FileCopyrightText: 2014 Martin Gräßlin SPDX-FileCopyrightText: 2014 Hugo Pereira Da Costa SPDX-FileCopyrightText: 2015 Mika Allan Rauhala SPDX-License-Identifier: GPL-2.0-or-later */ #pragma once #include #include #include #include #include #include #include namespace KWin { namespace Decoration { class DecorationPalette : public QObject { Q_OBJECT public: DecorationPalette(const QString &colorScheme); bool isValid() const; QColor color(KDecoration2::ColorGroup group, KDecoration2::ColorRole role) const; QPalette palette() const; Q_SIGNALS: void changed(); private: void update(); QString m_colorScheme; KConfigWatcher::Ptr m_watcher; struct LegacyColors { QColor activeTitleBarColor; QColor inactiveTitleBarColor; QColor activeFrameColor; QColor inactiveFrameColor; QColor activeForegroundColor; QColor inactiveForegroundColor; QColor warningForegroundColor; }; struct ModernColors { KColorScheme active; KColorScheme inactive; }; KSharedConfig::Ptr m_colorSchemeConfig; QPalette m_palette; ModernColors m_colors; std::optional m_legacyColors; }; } }