view include/gui/theme.h @ 408:9323153786dc default tip

http: fix build fail under non-mac
author Paper <paper@tflc.us>
date Wed, 21 Jan 2026 11:35:32 -0500
parents 47c9f8502269
children
line wrap: on
line source

#ifndef MINORI_GUI_THEME_H_
#define MINORI_GUI_THEME_H_

#include <array>

namespace Theme {

enum class Theme {
	Default,
	Light,
	Dark
};

constexpr std::array<Theme, 3> Themes{Theme::Default, Theme::Light, Theme::Dark};

class ThemeManager final {
public:
	ThemeManager(Theme theme = Theme::Default);
	void SetTheme(Theme theme);
	Theme GetTheme() const;
	bool IsInDarkTheme() const;
	void RepaintCurrentTheme();

private:
	void SetToDarkTheme();
	void SetToLightTheme();
	void SetStyleSheet(Theme theme);
	Theme GetCurrentOSTheme() const;
	Theme theme;
};

} // namespace Theme

#endif // MINORI_GUI_THEME_H_