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 };