File indexing completed on 2024-05-12 05:36:49

0001 /*
0002  *   SPDX-FileCopyrightText: 2015 Marco Martin <mart@kde.org>
0003  *
0004  *   SPDX-License-Identifier: LGPL-2.0-or-later
0005  */
0006 
0007 #ifndef COLOREDITOR_H
0008 #define COLOREDITOR_H
0009 
0010 #include <QColor>
0011 #include <QObject>
0012 
0013 class ColorEditor : public QObject
0014 {
0015     Q_OBJECT
0016     // Q_PROPERTY(QString theme READ theme WRITE setTheme NOTIFY themeChanged)
0017 
0018     Q_PROPERTY(QColor textColor READ textColor WRITE setTextColor NOTIFY colorsChanged)
0019     Q_PROPERTY(QColor highlightColor READ highlightColor WRITE setHighlightColor NOTIFY colorsChanged)
0020     Q_PROPERTY(QColor backgroundColor READ backgroundColor WRITE setBackgroundColor NOTIFY colorsChanged)
0021     Q_PROPERTY(QColor linkColor READ linkColor WRITE setLinkColor NOTIFY colorsChanged)
0022     Q_PROPERTY(QColor visitedLinkColor READ visitedLinkColor WRITE setVisitedLinkColor NOTIFY colorsChanged)
0023 
0024     Q_PROPERTY(QColor buttonTextColor READ buttonTextColor WRITE setButtonTextColor NOTIFY colorsChanged)
0025     Q_PROPERTY(QColor buttonBackgroundColor READ buttonBackgroundColor WRITE setButtonBackgroundColor NOTIFY colorsChanged)
0026     Q_PROPERTY(QColor buttonHoverColor READ buttonHoverColor WRITE setButtonHoverColor NOTIFY colorsChanged)
0027     Q_PROPERTY(QColor buttonFocusColor READ buttonFocusColor WRITE setButtonFocusColor NOTIFY colorsChanged)
0028 
0029     Q_PROPERTY(QColor viewTextColor READ viewTextColor WRITE setViewTextColor NOTIFY colorsChanged)
0030     Q_PROPERTY(QColor viewBackgroundColor READ viewBackgroundColor WRITE setViewBackgroundColor NOTIFY colorsChanged)
0031     Q_PROPERTY(QColor viewHoverColor READ viewHoverColor WRITE setViewHoverColor NOTIFY colorsChanged)
0032     Q_PROPERTY(QColor viewFocusColor READ viewFocusColor WRITE setViewFocusColor NOTIFY colorsChanged)
0033 
0034     Q_PROPERTY(QColor complementaryTextColor READ complementaryTextColor WRITE setComplementaryTextColor NOTIFY colorsChanged)
0035     Q_PROPERTY(QColor complementaryBackgroundColor READ complementaryBackgroundColor WRITE setComplementaryBackgroundColor NOTIFY colorsChanged)
0036     Q_PROPERTY(QColor complementaryHoverColor READ complementaryHoverColor WRITE setComplementaryHoverColor NOTIFY colorsChanged)
0037     Q_PROPERTY(QColor complementaryFocusColor READ complementaryFocusColor WRITE setComplementaryFocusColor NOTIFY colorsChanged)
0038 public:
0039     explicit ColorEditor(QObject *parent = nullptr);
0040     ~ColorEditor() override;
0041 
0042     QString theme() const;
0043     void setTheme(const QString &theme);
0044 
0045     QColor textColor() const;
0046     void setTextColor(const QColor &color);
0047 
0048     QColor highlightColor() const;
0049     void setHighlightColor(const QColor &color);
0050 
0051     QColor backgroundColor() const;
0052     void setBackgroundColor(const QColor &color);
0053 
0054     QColor buttonTextColor() const;
0055     void setButtonTextColor(const QColor &color);
0056 
0057     QColor buttonBackgroundColor() const;
0058     void setButtonBackgroundColor(const QColor &color);
0059 
0060     QColor linkColor() const;
0061     void setLinkColor(const QColor &color);
0062 
0063     QColor visitedLinkColor() const;
0064     void setVisitedLinkColor(const QColor &color);
0065 
0066     QColor buttonHoverColor() const;
0067     void setButtonHoverColor(const QColor &color);
0068 
0069     QColor buttonFocusColor() const;
0070     void setButtonFocusColor(const QColor &color);
0071 
0072     QColor viewTextColor() const;
0073     void setViewTextColor(const QColor &color);
0074 
0075     QColor viewBackgroundColor() const;
0076     void setViewBackgroundColor(const QColor &color);
0077 
0078     QColor viewHoverColor() const;
0079     void setViewHoverColor(const QColor &color);
0080 
0081     QColor viewFocusColor() const;
0082     void setViewFocusColor(const QColor &color);
0083 
0084     QColor complementaryTextColor() const;
0085     void setComplementaryTextColor(const QColor &color);
0086 
0087     QColor complementaryBackgroundColor() const;
0088     void setComplementaryBackgroundColor(const QColor &color);
0089 
0090     QColor complementaryHoverColor() const;
0091     void setComplementaryHoverColor(const QColor &color);
0092 
0093     QColor complementaryFocusColor() const;
0094     void setComplementaryFocusColor(const QColor &color);
0095 
0096     void load();
0097     Q_INVOKABLE void save();
0098 
0099 Q_SIGNALS:
0100     void colorsChanged();
0101     void themeChanged();
0102 
0103 private:
0104     QString m_theme;
0105 
0106     QColor m_textColor;
0107     QColor m_highlightColor;
0108     QColor m_backgroundColor;
0109     QColor m_linkColor;
0110     QColor m_visitedLinkColor;
0111 
0112     QColor m_buttonTextColor;
0113     QColor m_buttonBackgroundColor;
0114     QColor m_buttonHoverColor;
0115     QColor m_buttonFocusColor;
0116 
0117     QColor m_viewTextColor;
0118     QColor m_viewBackgroundColor;
0119     QColor m_viewHoverColor;
0120     QColor m_viewFocusColor;
0121 
0122     QColor m_complementaryTextColor;
0123     QColor m_complementaryBackgroundColor;
0124     QColor m_complementaryHoverColor;
0125     QColor m_complementaryFocusColor;
0126 };
0127 
0128 #endif // COLOREDITOR_H