view include/gui/theme.h @ 268:382b50754fe4

dep/animone: make osx code a bit less hacky it would be nice if macos actually provided a real API for getting window titles (outside of the accessibility api). the accessibility API is a real mess to work with; the user has to give permission to access it under newer versions.
author Paper <paper@paper.us.eu.org>
date Fri, 12 Apr 2024 05:21:45 -0400
parents 3ec7804abf17
children 657fda1b9cac
line wrap: on
line source

#ifndef MINORI_GUI_THEME_H_
#define MINORI_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() const;
	bool IsInDarkTheme() const;
	void RepaintCurrentTheme();

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

} // namespace Theme

#endif // MINORI_GUI_THEME_H_