@@ -7,19 +7,19 @@ class AppTheme extends ValueNotifier<ThemeMode> {
77
88 final Settings _settings;
99
10- void apply (Brightness brightness, String lightGtkTheme, String darkGtkTheme ) {
10+ void apply (Brightness brightness, YaruVariant variant ) {
1111 switch (brightness) {
1212 case Brightness .dark:
1313 value = ThemeMode .dark;
14- _settings.setValue ('gtk-theme' , darkGtkTheme );
14+ _settings.setValue ('gtk-theme' , variant.gtkThemeNameDark );
1515 _settings.setValue ('color-scheme' , 'prefer-dark' );
16- _settings.setValue ('icon-theme' , darkGtkTheme );
16+ _settings.setValue ('icon-theme' , variant.gtkThemeNameDark );
1717 break ;
1818 case Brightness .light:
1919 value = ThemeMode .light;
20- _settings.setValue ('gtk-theme' , lightGtkTheme );
20+ _settings.setValue ('gtk-theme' , variant.gtkThemeName );
2121 _settings.setValue ('color-scheme' , 'default' );
22- _settings.setValue ('icon-theme' , lightGtkTheme );
22+ _settings.setValue ('icon-theme' , variant.gtkThemeName );
2323 break ;
2424 }
2525 }
@@ -31,107 +31,25 @@ class AppTheme extends ValueNotifier<ThemeMode> {
3131 }
3232}
3333
34- class LightTheme extends ValueNotifier <ThemeData > {
35- LightTheme (ThemeData value) : super (value);
36- }
37-
38- class DarkTheme extends ValueNotifier <ThemeData > {
39- DarkTheme (ThemeData value) : super (value);
40- }
41-
42- class LightGtkTheme extends ValueNotifier <String > {
43- LightGtkTheme (String value) : super (value);
44- }
45-
46- class DarkGtkTheme extends ValueNotifier <String > {
47- DarkGtkTheme (String value) : super (value);
48- }
49-
50- final List <GlobalTheme > globalThemeList = [
51- GlobalTheme (
52- lightTheme: yaruLight,
53- darkTheme: yaruDark,
54- lightGtkTheme: 'Yaru' ,
55- darkGtkTheme: 'Yaru-dark' ,
56- primaryColor: YaruColors .ubuntuOrange,
57- ),
58- GlobalTheme (
59- lightTheme: yaruSageLight,
60- darkTheme: yaruSageDark,
61- lightGtkTheme: 'Yaru-sage' ,
62- darkGtkTheme: 'Yaru-sage-dark' ,
63- primaryColor: sageMaterialColor,
64- ),
65- GlobalTheme (
66- lightTheme: yaruBarkLight,
67- darkTheme: yaruBarkDark,
68- lightGtkTheme: 'Yaru-bark' ,
69- darkGtkTheme: 'Yaru-bark-dark' ,
70- primaryColor: barkMaterialColor,
71- ),
72- GlobalTheme (
73- lightTheme: yaruOliveLight,
74- darkTheme: yaruOliveDark,
75- lightGtkTheme: 'Yaru-olive' ,
76- darkGtkTheme: 'Yaru-olive-dark' ,
77- primaryColor: oliveMaterialColor,
78- ),
79- GlobalTheme (
80- lightTheme: yaruViridianLight,
81- darkTheme: yaruViridianDark,
82- lightGtkTheme: 'Yaru-viridian' ,
83- darkGtkTheme: 'Yaru-viridian-dark' ,
84- primaryColor: viridianMaterialColor,
85- ),
86- GlobalTheme (
87- lightTheme: yaruPrussianGreenLight,
88- darkTheme: yaruPrussianGreenDark,
89- lightGtkTheme: 'Yaru-prussiangreen' ,
90- darkGtkTheme: 'Yaru-prussiangreen-dark' ,
91- primaryColor: prussianGreenMaterialColor,
92- ),
93- GlobalTheme (
94- lightTheme: yaruBlueLight,
95- darkTheme: yaruBlueDark,
96- lightGtkTheme: 'Yaru-blue' ,
97- darkGtkTheme: 'Yaru-blue-dark' ,
98- primaryColor: blueMaterialColor,
99- ),
100- GlobalTheme (
101- lightTheme: yaruPurpleLight,
102- darkTheme: yaruPurpleDark,
103- lightGtkTheme: 'Yaru-purple' ,
104- darkGtkTheme: 'Yaru-purple-dark' ,
105- primaryColor: purpleMaterialColor,
106- ),
107- GlobalTheme (
108- lightTheme: yarMagentaLight,
109- darkTheme: yaruMagentaDark,
110- lightGtkTheme: 'Yaru-magenta' ,
111- darkGtkTheme: 'Yaru-magenta-dark' ,
112- primaryColor: magentaMaterialColor,
113- ),
114- GlobalTheme (
115- lightTheme: yaruRedLight,
116- darkTheme: yaruRedDark,
117- lightGtkTheme: 'Yaru-red' ,
118- darkGtkTheme: 'Yaru-red-dark' ,
119- primaryColor: lightRedMaterialColor,
120- ),
34+ const List <YaruVariant > globalThemeList = [
35+ YaruVariant .orange,
36+ YaruVariant .bark,
37+ YaruVariant .sage,
38+ YaruVariant .olive,
39+ YaruVariant .viridian,
40+ YaruVariant .prussianGreen,
41+ YaruVariant .blue,
42+ YaruVariant .purple,
43+ YaruVariant .magenta,
44+ YaruVariant .red,
12145];
12246
123- class GlobalTheme {
124- final ThemeData lightTheme;
125- final ThemeData darkTheme;
126- final String lightGtkTheme;
127- final String darkGtkTheme;
128- final MaterialColor primaryColor;
47+ extension YaruVariantName on YaruVariant {
48+ String get gtkThemeName {
49+ return this == YaruVariant .orange ? 'Yaru' : 'Yaru-${name .toLowerCase ()}' ;
50+ }
12951
130- GlobalTheme ({
131- required this .lightTheme,
132- required this .darkTheme,
133- required this .lightGtkTheme,
134- required this .darkGtkTheme,
135- required this .primaryColor,
136- });
52+ String get gtkThemeNameDark {
53+ return '$gtkThemeName -dark' ;
54+ }
13755}
0 commit comments