1 /* 2 SPDX-FileCopyrightText: 2018 Michail Vourlakos <mvourlakos@gmail.com> 3 4 SPDX-License-Identifier: GPL-2.0-or-later 5 */ 6 7 #ifndef SCHEMECOLORS_H 8 #define SCHEMECOLORS_H 9 10 // Qt 11 #include <QObject> 12 #include <QColor> 13 14 namespace Latte { 15 namespace WindowSystem { 16 17 class SchemeColors: public QObject 18 { 19 Q_OBJECT 20 Q_PROPERTY(QString schemeFile READ schemeFile NOTIFY schemeFileChanged) 21 22 Q_PROPERTY(QColor backgroundColor READ backgroundColor NOTIFY colorsChanged) 23 Q_PROPERTY(QColor textColor READ textColor NOTIFY colorsChanged) 24 Q_PROPERTY(QColor inactiveBackgroundColor READ inactiveBackgroundColor NOTIFY colorsChanged) 25 Q_PROPERTY(QColor inactiveTextColor READ inactiveTextColor NOTIFY colorsChanged) 26 27 Q_PROPERTY(QColor highlightColor READ highlightColor NOTIFY colorsChanged) 28 Q_PROPERTY(QColor highlightedTextColor READ highlightedTextColor NOTIFY colorsChanged) 29 Q_PROPERTY(QColor positiveTextColor READ positiveTextColor NOTIFY colorsChanged) 30 Q_PROPERTY(QColor neutralTextColor READ neutralTextColor NOTIFY colorsChanged) 31 Q_PROPERTY(QColor negativeTextColor READ negativeTextColor NOTIFY colorsChanged) 32 33 Q_PROPERTY(QColor buttonTextColor READ buttonTextColor NOTIFY colorsChanged) 34 Q_PROPERTY(QColor buttonBackgroundColor READ buttonBackgroundColor NOTIFY colorsChanged) 35 Q_PROPERTY(QColor buttonHoverColor READ buttonHoverColor NOTIFY colorsChanged) 36 Q_PROPERTY(QColor buttonFocusColor READ buttonFocusColor NOTIFY colorsChanged) 37 38 public: 39 SchemeColors(QObject *parent, QString scheme, bool plasmaTheme = false); 40 ~SchemeColors() override; 41 42 QString schemeName() const; 43 44 QString schemeFile() const; 45 void setSchemeFile(QString file); 46 47 QColor backgroundColor() const; 48 QColor textColor() const; 49 QColor inactiveBackgroundColor() const; 50 QColor inactiveTextColor() const; 51 QColor highlightColor() const; 52 QColor highlightedTextColor() const; 53 QColor positiveTextColor() const; 54 QColor neutralTextColor() const; 55 QColor negativeTextColor() const; 56 57 QColor buttonTextColor() const; 58 QColor buttonBackgroundColor() const; 59 QColor buttonHoverColor() const; 60 QColor buttonFocusColor() const; 61 62 static QString possibleSchemeFile(QString scheme); 63 static QString schemeName(QString originalFile); 64 65 signals: 66 void colorsChanged(); 67 void schemeFileChanged(); 68 69 private slots: 70 void updateScheme(); 71 72 private: 73 bool m_basedOnPlasmaTheme{false}; 74 75 QString m_schemeName; 76 QString m_schemeFile; 77 78 QColor m_activeBackgroundColor; 79 QColor m_activeTextColor; 80 81 QColor m_inactiveBackgroundColor; 82 QColor m_inactiveTextColor; 83 84 QColor m_highlightColor; 85 QColor m_highlightedTextColor; 86 QColor m_positiveTextColor; 87 QColor m_neutralTextColor; 88 QColor m_negativeTextColor; 89 90 QColor m_buttonTextColor; 91 QColor m_buttonBackgroundColor; 92 QColor m_buttonHoverColor; 93 QColor m_buttonFocusColor; 94 }; 95 96 } 97 } 98 99 #endif 100