#pragma once #include #include #include #include #include namespace hex::api { class ThemeManager { public: constexpr static auto NativeTheme = "Native"; static void changeTheme(std::string name); static void addTheme(const std::string &content); static void addThemeHandler(const std::string &name, const std::function &handler); static void addStyleHandler(const std::string &name, const std::function &handler); static std::vector getThemeNames(); static const std::string &getThemeImagePostfix(); static std::optional parseColorString(const std::string &colorString); static void reset(); private: ThemeManager() = default; static std::map s_themes; static std::map> s_themeHandlers, s_styleHandlers; static std::string s_imagePostfix; }; }