comparison include/gui/theme.h @ 102:b315f3759c56

*: big patch 1. use a wrapper for mINI that enables case sensitivity (personal preference) 2. rename dark_theme.cc to theme.cc and change it to be a class 3. include the "dep" folder so we don't have stupidity in json.h or ini.h 4. I think the graph was also tweaked a lot in this, nothing is constexpr and size is found at runtime...
author Paper <mrpapersonic@gmail.com>
date Fri, 03 Nov 2023 21:32:52 -0400
parents
children 6d8da6e64d61
comparison
equal deleted inserted replaced
101:c537996cf67b 102:b315f3759c56
1 #ifndef __gui__theme_h
2 #define __gui__theme_h
3
4 #include <QStyle>
5
6 enum class Themes {
7 OS,
8 LIGHT,
9 DARK
10 };
11
12 namespace Theme {
13
14 class Theme final {
15 public:
16 Theme(Themes theme = Themes::OS);
17 void SetTheme(Themes theme);
18 Themes GetTheme();
19
20 private:
21 bool IsInDarkMode();
22 void SetToDarkTheme();
23 void SetToLightTheme();
24 void SetStyleSheet(Themes theme);
25 Themes GetCurrentOSTheme();
26 Themes theme;
27 };
28
29 } // namespace Theme
30
31 #endif // __gui__theme_h