diff 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
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/include/gui/theme.h	Fri Nov 03 21:32:52 2023 -0400
@@ -0,0 +1,31 @@
+#ifndef __gui__theme_h
+#define __gui__theme_h
+
+#include <QStyle>
+
+enum class Themes {
+	OS,
+	LIGHT,
+	DARK
+};
+
+namespace Theme {
+
+class Theme final {
+	public:
+		Theme(Themes theme = Themes::OS);
+		void SetTheme(Themes theme);
+		Themes GetTheme();
+
+	private:
+		bool IsInDarkMode();
+		void SetToDarkTheme();
+		void SetToLightTheme();
+		void SetStyleSheet(Themes theme);
+		Themes GetCurrentOSTheme();
+		Themes theme;
+};
+
+} // namespace Theme
+
+#endif // __gui__theme_h