1#ifndef YAZE_APP_GUI_THEME_MANAGER_H
2#define YAZE_APP_GUI_THEME_MANAGER_H
12#include "absl/status/status.h"
13#include "absl/status/statusor.h"
15#include "imgui/imgui.h"
288 absl::Status
LoadTheme(
const std::string& theme_name);
317 void ApplyTheme(
const std::string& theme_name);
331 std::optional<DensityPreset> density = std::nullopt);
431 std::set<std::string>* declared_keys =
nullptr);
435 const std::set<std::string>& declared_keys = {});
Manages themes, loading, saving, and switching.
Color GetSurfaceContainerHigh() const
void CreateFallbackYazeClassic()
absl::Status ParseThemeFile(const std::string &content, Theme &theme, std::set< std::string > *declared_keys=nullptr)
Color ParseColorFromString(const std::string &color_str) const
Color GetOnPrimary() const
Color GetSurfaceVariant() const
void NotifyThemeChanged()
std::string preview_original_name_
Color GetTextSecondary() const
void ShowThemeEditor(bool *p_open)
Color GetWelcomeScreenBackground() const
ImVec4 GetThemeColorVec4(const std::string &color_name) const
void ReapplyTheme(const Theme &theme)
bool initializing_built_ins_
void StartPreview(const std::string &theme_name)
ThemeChangedCallback on_theme_changed_
absl::Status SaveTheme(const Theme &theme, const std::string &filename)
std::string GetCurrentThemeFilePath() const
std::function< void(const std::string &)> ThemeChangedCallback
std::map< std::string, Theme > themes_
absl::Status LoadTheme(const std::string &theme_name)
const Theme & GetCurrentTheme() const
Color GetPrimaryHover() const
absl::Status LoadThemeFromFile(const std::string &filepath)
std::map< std::string, std::string > theme_file_paths_
void ApplyTheme(const std::string &theme_name)
std::string GetThemesDirectory() const
std::string current_theme_name_
ImVec4 transition_to_[ImGuiCol_COUNT]
Color GetWelcomeScreenAccent() const
void ApplyAccentColor(const Color &accent, bool dark_mode=true)
float transition_progress_
std::vector< std::string > DiscoverAvailableThemeFiles() const
std::string GetUserThemesDirectory() const
Theme CreateCustomTheme(const std::string &name)
absl::Status LoadAllAvailableThemes()
Color GetSurfaceContainer() const
Theme preview_original_theme_
bool IsPreviewActive() const
Color GetOnSurfaceVariant() const
std::vector< std::string > GetThemeSearchPaths() const
void SetOnThemeChangedCallback(ThemeChangedCallback callback)
static ThemeManager & Get()
Color GetThemeColor(const std::string &color_name) const
Color GetOnSurface() const
void ApplyClassicYazeTheme(std::optional< DensityPreset > density=std::nullopt)
const std::string & GetCurrentThemeName() const
void ShowThemeSelector(bool *p_open)
Theme GenerateThemeFromAccent(const Color &accent, bool dark_mode=true)
const Theme * GetTheme(const std::string &name) const
std::string SerializeTheme(const Theme &theme) const
void InitializeBuiltInThemes()
absl::Status RefreshAvailableThemes()
Color GetTextDisabled() const
std::string ExportCurrentThemeJson() const
Color GetSecondary() const
absl::Status SaveThemeToFile(const Theme &theme, const std::string &filepath)
void ApplySmartDefaults(Theme &theme, const std::set< std::string > &declared_keys={})
bool IsTransitioning() const
Color GetSurfaceContainerHighest() const
Color GetWelcomeScreenBorder() const
void ShowSimpleThemeEditor(bool *p_open)
Color GetPrimaryActive() const
ImVec4 transition_from_[ImGuiCol_COUNT]
std::vector< std::string > GetAvailableThemes() const
ImVec4 ConvertColorToImVec4(const Color &color)
ImVec4 GetSurfaceContainerHighestVec4()
ImVec4 GetThemeColorVec4(const std::string &color_name)
Color GetOnSurfaceVariant()
ImVec4 GetOnPrimaryVec4()
ImVec4 GetPrimaryActiveVec4()
Color GetSurfaceContainerHighest()
ImVec4 GetTextPrimaryVec4()
Color GetSurfaceContainer()
ImVec4 GetSurfaceVariantVec4()
DensityPreset
Typography and spacing density presets.
ImVec4 GetTextDisabledVec4()
ImVec4 GetTextSecondaryVec4()
ImVec4 GetSurfaceContainerHighVec4()
ImVec4 GetPrimaryHoverVec4()
Color GetThemeColor(const std::string &color_name)
Color GetSurfaceContainerHigh()
ImVec4 GetOnSurfaceVariantVec4()
ImVec4 GetOnSurfaceVec4()
ImVec4 GetSurfaceContainerVec4()
Color GetSurfaceVariant()
Color collaboration_inactive
Color collaboration_active
Color grid_cell_highlight
Color selection_secondary
Color drag_preview_outline
Comprehensive theme structure for YAZE.
Color tab_dimmed_selected_overline
Color table_border_strong
Color tab_selected_overline
Color selection_secondary
Color drag_preview_outline
Color scrollbar_grab_hovered
Color scrollbar_grab_active
Color modal_window_dim_bg
Color nav_windowing_highlight
float panel_padding_multiplier
float widget_height_multiplier
struct yaze::gui::Theme::DungeonColors dungeon
Color tab_unfocused_active
struct yaze::gui::Theme::AgentTheme agent
Color plot_histogram_hovered
Color tab_dimmed_selected
void ApplyDensitySizingToImGui() const
Color nav_windowing_dim_bg
void ApplyToImGui() const
float button_padding_multiplier
float table_row_height_multiplier
float toolbar_height_multiplier
DensityPreset density_preset
Color resize_grip_hovered
void ApplyDensityPreset(DensityPreset preset)
float canvas_toolbar_multiplier
float input_width_multiplier