File indexing completed on 2024-05-26 04:50:03

0001 #pragma once
0002 
0003 #include <QObject>
0004 #include <QString>
0005 
0006 #include "modules/thememanager.h"
0007 
0008 class Theme : public QObject
0009 {
0010     Q_OBJECT
0011     Q_PROPERTY(int styleType READ styleType WRITE setStyleType NOTIFY styleTypeChanged)
0012     Q_PROPERTY(QString accentColor READ accentColor WRITE setAccentColor NOTIFY accentColorChanged)
0013     Q_PROPERTY(QString iconTheme READ iconTheme WRITE setIconTheme NOTIFY iconThemeChanged)
0014     Q_PROPERTY(QString windowControlsTheme READ windowControlsTheme WRITE setWindowControlsTheme NOTIFY windowControlsThemeChanged)
0015     Q_PROPERTY(bool enableCSD READ enableCSD WRITE setEnableCSD NOTIFY enableCSDChanged)
0016     Q_PROPERTY(uint borderRadius READ borderRadius WRITE setBorderRadius NOTIFY borderRadiusChanged)
0017     Q_PROPERTY(uint iconSize READ iconSize WRITE setIconSize NOTIFY iconSizeChanged)
0018     Q_PROPERTY(uint paddingSize READ paddingSize WRITE setPaddingSize NOTIFY paddingSizeChanged)
0019     Q_PROPERTY(uint marginSize READ marginSize WRITE setMarginSize NOTIFY marginSizeChanged)
0020     Q_PROPERTY(uint spacingSize READ spacingSize WRITE setSpacingSize NOTIFY spacingSizeChanged)
0021     Q_PROPERTY(bool enableEffects READ enableEffects WRITE setEnableEffects NOTIFY enableEffectsChanged)
0022     Q_PROPERTY(QString defaultFont READ defaultFont WRITE setDefaultFont NOTIFY defaultFontChanged)
0023     Q_PROPERTY(QString smallFont READ smallFont WRITE setSmallFont NOTIFY smallFontChanged)
0024     Q_PROPERTY(QString monospacedFont READ monospacedFont WRITE setMonospacedFont NOTIFY monospacedFontChanged)
0025     Q_PROPERTY(QString customColorScheme READ customColorScheme WRITE setCustomColorScheme NOTIFY customColorSchemeChanged)
0026 
0027 public:
0028     explicit Theme(QObject * parent = nullptr);
0029 
0030     int styleType() const;
0031     void setStyleType(int newStyleType);
0032 
0033     const QString &accentColor() const;
0034     void setAccentColor(const QString &newAccentColor);
0035 
0036     const QString &iconTheme() const;
0037     void setIconTheme(const QString &newIconTheme);
0038 
0039     const QString &windowControlsTheme() const;
0040     void setWindowControlsTheme(const QString &newWindowControlsTheme);
0041 
0042     bool enableCSD() const;
0043     void setEnableCSD(bool enableCSD);
0044 
0045     uint borderRadius() const;
0046     void setBorderRadius(uint newBorderRadius);
0047 
0048     uint iconSize() const;
0049     void setIconSize(uint newIconSize);
0050 
0051     bool enableEffects() const;
0052     void setEnableEffects(bool enableEffects);
0053 
0054     void setPaddingSize(uint paddingSize);
0055     uint paddingSize() const;
0056 
0057     void setMarginSize(uint marginSize);
0058     uint marginSize() const;
0059 
0060     uint spacingSize() const;
0061     void setSpacingSize(uint spacingSize);
0062 
0063     QString defaultFont() const;
0064     void setDefaultFont(const QString &defaultFont);
0065 
0066     QString smallFont() const;
0067     void setSmallFont(const QString &smallFont);
0068 
0069     QString monospacedFont() const;
0070     void setMonospacedFont(const QString &monospacedFont);
0071 
0072     QString customColorScheme() const;
0073     void setCustomColorScheme(const QString &customColorScheme);
0074 
0075 Q_SIGNALS:
0076     void styleTypeChanged(int styleStype);
0077     void accentColorChanged(QString accentColor);
0078 
0079     void iconThemeChanged(QString iconTheme);
0080 
0081     void windowControlsThemeChanged(QString windowControlsTheme);
0082 
0083     void enableCSDChanged(bool enableCSD);
0084 
0085     void borderRadiusChanged(uint radius);
0086 
0087     void iconSizeChanged(uint size);
0088 
0089     void enableEffectsChanged(bool enableEffects);
0090 
0091     void paddingSizeChanged(uint paddingSize);
0092 
0093     void marginSizeChanged(uint marginSize);
0094 
0095     void spacingSizeChanged(uint spacingSize);
0096 
0097     void defaultFontChanged(QString defaultFont);
0098 
0099     void smallFontChanged(QString smallFont);
0100 
0101     void monospacedFontChanged(QString monospacedFont);
0102 
0103     void customColorSchemeChanged(QString customColorScheme);
0104 
0105 private:
0106     int m_styleType = MauiMan::ThemeManager::DefaultValues::styleType;
0107     QString m_accentColor = MauiMan::ThemeManager::DefaultValues::accentColor;
0108     QString m_iconTheme = MauiMan::ThemeManager::DefaultValues::iconTheme;
0109     QString m_windowControlsTheme = MauiMan::ThemeManager::DefaultValues::windowControlsTheme;
0110     bool m_enableCSD = MauiMan::ThemeManager::DefaultValues::enableCSD;
0111     uint m_borderRadius = MauiMan::ThemeManager::DefaultValues::borderRadius;
0112     uint m_iconSize = MauiMan::ThemeManager::DefaultValues::iconSize;
0113     bool m_enableEffects = MauiMan::ThemeManager::DefaultValues::enableEffects;
0114     uint m_paddingSize = MauiMan::ThemeManager::DefaultValues::paddingSize;
0115     uint m_marginSize = MauiMan::ThemeManager::DefaultValues::marginSize;
0116     uint m_spacingSize = MauiMan::ThemeManager::DefaultValues::spacingSize;
0117     QString m_defaultFont = MauiMan::ThemeManager::DefaultValues::defaultFont;
0118     QString m_smallFont = MauiMan::ThemeManager::DefaultValues::smallFont;
0119     QString m_monospacedFont = MauiMan::ThemeManager::DefaultValues::monospacedFont;
0120     QString m_customColorScheme = MauiMan::ThemeManager::DefaultValues::customColorScheme;
0121 };