yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
yaze::gui::ThemeManager Class Reference

Manages themes, loading, saving, and switching. More...

#include <theme_manager.h>

Collaboration diagram for yaze::gui::ThemeManager:

Public Types

using ThemeChangedCallback = std::function<void(const std::string&)>
 

Public Member Functions

absl::Status LoadTheme (const std::string &theme_name)
 
absl::Status SaveTheme (const Theme &theme, const std::string &filename)
 
absl::Status LoadThemeFromFile (const std::string &filepath)
 
absl::Status SaveThemeToFile (const Theme &theme, const std::string &filepath)
 
std::vector< std::string > DiscoverAvailableThemeFiles () const
 
absl::Status LoadAllAvailableThemes ()
 
absl::Status RefreshAvailableThemes ()
 
void InitializeBuiltInThemes ()
 
std::vector< std::string > GetAvailableThemes () const
 
const ThemeGetTheme (const std::string &name) const
 
const ThemeGetCurrentTheme () const
 
const std::string & GetCurrentThemeName () const
 
std::string GetCurrentThemeFilePath () const
 
void ApplyTheme (const std::string &theme_name)
 
void ApplyTheme (const Theme &theme)
 
void ReapplyTheme (const Theme &theme)
 
void ApplyClassicYazeTheme (std::optional< DensityPreset > density=std::nullopt)
 
void SetOnThemeChangedCallback (ThemeChangedCallback callback)
 
void StartPreview (const std::string &theme_name)
 
void EndPreview ()
 
bool IsPreviewActive () const
 
void UpdateTransition ()
 
bool IsTransitioning () const
 
Theme CreateCustomTheme (const std::string &name)
 
void ShowThemeEditor (bool *p_open)
 
void ShowThemeSelector (bool *p_open)
 
void ShowSimpleThemeEditor (bool *p_open)
 
Theme GenerateThemeFromAccent (const Color &accent, bool dark_mode=true)
 
void ApplyAccentColor (const Color &accent, bool dark_mode=true)
 
Color GetWelcomeScreenBackground () const
 
Color GetWelcomeScreenBorder () const
 
Color GetWelcomeScreenAccent () const
 
std::string ExportCurrentThemeJson () const
 
Color GetThemeColor (const std::string &color_name) const
 
ImVec4 GetThemeColorVec4 (const std::string &color_name) const
 
Color GetPrimary () const
 
Color GetPrimaryHover () const
 
Color GetPrimaryActive () const
 
Color GetSecondary () const
 
Color GetSurface () const
 
Color GetSurfaceVariant () const
 
Color GetSurfaceContainer () const
 
Color GetSurfaceContainerHigh () const
 
Color GetSurfaceContainerHighest () const
 
Color GetOnSurface () const
 
Color GetOnSurfaceVariant () const
 
Color GetOnPrimary () const
 
Color GetOutline () const
 
Color GetTextSecondary () const
 
Color GetTextDisabled () const
 
Color GetShadow () const
 

Static Public Member Functions

static ThemeManagerGet ()
 

Private Member Functions

 ThemeManager ()
 
void NotifyThemeChanged ()
 
void CreateFallbackYazeClassic ()
 
absl::Status ParseThemeFile (const std::string &content, Theme &theme, std::set< std::string > *declared_keys=nullptr)
 
void ApplySmartDefaults (Theme &theme, const std::set< std::string > &declared_keys={})
 
Color ParseColorFromString (const std::string &color_str) const
 
std::string SerializeTheme (const Theme &theme) const
 
std::vector< std::string > GetThemeSearchPaths () const
 
std::string GetThemesDirectory () const
 
std::string GetUserThemesDirectory () const
 

Private Attributes

std::map< std::string, Themethemes_
 
std::map< std::string, std::string > theme_file_paths_
 
Theme current_theme_
 
std::string current_theme_name_ = "Classic YAZE"
 
bool preview_active_ = false
 
Theme preview_original_theme_
 
std::string preview_original_name_
 
bool initializing_built_ins_ = false
 
bool transitioning_ = false
 
float transition_progress_ = 0.0f
 
ImVec4 transition_from_ [ImGuiCol_COUNT] = {}
 
ImVec4 transition_to_ [ImGuiCol_COUNT] = {}
 
ThemeChangedCallback on_theme_changed_
 

Detailed Description

Manages themes, loading, saving, and switching.

Definition at line 283 of file theme_manager.h.

Member Typedef Documentation

◆ ThemeChangedCallback

using yaze::gui::ThemeManager::ThemeChangedCallback = std::function<void(const std::string&)>

Definition at line 336 of file theme_manager.h.

Constructor & Destructor Documentation

◆ ThemeManager()

yaze::gui::ThemeManager::ThemeManager ( )
inlineprivate

Definition at line 393 of file theme_manager.h.

References InitializeBuiltInThemes().

Here is the call graph for this function:

Member Function Documentation

◆ Get()

ThemeManager & yaze::gui::ThemeManager::Get ( )
static

Definition at line 327 of file theme_manager.cc.

Referenced by yaze::editor::SettingsPanel::ApplyDisplayDensity(), yaze::gui::BeginThemedTabBar(), yaze::gui::BouncyButton(), yaze::gui::Animator::ComputeStep(), yaze::gui::DangerButton(), yaze::editor::anonymous_namespace{dashboard_panel.cc}::DensityFactor(), yaze::editor::DungeonToolset::Draw(), yaze::editor::NewProjectDialog::Draw(), yaze::editor::ToastManager::Draw(), yaze::editor::DashboardPanel::Draw(), yaze::editor::ObjectTileEditorPanel::Draw(), yaze::editor::DungeonStatusBar::Draw(), yaze::editor::WindowSidebar::Draw(), yaze::editor::ObjectTileEditorPanel::DrawActionBar(), yaze::editor::RomLoadOptionsDialog::DrawActionButtons(), yaze::editor::ActivityBar::DrawActivityBarStrip(), yaze::editor::RightDrawerManager::DrawAgentQuickActions(), yaze::editor::SettingsPanel::DrawAppearanceSettings(), yaze::editor::UICoordinator::DrawBackground(), yaze::gui::DrawCanvasHUD(), yaze::gui::KeyboardShortcuts::DrawCategorySection(), yaze::editor::music::PianoRollView::DrawChannelList(), yaze::editor::anonymous_namespace{palette_editor.cc}::DrawColorDropTargetOutline(), yaze::gui::anonymous_namespace{palette_editor_widget.cc}::DrawColorDropTargetOutline(), yaze::editor::UICoordinator::DrawCommandPalette(), yaze::editor::DungeonCanvasViewer::DrawCompactLayerToggles(), yaze::editor::anonymous_namespace{dungeon_canvas_connected_matrix.cc}::DrawConnectedCanvasControls(), yaze::editor::anonymous_namespace{dungeon_canvas_connected_matrix.cc}::DrawConnectedCanvasOverview(), yaze::editor::DungeonCanvasViewer::DrawConnectedToolbarControls(), yaze::editor::StatusBar::DrawDirtyScopeSegment(), yaze::gui::DrawDisplaySettings(), yaze::gui::DrawDisplaySettingsForPopup(), yaze::gui::FlagsMenu::DrawDungeonFlags(), yaze::editor::EditorSelectionDialog::DrawEditorPanel(), yaze::editor::DashboardPanel::DrawEditorPanel(), yaze::editor::WelcomeScreen::DrawFooterBar(), yaze::editor::UICoordinator::DrawMenuBarExtras(), yaze::editor::UICoordinator::DrawNotificationBell(), yaze::editor::RightDrawerManager::DrawNotificationsPanel(), yaze::gui::KeyboardShortcuts::DrawOverlayContent(), yaze::gui::FlagsMenu::DrawOverworldFlags(), yaze::gui::PaletteEditorWidget::DrawPaletteAnalysis(), yaze::editor::ProjectManagementPanel::DrawProjectOverview(), yaze::editor::EditorSelectionDialog::DrawQuickAccessButtons(), yaze::editor::WelcomeScreen::DrawQuickActions(), yaze::editor::ProjectManagementPanel::DrawQuickActions(), yaze::editor::DashboardPanel::DrawRecentEditors(), yaze::editor::PopupManager::DrawRomInfoPopup(), yaze::editor::ProjectManagementPanel::DrawRomManagement(), yaze::editor::StatusBar::DrawRomSegment(), yaze::editor::DungeonCanvasViewer::DrawRoomPropertyTable(), yaze::editor::SessionCoordinator::DrawSessionIndicator(), yaze::gui::BackgroundRenderer::DrawSettingsUI(), yaze::gui::KeyboardShortcuts::DrawShortcutRow(), yaze::editor::ProjectManagementPanel::DrawStorageLocations(), yaze::editor::PopupManager::DrawSupportedFeaturesPopup(), yaze::editor::MusicEditor::DrawToolset(), yaze::editor::WelcomeScreen::DrawUndoRemovalBanner(), yaze::editor::RomLoadOptionsDialog::DrawVersionInfo(), yaze::editor::EditorSelectionDialog::DrawWelcomeHeader(), yaze::editor::DashboardPanel::DrawWelcomeHeader(), yaze::editor::AgentUITheme::FromCurrentTheme(), yaze::gui::GetAccentColor(), yaze::editor::music::anonymous_namespace{tracker_view.cc}::GetColorBeatHighlight(), yaze::editor::music::anonymous_namespace{tracker_view.cc}::GetColorCommand(), yaze::editor::music::anonymous_namespace{tracker_view.cc}::GetColorNote(), yaze::editor::music::anonymous_namespace{tracker_view.cc}::GetColorSelection(), yaze::editor::music::anonymous_namespace{tracker_view.cc}::GetColorSubroutine(), yaze::gui::GetDangerButtonColors(), yaze::gui::resize_handles_internal::GetDefaultHandleColor(), yaze::gui::GetErrorColor(), yaze::gui::GetErrorVec4(), yaze::gui::GetInfoColor(), yaze::gui::GetModifiedColor(), yaze::gui::GetOnPrimary(), yaze::gui::GetOnSurface(), yaze::gui::GetOnSurfaceVariant(), yaze::gui::GetOutline(), yaze::editor::music::anonymous_namespace{piano_roll_view.cc}::GetPalette(), yaze::gui::GetPrimary(), yaze::gui::GetPrimaryActive(), yaze::gui::GetPrimaryButtonColors(), yaze::gui::GetPrimaryHover(), yaze::gui::GetSecondary(), yaze::gui::GetSelectedColor(), yaze::gui::GetShadow(), yaze::gui::GetSuccessButtonColors(), yaze::gui::GetSuccessColor(), yaze::gui::GetSuccessVec4(), yaze::gui::GetSurface(), yaze::gui::GetSurfaceContainer(), yaze::gui::GetSurfaceContainerHigh(), yaze::gui::GetSurfaceContainerHighest(), yaze::gui::GetSurfaceVariant(), yaze::gui::GetTextDisabled(), yaze::gui::GetTextPrimaryVec4(), yaze::gui::GetTextSecondary(), yaze::gui::LayoutHelpers::GetTheme(), yaze::gui::GetThemeColor(), yaze::gui::GetThemeColorVec4(), yaze::gui::GetWarningButtonColors(), yaze::gui::GetWarningColor(), yaze::gui::GetWarningVec4(), yaze::editor::EditorManager::InitializeServices(), yaze::gui::Animator::IsEnabled(), yaze::Controller::OnLoad(), yaze::gui::PaletteColorButton(), yaze::gui::PanelHeader(), yaze::gui::PrimaryButton(), yaze::emu::ui::RenderAIAgentPanel(), yaze::emu::ui::RenderApuDebugger(), yaze::emu::ui::RenderBreakpointList(), yaze::gui::RenderCanvasBackground(), yaze::emu::ui::RenderCpuInstructionLog(), yaze::gui::BackgroundRenderer::RenderDockingBackground(), yaze::emu::Emulator::RenderEmulatorInterface(), yaze::emu::ui::RenderEmulatorInterface(), yaze::emu::ui::RenderKeyboardShortcuts(), yaze::emu::ui::RenderMemoryViewer(), yaze::emu::Emulator::RenderModernCpuDebugger(), yaze::emu::ui::RenderModernCpuDebugger(), yaze::emu::ui::RenderNavBar(), yaze::emu::ui::RenderPerformanceMonitor(), yaze::gui::RenderProviderBadge(), yaze::emu::Emulator::RenderSaveStates(), yaze::emu::ui::RenderSnesPpu(), yaze::emu::ui::RenderVirtualController(), yaze::gui::ResolveSemanticColor(), yaze::gui::RippleButton(), yaze::gui::SectionHeader(), yaze::gui::PaletteEditorWidget::ShowColorAnalysis(), yaze::gui::SuccessButton(), yaze::gui::ThemedButton(), yaze::gui::ThemedIconButton(), yaze::gui::ThemedSeparator(), yaze::gui::ThemedTooltip(), yaze::gui::TransparentIconButton(), yaze::gui::AgentChatWidget::UpdateThemeColors(), yaze::editor::anonymous_namespace{welcome_screen.cc}::UpdateWelcomeAccentPalette(), yaze::gui::ValueChangeFlash(), yaze::editor::workflow::WorkflowColor(), and yaze::editor::EditorManager::~EditorManager().

◆ LoadTheme()

absl::Status yaze::gui::ThemeManager::LoadTheme ( const std::string & theme_name)

◆ SaveTheme()

absl::Status yaze::gui::ThemeManager::SaveTheme ( const Theme & theme,
const std::string & filename )

◆ LoadThemeFromFile()

absl::Status yaze::gui::ThemeManager::LoadThemeFromFile ( const std::string & filepath)

◆ SaveThemeToFile()

absl::Status yaze::gui::ThemeManager::SaveThemeToFile ( const Theme & theme,
const std::string & filepath )

Definition at line 2264 of file theme_manager.cc.

References yaze::gui::Theme::name, SerializeTheme(), and theme_file_paths_.

Referenced by ShowSimpleThemeEditor().

Here is the call graph for this function:

◆ DiscoverAvailableThemeFiles()

std::vector< std::string > yaze::gui::ThemeManager::DiscoverAvailableThemeFiles ( ) const

Definition at line 3852 of file theme_manager.cc.

References yaze::util::GetFileName(), GetThemeSearchPaths(), LOG_INFO, and LOG_WARN.

Referenced by LoadAllAvailableThemes().

Here is the call graph for this function:

◆ LoadAllAvailableThemes()

absl::Status yaze::gui::ThemeManager::LoadAllAvailableThemes ( )

Definition at line 3924 of file theme_manager.cc.

References DiscoverAvailableThemeFiles(), and LoadThemeFromFile().

Referenced by InitializeBuiltInThemes(), and RefreshAvailableThemes().

Here is the call graph for this function:

◆ RefreshAvailableThemes()

absl::Status yaze::gui::ThemeManager::RefreshAvailableThemes ( )

Definition at line 3947 of file theme_manager.cc.

References LoadAllAvailableThemes().

Referenced by ShowThemeSelector().

Here is the call graph for this function:

◆ InitializeBuiltInThemes()

void yaze::gui::ThemeManager::InitializeBuiltInThemes ( )

Definition at line 332 of file theme_manager.cc.

References ApplyClassicYazeTheme(), CreateFallbackYazeClassic(), current_theme_, current_theme_name_, initializing_built_ins_, LoadAllAvailableThemes(), LOG_ERROR, and themes_.

Referenced by ThemeManager().

Here is the call graph for this function:

◆ GetAvailableThemes()

std::vector< std::string > yaze::gui::ThemeManager::GetAvailableThemes ( ) const

Definition at line 683 of file theme_manager.cc.

References themes_.

Referenced by ShowSimpleThemeEditor().

◆ GetTheme()

const Theme * yaze::gui::ThemeManager::GetTheme ( const std::string & name) const

Definition at line 693 of file theme_manager.cc.

References yaze::gui::BuildClassicYazeTheme(), and themes_.

Here is the call graph for this function:

◆ GetCurrentTheme()

const Theme & yaze::gui::ThemeManager::GetCurrentTheme ( ) const
inline

Definition at line 307 of file theme_manager.h.

References current_theme_.

Referenced by yaze::gui::BeginThemedTabBar(), yaze::gui::BouncyButton(), yaze::gui::Animator::ComputeStep(), yaze::gui::DangerButton(), yaze::editor::DungeonToolset::Draw(), yaze::editor::ToastManager::Draw(), yaze::editor::DashboardPanel::Draw(), yaze::editor::ObjectTileEditorPanel::Draw(), yaze::editor::DungeonStatusBar::Draw(), yaze::editor::WindowSidebar::Draw(), yaze::editor::ObjectTileEditorPanel::DrawActionBar(), yaze::editor::RomLoadOptionsDialog::DrawActionButtons(), yaze::editor::ActivityBar::DrawActivityBarStrip(), yaze::editor::RightDrawerManager::DrawAgentQuickActions(), yaze::gui::DrawCanvasHUD(), yaze::gui::KeyboardShortcuts::DrawCategorySection(), yaze::editor::music::PianoRollView::DrawChannelList(), yaze::editor::anonymous_namespace{palette_editor.cc}::DrawColorDropTargetOutline(), yaze::gui::anonymous_namespace{palette_editor_widget.cc}::DrawColorDropTargetOutline(), yaze::editor::UICoordinator::DrawCommandPalette(), yaze::editor::DungeonCanvasViewer::DrawCompactLayerToggles(), yaze::editor::anonymous_namespace{dungeon_canvas_connected_matrix.cc}::DrawConnectedCanvasControls(), yaze::editor::anonymous_namespace{dungeon_canvas_connected_matrix.cc}::DrawConnectedCanvasOverview(), yaze::editor::StatusBar::DrawDirtyScopeSegment(), yaze::gui::FlagsMenu::DrawDungeonFlags(), yaze::editor::EditorSelectionDialog::DrawEditorPanel(), yaze::editor::DashboardPanel::DrawEditorPanel(), yaze::editor::UICoordinator::DrawMenuBarExtras(), yaze::editor::RightDrawerManager::DrawNotificationsPanel(), yaze::gui::KeyboardShortcuts::DrawOverlayContent(), yaze::gui::FlagsMenu::DrawOverworldFlags(), yaze::editor::ProjectManagementPanel::DrawProjectOverview(), yaze::editor::EditorSelectionDialog::DrawQuickAccessButtons(), yaze::editor::ProjectManagementPanel::DrawQuickActions(), yaze::editor::DashboardPanel::DrawRecentEditors(), yaze::editor::PopupManager::DrawRomInfoPopup(), yaze::editor::ProjectManagementPanel::DrawRomManagement(), yaze::editor::StatusBar::DrawRomSegment(), yaze::editor::SessionCoordinator::DrawSessionIndicator(), yaze::gui::KeyboardShortcuts::DrawShortcutRow(), yaze::editor::ProjectManagementPanel::DrawStorageLocations(), yaze::editor::PopupManager::DrawSupportedFeaturesPopup(), yaze::editor::MusicEditor::DrawToolset(), yaze::editor::RomLoadOptionsDialog::DrawVersionInfo(), yaze::editor::EditorSelectionDialog::DrawWelcomeHeader(), yaze::editor::DashboardPanel::DrawWelcomeHeader(), yaze::editor::AgentUITheme::FromCurrentTheme(), yaze::gui::GetAccentColor(), yaze::editor::music::anonymous_namespace{tracker_view.cc}::GetColorBeatHighlight(), yaze::editor::music::anonymous_namespace{tracker_view.cc}::GetColorCommand(), yaze::editor::music::anonymous_namespace{tracker_view.cc}::GetColorNote(), yaze::editor::music::anonymous_namespace{tracker_view.cc}::GetColorSelection(), yaze::editor::music::anonymous_namespace{tracker_view.cc}::GetColorSubroutine(), yaze::gui::GetDangerButtonColors(), yaze::gui::resize_handles_internal::GetDefaultHandleColor(), yaze::gui::GetErrorColor(), yaze::gui::GetInfoColor(), yaze::gui::GetModifiedColor(), yaze::editor::music::anonymous_namespace{piano_roll_view.cc}::GetPalette(), yaze::gui::GetPrimaryButtonColors(), yaze::gui::GetSelectedColor(), yaze::gui::GetSuccessButtonColors(), yaze::gui::GetSuccessColor(), yaze::gui::LayoutHelpers::GetTheme(), yaze::gui::GetWarningButtonColors(), yaze::gui::GetWarningColor(), yaze::gui::Animator::IsEnabled(), yaze::gui::PaletteColorButton(), yaze::gui::PanelHeader(), yaze::gui::PrimaryButton(), yaze::gui::RenderCanvasBackground(), yaze::gui::RenderProviderBadge(), yaze::gui::ResolveSemanticColor(), yaze::gui::RippleButton(), yaze::gui::SectionHeader(), ShowSimpleThemeEditor(), ShowThemeSelector(), yaze::gui::SuccessButton(), yaze::gui::ThemedButton(), yaze::gui::ThemedIconButton(), yaze::gui::ThemedSeparator(), yaze::gui::ThemedTooltip(), yaze::gui::TransparentIconButton(), yaze::gui::AgentChatWidget::UpdateThemeColors(), yaze::gui::ValueChangeFlash(), and yaze::editor::workflow::WorkflowColor().

◆ GetCurrentThemeName()

const std::string & yaze::gui::ThemeManager::GetCurrentThemeName ( ) const
inline

Definition at line 308 of file theme_manager.h.

References current_theme_name_.

◆ GetCurrentThemeFilePath()

std::string yaze::gui::ThemeManager::GetCurrentThemeFilePath ( ) const

Definition at line 3951 of file theme_manager.cc.

References current_theme_name_, GetThemeSearchPaths(), and theme_file_paths_.

Referenced by ShowSimpleThemeEditor().

Here is the call graph for this function:

◆ ApplyTheme() [1/2]

void yaze::gui::ThemeManager::ApplyTheme ( const std::string & theme_name)

◆ ApplyTheme() [2/2]

◆ ReapplyTheme()

void yaze::gui::ThemeManager::ReapplyTheme ( const Theme & theme)

Definition at line 719 of file theme_manager.cc.

References ApplyClassicYazeTheme(), ApplyTheme(), yaze::gui::Theme::density_preset, and yaze::gui::Theme::name.

Referenced by EndPreview(), and ShowSimpleThemeEditor().

Here is the call graph for this function:

◆ ApplyClassicYazeTheme()

◆ SetOnThemeChangedCallback()

void yaze::gui::ThemeManager::SetOnThemeChangedCallback ( ThemeChangedCallback callback)
inline

◆ StartPreview()

void yaze::gui::ThemeManager::StartPreview ( const std::string & theme_name)

Definition at line 2326 of file theme_manager.cc.

References ApplyTheme(), current_theme_, current_theme_name_, preview_active_, preview_original_name_, and preview_original_theme_.

Referenced by ShowThemeSelector().

Here is the call graph for this function:

◆ EndPreview()

void yaze::gui::ThemeManager::EndPreview ( )

Definition at line 2343 of file theme_manager.cc.

References current_theme_, current_theme_name_, NotifyThemeChanged(), preview_active_, preview_original_name_, preview_original_theme_, and ReapplyTheme().

Referenced by ShowThemeSelector().

Here is the call graph for this function:

◆ IsPreviewActive()

bool yaze::gui::ThemeManager::IsPreviewActive ( ) const

Definition at line 2361 of file theme_manager.cc.

References preview_active_.

Referenced by ShowThemeSelector().

◆ UpdateTransition()

void yaze::gui::ThemeManager::UpdateTransition ( )

◆ IsTransitioning()

bool yaze::gui::ThemeManager::IsTransitioning ( ) const
inline

Definition at line 348 of file theme_manager.h.

References transitioning_.

◆ CreateCustomTheme()

Theme yaze::gui::ThemeManager::CreateCustomTheme ( const std::string & name)

◆ ShowThemeEditor()

void yaze::gui::ThemeManager::ShowThemeEditor ( bool * p_open)

◆ ShowThemeSelector()

◆ ShowSimpleThemeEditor()

void yaze::gui::ThemeManager::ShowSimpleThemeEditor ( bool * p_open)

Definition at line 2365 of file theme_manager.cc.

References yaze::gui::Theme::accent, yaze::gui::Theme::active_selection, yaze::gui::Theme::animation_speed, ApplyClassicYazeTheme(), yaze::gui::Theme::ApplyDensityPreset(), ApplyTheme(), yaze::gui::Theme::ApplyToImGui(), yaze::gui::Theme::author, yaze::gui::Theme::background, yaze::gui::Color::blue, yaze::gui::Theme::border, yaze::gui::Theme::border_shadow, yaze::gui::Theme::button, yaze::gui::Theme::button_active, yaze::gui::Theme::button_hovered, yaze::gui::Theme::button_padding_multiplier, yaze::gui::Theme::check_mark, yaze::gui::Theme::child_bg, yaze::gui::Theme::code_background, yaze::gui::Theme::compact_factor, yaze::gui::ConvertColorToImVec4(), current_theme_, yaze::gui::Theme::density_preset, yaze::gui::Theme::description, yaze::gui::Theme::disabled_overlay, yaze::gui::Theme::docking_empty_bg, yaze::gui::Theme::docking_preview, yaze::gui::Theme::drag_drop_target, yaze::gui::Theme::editor_background, yaze::gui::Theme::editor_cursor, yaze::gui::Theme::editor_grid, yaze::gui::Theme::editor_selection, yaze::gui::Theme::enable_animations, yaze::gui::Theme::enable_glow_effects, yaze::gui::Theme::error_light, yaze::gui::Theme::focus_border, yaze::gui::Theme::frame_bg, yaze::gui::Theme::frame_bg_active, yaze::gui::Theme::frame_bg_hovered, yaze::gui::Theme::frame_border_size, yaze::gui::Theme::frame_rounding, GenerateThemeFromAccent(), GetAvailableThemes(), GetCurrentTheme(), GetCurrentThemeFilePath(), GetUserThemesDirectory(), yaze::gui::Theme::grab_rounding, yaze::gui::Color::green, yaze::gui::Theme::header, yaze::gui::Theme::header_active, yaze::gui::Theme::header_hovered, yaze::gui::Theme::hover_highlight, ICON_MD_ADD, ICON_MD_AUTO_AWESOME, ICON_MD_AUTO_FIX_HIGH, ICON_MD_BOLT, ICON_MD_BORDER_ALL, ICON_MD_CHECK, ICON_MD_COLOR_LENS, ICON_MD_COMPRESS, ICON_MD_DENSITY_SMALL, ICON_MD_EXPAND, ICON_MD_FOLDER_OPEN, ICON_MD_NAVIGATION, ICON_MD_PALETTE, ICON_MD_SAVE, ICON_MD_SAVE_AS, ICON_MD_TABLE_CHART, ICON_MD_TEXT_FIELDS, ICON_MD_TOUCH_APP, ICON_MD_TUNE, yaze::gui::Theme::info_light, yaze::gui::Theme::input_text_cursor, yaze::gui::kComfortable, yaze::gui::kCompact, yaze::gui::kNormal, yaze::gui::Theme::link_hover, LoadThemeFromFile(), LOG_ERROR, LOG_INFO, yaze::gui::Theme::menu_bar_bg, yaze::gui::Theme::modal_bg, yaze::gui::Theme::modal_window_dim_bg, yaze::gui::Theme::name, yaze::gui::Theme::nav_cursor, yaze::gui::Theme::nav_windowing_dim_bg, yaze::gui::Theme::nav_windowing_highlight, yaze::gui::Theme::panel_padding_multiplier, yaze::gui::Theme::plot_histogram, yaze::gui::Theme::plot_histogram_hovered, yaze::gui::Theme::plot_lines, yaze::gui::Theme::plot_lines_hovered, yaze::gui::Theme::popup_bg, yaze::gui::Theme::primary, ReapplyTheme(), yaze::gui::Color::red, yaze::gui::Theme::resize_grip, yaze::gui::Theme::resize_grip_active, yaze::gui::Theme::resize_grip_hovered, SaveThemeToFile(), yaze::gui::Theme::scrollbar_bg, yaze::gui::Theme::scrollbar_grab, yaze::gui::Theme::scrollbar_grab_active, yaze::gui::Theme::scrollbar_grab_hovered, yaze::gui::Theme::scrollbar_rounding, yaze::gui::Theme::secondary, yaze::gui::Theme::separator, yaze::gui::Theme::separator_active, yaze::gui::Theme::separator_hovered, yaze::util::FileDialogWrapper::ShowOpenFileDialog(), yaze::util::FileDialogWrapper::ShowSaveFileDialog(), yaze::gui::Theme::slider_grab, yaze::gui::Theme::slider_grab_active, yaze::gui::Theme::spacing_multiplier, yaze::gui::Theme::success_light, yaze::gui::Theme::surface, yaze::gui::Theme::tab, yaze::gui::Theme::tab_active, yaze::gui::Theme::tab_dimmed, yaze::gui::Theme::tab_dimmed_selected, yaze::gui::Theme::tab_hovered, yaze::gui::Theme::tab_rounding, yaze::gui::Theme::tab_unfocused, yaze::gui::Theme::tab_unfocused_active, yaze::gui::Theme::table_border_light, yaze::gui::Theme::table_border_strong, yaze::gui::Theme::table_header_bg, yaze::gui::Theme::table_row_bg, yaze::gui::Theme::table_row_bg_alt, yaze::gui::Theme::table_row_height_multiplier, yaze::gui::Theme::text_disabled, yaze::gui::Theme::text_highlight, yaze::gui::Theme::text_link, yaze::gui::Theme::text_primary, yaze::gui::Theme::text_secondary, yaze::gui::Theme::text_selected_bg, themes_, yaze::gui::Theme::title_bg, yaze::gui::Theme::title_bg_active, yaze::gui::Theme::title_bg_collapsed, yaze::gui::Theme::toolbar_height_multiplier, yaze::gui::Theme::tree_lines, yaze::gui::Theme::warning_light, yaze::gui::Theme::widget_height_multiplier, yaze::gui::Theme::window_bg, yaze::gui::Theme::window_border_size, and yaze::gui::Theme::window_rounding.

Referenced by ShowThemeSelector().

◆ GenerateThemeFromAccent()

Theme yaze::gui::ThemeManager::GenerateThemeFromAccent ( const Color & accent,
bool dark_mode = true )

Definition at line 1786 of file theme_manager.cc.

References yaze::gui::Theme::accent, yaze::gui::Theme::animation_speed, ApplySmartDefaults(), yaze::gui::Theme::author, yaze::gui::Theme::background, yaze::gui::Theme::border, yaze::gui::Theme::border_shadow, yaze::gui::Theme::button, yaze::gui::Theme::button_active, yaze::gui::Theme::button_hovered, yaze::gui::Theme::check_mark, yaze::gui::Theme::child_bg, yaze::gui::Color::Darker(), yaze::gui::Color::Desaturate(), yaze::gui::Theme::description, yaze::gui::Theme::docking_empty_bg, yaze::gui::Theme::docking_preview, yaze::gui::Theme::drag_drop_target, yaze::gui::Theme::enable_animations, yaze::gui::Theme::enable_glow_effects, yaze::gui::Theme::error, yaze::gui::Theme::frame_bg, yaze::gui::Theme::frame_bg_active, yaze::gui::Theme::frame_bg_hovered, yaze::gui::Theme::frame_border_size, yaze::gui::Theme::frame_rounding, yaze::gui::Color::FromHSL(), yaze::gui::Theme::grab_rounding, yaze::gui::Color::HSL::h, yaze::gui::Theme::header, yaze::gui::Theme::header_active, yaze::gui::Theme::header_hovered, yaze::gui::Theme::info, yaze::gui::Theme::input_text_cursor, yaze::gui::Color::Lighter(), yaze::gui::Theme::menu_bar_bg, yaze::gui::Theme::modal_bg, yaze::gui::Theme::modal_window_dim_bg, yaze::gui::Theme::name, yaze::gui::Theme::nav_cursor, yaze::gui::Theme::nav_windowing_dim_bg, yaze::gui::Theme::nav_windowing_highlight, yaze::gui::Theme::popup_bg, yaze::gui::Theme::primary, yaze::gui::Theme::resize_grip, yaze::gui::Theme::resize_grip_active, yaze::gui::Theme::resize_grip_hovered, yaze::gui::Theme::scrollbar_bg, yaze::gui::Theme::scrollbar_grab, yaze::gui::Theme::scrollbar_grab_active, yaze::gui::Theme::scrollbar_grab_hovered, yaze::gui::Theme::scrollbar_rounding, yaze::gui::Theme::secondary, yaze::gui::Theme::separator, yaze::gui::Theme::separator_active, yaze::gui::Theme::separator_hovered, yaze::gui::Color::ShiftHue(), yaze::gui::Theme::slider_grab, yaze::gui::Theme::slider_grab_active, yaze::gui::Theme::success, yaze::gui::Theme::surface, yaze::gui::Theme::tab, yaze::gui::Theme::tab_active, yaze::gui::Theme::tab_dimmed, yaze::gui::Theme::tab_dimmed_selected, yaze::gui::Theme::tab_dimmed_selected_overline, yaze::gui::Theme::tab_hovered, yaze::gui::Theme::tab_rounding, yaze::gui::Theme::tab_selected_overline, yaze::gui::Theme::tab_unfocused, yaze::gui::Theme::tab_unfocused_active, yaze::gui::Theme::table_border_light, yaze::gui::Theme::table_border_strong, yaze::gui::Theme::table_header_bg, yaze::gui::Theme::table_row_bg, yaze::gui::Theme::table_row_bg_alt, yaze::gui::Theme::text_disabled, yaze::gui::Theme::text_link, yaze::gui::Theme::text_primary, yaze::gui::Theme::text_secondary, yaze::gui::Theme::text_selected_bg, yaze::gui::Theme::title_bg, yaze::gui::Theme::title_bg_active, yaze::gui::Theme::title_bg_collapsed, yaze::gui::Color::ToHSL(), yaze::gui::Theme::tree_lines, yaze::gui::Theme::warning, yaze::gui::Theme::window_bg, yaze::gui::Theme::window_border_size, yaze::gui::Theme::window_rounding, and yaze::gui::Color::WithAlpha().

Referenced by ApplyAccentColor(), and ShowSimpleThemeEditor().

◆ ApplyAccentColor()

void yaze::gui::ThemeManager::ApplyAccentColor ( const Color & accent,
bool dark_mode = true )

Definition at line 1975 of file theme_manager.cc.

References ApplyTheme(), current_theme_, current_theme_name_, GenerateThemeFromAccent(), and NotifyThemeChanged().

Here is the call graph for this function:

◆ GetWelcomeScreenBackground()

Color yaze::gui::ThemeManager::GetWelcomeScreenBackground ( ) const

◆ GetWelcomeScreenBorder()

Color yaze::gui::ThemeManager::GetWelcomeScreenBorder ( ) const

Definition at line 805 of file theme_manager.cc.

References yaze::gui::Theme::accent, and current_theme_.

◆ GetWelcomeScreenAccent()

Color yaze::gui::ThemeManager::GetWelcomeScreenAccent ( ) const

Definition at line 809 of file theme_manager.cc.

References current_theme_, and yaze::gui::Theme::primary.

◆ ExportCurrentThemeJson()

std::string yaze::gui::ThemeManager::ExportCurrentThemeJson ( ) const

Definition at line 2202 of file theme_manager.cc.

References current_theme_, and yaze::gui::Theme::name.

◆ GetThemeColor()

Color yaze::gui::ThemeManager::GetThemeColor ( const std::string & color_name) const

◆ GetThemeColorVec4()

ImVec4 yaze::gui::ThemeManager::GetThemeColorVec4 ( const std::string & color_name) const

◆ GetPrimary()

Color yaze::gui::ThemeManager::GetPrimary ( ) const
inline

Definition at line 373 of file theme_manager.h.

References current_theme_, and yaze::gui::Theme::primary.

Referenced by yaze::gui::GetPrimary().

◆ GetPrimaryHover()

Color yaze::gui::ThemeManager::GetPrimaryHover ( ) const
inline

Definition at line 374 of file theme_manager.h.

References yaze::gui::Theme::button_hovered, and current_theme_.

Referenced by yaze::gui::GetPrimaryHover().

◆ GetPrimaryActive()

Color yaze::gui::ThemeManager::GetPrimaryActive ( ) const
inline

Definition at line 375 of file theme_manager.h.

References yaze::gui::Theme::button_active, and current_theme_.

Referenced by yaze::gui::GetPrimaryActive().

◆ GetSecondary()

Color yaze::gui::ThemeManager::GetSecondary ( ) const
inline

Definition at line 376 of file theme_manager.h.

References current_theme_, and yaze::gui::Theme::secondary.

Referenced by yaze::gui::GetSecondary().

◆ GetSurface()

Color yaze::gui::ThemeManager::GetSurface ( ) const
inline

Definition at line 377 of file theme_manager.h.

References current_theme_, and yaze::gui::Theme::surface.

Referenced by yaze::gui::GetSurface().

◆ GetSurfaceVariant()

Color yaze::gui::ThemeManager::GetSurfaceVariant ( ) const
inline

Definition at line 378 of file theme_manager.h.

References yaze::gui::Theme::child_bg, and current_theme_.

Referenced by yaze::gui::GetSurfaceVariant().

◆ GetSurfaceContainer()

Color yaze::gui::ThemeManager::GetSurfaceContainer ( ) const
inline

Definition at line 379 of file theme_manager.h.

References current_theme_, and yaze::gui::Theme::popup_bg.

Referenced by yaze::gui::GetSurfaceContainer().

◆ GetSurfaceContainerHigh()

Color yaze::gui::ThemeManager::GetSurfaceContainerHigh ( ) const
inline

Definition at line 380 of file theme_manager.h.

References current_theme_, and yaze::gui::Theme::header.

Referenced by yaze::gui::GetSurfaceContainerHigh().

◆ GetSurfaceContainerHighest()

Color yaze::gui::ThemeManager::GetSurfaceContainerHighest ( ) const
inline

◆ GetOnSurface()

Color yaze::gui::ThemeManager::GetOnSurface ( ) const
inline

Definition at line 384 of file theme_manager.h.

References current_theme_, and yaze::gui::Theme::text_primary.

Referenced by yaze::gui::GetOnSurface().

◆ GetOnSurfaceVariant()

Color yaze::gui::ThemeManager::GetOnSurfaceVariant ( ) const
inline

Definition at line 385 of file theme_manager.h.

References current_theme_, and yaze::gui::Theme::text_secondary.

Referenced by yaze::gui::GetOnSurfaceVariant().

◆ GetOnPrimary()

Color yaze::gui::ThemeManager::GetOnPrimary ( ) const
inline

Definition at line 386 of file theme_manager.h.

References current_theme_, and yaze::gui::Theme::text_primary.

Referenced by yaze::gui::GetOnPrimary().

◆ GetOutline()

Color yaze::gui::ThemeManager::GetOutline ( ) const
inline

Definition at line 387 of file theme_manager.h.

References yaze::gui::Theme::border, and current_theme_.

Referenced by yaze::gui::GetOutline().

◆ GetTextSecondary()

Color yaze::gui::ThemeManager::GetTextSecondary ( ) const
inline

Definition at line 388 of file theme_manager.h.

References current_theme_, and yaze::gui::Theme::text_secondary.

Referenced by yaze::gui::GetTextSecondary().

◆ GetTextDisabled()

Color yaze::gui::ThemeManager::GetTextDisabled ( ) const
inline

Definition at line 389 of file theme_manager.h.

References current_theme_, and yaze::gui::Theme::text_disabled.

Referenced by yaze::gui::GetTextDisabled().

◆ GetShadow()

Color yaze::gui::ThemeManager::GetShadow ( ) const
inline

Definition at line 390 of file theme_manager.h.

References yaze::gui::Theme::border_shadow, and current_theme_.

Referenced by yaze::gui::GetShadow().

◆ NotifyThemeChanged()

void yaze::gui::ThemeManager::NotifyThemeChanged ( )
private

◆ CreateFallbackYazeClassic()

void yaze::gui::ThemeManager::CreateFallbackYazeClassic ( )
private

Definition at line 363 of file theme_manager.cc.

References yaze::gui::Theme::accent, yaze::gui::Theme::AgentTheme::accent, yaze::gui::Theme::agent, yaze::gui::Theme::AgentTheme::agent_message, ApplySmartDefaults(), yaze::gui::Theme::author, yaze::gui::Theme::background, yaze::gui::Theme::border, yaze::gui::Theme::border_shadow, yaze::gui::Theme::button, yaze::gui::Theme::button_active, yaze::gui::Theme::AgentTheme::button_copy, yaze::gui::Theme::AgentTheme::button_copy_hover, yaze::gui::Theme::button_hovered, yaze::gui::Theme::check_mark, yaze::gui::Theme::child_bg, yaze::gui::Theme::AgentTheme::code_background, yaze::gui::Theme::AgentTheme::collaboration_active, yaze::gui::Theme::AgentTheme::collaboration_inactive, yaze::gui::Theme::AgentTheme::command_text, current_theme_, current_theme_name_, yaze::gui::Theme::description, yaze::gui::Theme::docking_empty_bg, yaze::gui::Theme::docking_preview, yaze::gui::Theme::drag_drop_target, yaze::gui::Theme::drag_preview, yaze::gui::Theme::DungeonColors::drag_preview, yaze::gui::Theme::drag_preview_outline, yaze::gui::Theme::DungeonColors::drag_preview_outline, yaze::gui::Theme::dungeon, yaze::gui::Theme::editor_background, yaze::gui::Theme::editor_cursor, yaze::gui::Theme::editor_grid, yaze::gui::Theme::editor_selection, yaze::gui::Theme::enable_glow_effects, yaze::gui::Theme::entrance_color, yaze::gui::Theme::error, yaze::gui::Theme::exit_color, yaze::gui::Theme::frame_rounding, yaze::gui::Theme::AgentTheme::gradient_bottom, yaze::gui::Theme::AgentTheme::gradient_top, yaze::gui::Theme::DungeonColors::grid_cell_border, yaze::gui::Theme::DungeonColors::grid_cell_highlight, yaze::gui::Theme::DungeonColors::grid_cell_selected, yaze::gui::Theme::DungeonColors::grid_text, yaze::gui::Theme::header, yaze::gui::Theme::header_active, yaze::gui::Theme::header_hovered, yaze::gui::Theme::hole_color, yaze::gui::Theme::info, yaze::gui::Theme::input_text_cursor, yaze::gui::Theme::item_color, yaze::gui::Theme::AgentTheme::json_text, yaze::gui::Theme::menu_bar_bg, yaze::gui::Theme::modal_bg, yaze::gui::Theme::modal_window_dim_bg, yaze::gui::Theme::music_zone_color, yaze::gui::Theme::name, yaze::gui::Theme::nav_cursor, yaze::gui::Theme::nav_windowing_dim_bg, yaze::gui::Theme::nav_windowing_highlight, yaze::gui::Theme::DungeonColors::object_chest, yaze::gui::Theme::DungeonColors::object_decoration, yaze::gui::Theme::DungeonColors::object_default, yaze::gui::Theme::DungeonColors::object_door, yaze::gui::Theme::DungeonColors::object_floor, yaze::gui::Theme::DungeonColors::object_pot, yaze::gui::Theme::DungeonColors::object_stairs, yaze::gui::Theme::DungeonColors::object_wall, yaze::gui::Theme::DungeonColors::outline_layer0, yaze::gui::Theme::DungeonColors::outline_layer1, yaze::gui::Theme::DungeonColors::outline_layer2, yaze::gui::Theme::AgentTheme::panel_bg, yaze::gui::Theme::AgentTheme::panel_bg_darker, yaze::gui::Theme::AgentTheme::panel_border, yaze::gui::Theme::plot_histogram, yaze::gui::Theme::plot_histogram_hovered, yaze::gui::Theme::plot_lines, yaze::gui::Theme::plot_lines_hovered, yaze::gui::Theme::popup_bg, yaze::gui::Theme::primary, yaze::gui::Theme::AgentTheme::proposal_accent, yaze::gui::Theme::AgentTheme::proposal_panel_bg, yaze::gui::Theme::AgentTheme::provider_gemini, yaze::gui::Theme::AgentTheme::provider_mock, yaze::gui::Theme::AgentTheme::provider_ollama, yaze::gui::Theme::AgentTheme::provider_openai, yaze::gui::Theme::resize_grip, yaze::gui::Theme::resize_grip_active, yaze::gui::Theme::resize_grip_hovered, yaze::gui::RGBA(), yaze::gui::Theme::DungeonColors::room_border, yaze::gui::Theme::DungeonColors::room_border_dark, yaze::gui::Theme::scrollbar_bg, yaze::gui::Theme::scrollbar_grab, yaze::gui::Theme::scrollbar_grab_active, yaze::gui::Theme::scrollbar_grab_hovered, yaze::gui::Theme::scrollbar_rounding, yaze::gui::Theme::secondary, yaze::gui::Theme::selection_handle, yaze::gui::Theme::DungeonColors::selection_handle, yaze::gui::Theme::selection_hover, yaze::gui::Theme::selection_primary, yaze::gui::Theme::DungeonColors::selection_primary, yaze::gui::Theme::selection_pulsing, yaze::gui::Theme::DungeonColors::selection_pulsing, yaze::gui::Theme::selection_secondary, yaze::gui::Theme::DungeonColors::selection_secondary, yaze::gui::Theme::separator, yaze::gui::Theme::separator_active, yaze::gui::Theme::separator_hovered, yaze::gui::Theme::slider_grab, yaze::gui::Theme::slider_grab_active, yaze::gui::Theme::sprite_color, yaze::gui::Theme::DungeonColors::sprite_layer0, yaze::gui::Theme::DungeonColors::sprite_layer1, yaze::gui::Theme::DungeonColors::sprite_layer2, yaze::gui::Theme::AgentTheme::status_active, yaze::gui::Theme::AgentTheme::status_error, yaze::gui::Theme::AgentTheme::status_inactive, yaze::gui::Theme::AgentTheme::status_success, yaze::gui::Theme::AgentTheme::status_warning, yaze::gui::Theme::success, yaze::gui::Theme::surface, yaze::gui::Theme::AgentTheme::system_message, yaze::gui::Theme::tab, yaze::gui::Theme::tab_active, yaze::gui::Theme::tab_hovered, yaze::gui::Theme::tab_rounding, yaze::gui::Theme::tab_unfocused, yaze::gui::Theme::tab_unfocused_active, yaze::gui::Theme::table_border_light, yaze::gui::Theme::table_border_strong, yaze::gui::Theme::table_header_bg, yaze::gui::Theme::table_row_bg, yaze::gui::Theme::table_row_bg_alt, yaze::gui::Theme::text_disabled, yaze::gui::Theme::text_link, yaze::gui::Theme::text_primary, yaze::gui::Theme::text_secondary, yaze::gui::Theme::AgentTheme::text_secondary, yaze::gui::Theme::text_selected_bg, themes_, yaze::gui::Theme::title_bg, yaze::gui::Theme::title_bg_active, yaze::gui::Theme::title_bg_collapsed, yaze::gui::Theme::transport_color, yaze::gui::Theme::AgentTheme::user_message, yaze::gui::Theme::warning, yaze::gui::Theme::window_bg, and yaze::gui::Theme::window_rounding.

Referenced by InitializeBuiltInThemes().

Here is the call graph for this function:

◆ ParseThemeFile()

absl::Status yaze::gui::ThemeManager::ParseThemeFile ( const std::string & content,
Theme & theme,
std::set< std::string > * declared_keys = nullptr )
private

Definition at line 1010 of file theme_manager.cc.

References yaze::gui::Theme::accent, yaze::gui::Theme::active_selection, yaze::gui::Theme::animation_speed, yaze::gui::Theme::author, yaze::gui::Theme::background, yaze::gui::Theme::border, yaze::gui::Theme::border_shadow, yaze::gui::Theme::button, yaze::gui::Theme::button_active, yaze::gui::Theme::button_hovered, yaze::gui::Theme::check_mark, yaze::gui::Theme::child_bg, yaze::gui::Theme::code_background, yaze::gui::Theme::description, yaze::gui::Theme::disabled_overlay, yaze::gui::Theme::docking_empty_bg, yaze::gui::Theme::docking_preview, yaze::gui::Theme::drag_drop_target, yaze::gui::Theme::editor_background, yaze::gui::Theme::editor_cursor, yaze::gui::Theme::editor_grid, yaze::gui::Theme::editor_selection, yaze::gui::Theme::enable_animations, yaze::gui::Theme::enable_glow_effects, yaze::gui::Theme::error, yaze::gui::Theme::error_light, yaze::gui::Theme::focus_border, yaze::gui::Theme::frame_bg, yaze::gui::Theme::frame_bg_active, yaze::gui::Theme::frame_bg_hovered, yaze::gui::Theme::frame_border_size, yaze::gui::Theme::frame_rounding, yaze::gui::Theme::grab_rounding, yaze::gui::Theme::header, yaze::gui::Theme::header_active, yaze::gui::Theme::header_hovered, yaze::gui::Theme::hover_highlight, yaze::gui::Theme::info, yaze::gui::Theme::info_light, yaze::gui::Theme::input_text_cursor, yaze::gui::Theme::link_hover, yaze::gui::Theme::menu_bar_bg, yaze::gui::Theme::modal_window_dim_bg, yaze::gui::Theme::name, yaze::gui::Theme::nav_cursor, yaze::gui::Theme::nav_windowing_dim_bg, yaze::gui::Theme::nav_windowing_highlight, ParseColorFromString(), yaze::gui::Theme::plot_histogram, yaze::gui::Theme::plot_histogram_hovered, yaze::gui::Theme::plot_lines, yaze::gui::Theme::plot_lines_hovered, yaze::gui::Theme::popup_bg, yaze::gui::Theme::primary, yaze::gui::Theme::resize_grip, yaze::gui::Theme::resize_grip_active, yaze::gui::Theme::resize_grip_hovered, yaze::gui::Theme::scrollbar_bg, yaze::gui::Theme::scrollbar_grab, yaze::gui::Theme::scrollbar_grab_active, yaze::gui::Theme::scrollbar_grab_hovered, yaze::gui::Theme::scrollbar_rounding, yaze::gui::Theme::secondary, yaze::gui::Theme::separator, yaze::gui::Theme::separator_active, yaze::gui::Theme::separator_hovered, yaze::gui::Theme::slider_grab, yaze::gui::Theme::slider_grab_active, yaze::gui::Theme::success, yaze::gui::Theme::success_light, yaze::gui::Theme::surface, yaze::gui::Theme::tab, yaze::gui::Theme::tab_active, yaze::gui::Theme::tab_dimmed, yaze::gui::Theme::tab_dimmed_selected, yaze::gui::Theme::tab_dimmed_selected_overline, yaze::gui::Theme::tab_hovered, yaze::gui::Theme::tab_rounding, yaze::gui::Theme::tab_selected_overline, yaze::gui::Theme::table_border_light, yaze::gui::Theme::table_border_strong, yaze::gui::Theme::table_header_bg, yaze::gui::Theme::table_row_bg, yaze::gui::Theme::table_row_bg_alt, yaze::gui::Theme::text_disabled, yaze::gui::Theme::text_highlight, yaze::gui::Theme::text_link, yaze::gui::Theme::text_primary, yaze::gui::Theme::text_secondary, yaze::gui::Theme::text_selected_bg, yaze::gui::Theme::title_bg, yaze::gui::Theme::title_bg_active, yaze::gui::Theme::title_bg_collapsed, yaze::gui::Theme::tree_lines, yaze::gui::Theme::warning, yaze::gui::Theme::warning_light, yaze::gui::Theme::window_bg, yaze::gui::Theme::window_border_size, and yaze::gui::Theme::window_rounding.

Referenced by LoadThemeFromFile().

Here is the call graph for this function:

◆ ApplySmartDefaults()

void yaze::gui::ThemeManager::ApplySmartDefaults ( Theme & theme,
const std::set< std::string > & declared_keys = {} )
private

Definition at line 1274 of file theme_manager.cc.

References yaze::gui::Theme::accent, yaze::gui::Theme::AgentTheme::accent, yaze::gui::Theme::active_selection, yaze::gui::Theme::agent, yaze::gui::Theme::AgentTheme::agent_message, yaze::gui::Color::alpha, yaze::gui::Theme::background, yaze::gui::Color::blue, yaze::gui::Theme::border, yaze::gui::Theme::border_shadow, yaze::gui::Theme::AgentTheme::button_copy, yaze::gui::Theme::AgentTheme::button_copy_hover, yaze::gui::Theme::check_mark, yaze::gui::Theme::child_bg, yaze::gui::Theme::code_background, yaze::gui::Theme::AgentTheme::code_background, yaze::gui::Theme::AgentTheme::collaboration_active, yaze::gui::Theme::AgentTheme::collaboration_inactive, yaze::gui::Theme::AgentTheme::command_text, yaze::gui::Theme::disabled_overlay, yaze::gui::Theme::docking_empty_bg, yaze::gui::Theme::docking_preview, yaze::gui::Theme::drag_drop_target, yaze::gui::Theme::drag_preview, yaze::gui::Theme::DungeonColors::drag_preview, yaze::gui::Theme::drag_preview_outline, yaze::gui::Theme::DungeonColors::drag_preview_outline, yaze::gui::Theme::dungeon, yaze::gui::Theme::editor_background, yaze::gui::Theme::editor_cursor, yaze::gui::Theme::editor_grid, yaze::gui::Theme::editor_selection, yaze::gui::Theme::entrance_color, yaze::gui::Theme::error, yaze::gui::Theme::error_light, yaze::gui::Theme::exit_color, yaze::gui::Theme::focus_border, yaze::gui::Theme::AgentTheme::gradient_bottom, yaze::gui::Theme::AgentTheme::gradient_top, yaze::gui::Color::green, yaze::gui::Theme::DungeonColors::grid_cell_border, yaze::gui::Theme::DungeonColors::grid_cell_highlight, yaze::gui::Theme::DungeonColors::grid_cell_selected, yaze::gui::Theme::DungeonColors::grid_text, yaze::gui::Theme::header, yaze::gui::Theme::hole_color, yaze::gui::Theme::hover_highlight, yaze::gui::Theme::info, yaze::gui::Theme::info_light, yaze::gui::Theme::input_text_cursor, yaze::gui::Theme::item_color, yaze::gui::Theme::AgentTheme::json_text, yaze::gui::Theme::link_hover, yaze::gui::Theme::modal_bg, yaze::gui::Theme::modal_window_dim_bg, yaze::gui::Theme::music_zone_color, yaze::gui::Theme::nav_cursor, yaze::gui::Theme::nav_windowing_dim_bg, yaze::gui::Theme::nav_windowing_highlight, yaze::gui::Theme::DungeonColors::object_chest, yaze::gui::Theme::DungeonColors::object_decoration, yaze::gui::Theme::DungeonColors::object_default, yaze::gui::Theme::DungeonColors::object_door, yaze::gui::Theme::DungeonColors::object_floor, yaze::gui::Theme::DungeonColors::object_pot, yaze::gui::Theme::DungeonColors::object_stairs, yaze::gui::Theme::DungeonColors::object_wall, yaze::gui::Theme::DungeonColors::outline_layer0, yaze::gui::Theme::DungeonColors::outline_layer1, yaze::gui::Theme::DungeonColors::outline_layer2, yaze::gui::Theme::AgentTheme::panel_bg, yaze::gui::Theme::AgentTheme::panel_bg_darker, yaze::gui::Theme::AgentTheme::panel_border, yaze::gui::Theme::plot_histogram, yaze::gui::Theme::plot_histogram_hovered, yaze::gui::Theme::plot_lines, yaze::gui::Theme::plot_lines_hovered, yaze::gui::Theme::popup_bg, yaze::gui::Theme::primary, yaze::gui::Theme::AgentTheme::proposal_accent, yaze::gui::Theme::AgentTheme::proposal_panel_bg, yaze::gui::Theme::AgentTheme::provider_gemini, yaze::gui::Theme::AgentTheme::provider_mock, yaze::gui::Theme::AgentTheme::provider_ollama, yaze::gui::Theme::AgentTheme::provider_openai, yaze::gui::Color::red, yaze::gui::Theme::resize_grip, yaze::gui::Theme::resize_grip_active, yaze::gui::Theme::resize_grip_hovered, yaze::gui::RGBA(), yaze::gui::Theme::DungeonColors::room_border, yaze::gui::Theme::DungeonColors::room_border_dark, yaze::gui::Theme::scrollbar_bg, yaze::gui::Theme::scrollbar_grab, yaze::gui::Theme::scrollbar_grab_active, yaze::gui::Theme::scrollbar_grab_hovered, yaze::gui::Theme::secondary, yaze::gui::Theme::selection_handle, yaze::gui::Theme::DungeonColors::selection_handle, yaze::gui::Theme::selection_hover, yaze::gui::Theme::selection_primary, yaze::gui::Theme::DungeonColors::selection_primary, yaze::gui::Theme::selection_pulsing, yaze::gui::Theme::DungeonColors::selection_pulsing, yaze::gui::Theme::selection_secondary, yaze::gui::Theme::DungeonColors::selection_secondary, yaze::gui::Theme::separator, yaze::gui::Theme::separator_active, yaze::gui::Theme::separator_hovered, yaze::gui::Theme::slider_grab, yaze::gui::Theme::slider_grab_active, yaze::gui::Theme::sprite_color, yaze::gui::Theme::DungeonColors::sprite_layer0, yaze::gui::Theme::DungeonColors::sprite_layer1, yaze::gui::Theme::DungeonColors::sprite_layer2, yaze::gui::Theme::AgentTheme::status_active, yaze::gui::Theme::AgentTheme::status_error, yaze::gui::Theme::AgentTheme::status_inactive, yaze::gui::Theme::AgentTheme::status_success, yaze::gui::Theme::AgentTheme::status_warning, yaze::gui::Theme::success, yaze::gui::Theme::success_light, yaze::gui::Theme::surface, yaze::gui::Theme::AgentTheme::system_message, yaze::gui::Theme::tab, yaze::gui::Theme::tab_active, yaze::gui::Theme::tab_dimmed, yaze::gui::Theme::tab_dimmed_selected, yaze::gui::Theme::tab_dimmed_selected_overline, yaze::gui::Theme::tab_selected_overline, yaze::gui::Theme::table_border_light, yaze::gui::Theme::table_border_strong, yaze::gui::Theme::table_header_bg, yaze::gui::Theme::table_row_bg, yaze::gui::Theme::table_row_bg_alt, yaze::gui::Theme::text_disabled, yaze::gui::Theme::text_highlight, yaze::gui::Theme::text_link, yaze::gui::Theme::text_primary, yaze::gui::Theme::text_secondary, yaze::gui::Theme::AgentTheme::text_secondary, yaze::gui::Theme::text_selected_bg, yaze::gui::Theme::transport_color, yaze::gui::Theme::tree_lines, yaze::gui::Theme::AgentTheme::user_message, yaze::gui::Theme::warning, and yaze::gui::Theme::warning_light.

Referenced by ApplyClassicYazeTheme(), CreateFallbackYazeClassic(), GenerateThemeFromAccent(), and LoadThemeFromFile().

Here is the call graph for this function:

◆ ParseColorFromString()

Color yaze::gui::ThemeManager::ParseColorFromString ( const std::string & color_str) const
private

Definition at line 1985 of file theme_manager.cc.

References yaze::gui::RGBA().

Referenced by ParseThemeFile().

Here is the call graph for this function:

◆ SerializeTheme()

std::string yaze::gui::ThemeManager::SerializeTheme ( const Theme & theme) const
private

Definition at line 2002 of file theme_manager.cc.

References yaze::gui::Theme::accent, yaze::gui::Theme::active_selection, yaze::gui::Theme::animation_speed, yaze::gui::Theme::author, yaze::gui::Theme::background, yaze::gui::Theme::border, yaze::gui::Theme::border_shadow, yaze::gui::Theme::button, yaze::gui::Theme::button_active, yaze::gui::Theme::button_hovered, yaze::gui::Theme::check_mark, yaze::gui::Theme::child_bg, yaze::gui::Theme::code_background, yaze::gui::Theme::description, yaze::gui::Theme::disabled_overlay, yaze::gui::Theme::docking_empty_bg, yaze::gui::Theme::docking_preview, yaze::gui::Theme::drag_drop_target, yaze::gui::Theme::editor_background, yaze::gui::Theme::editor_cursor, yaze::gui::Theme::editor_grid, yaze::gui::Theme::editor_selection, yaze::gui::Theme::enable_animations, yaze::gui::Theme::enable_glow_effects, yaze::gui::Theme::error, yaze::gui::Theme::error_light, yaze::gui::Theme::focus_border, yaze::gui::Theme::frame_bg, yaze::gui::Theme::frame_bg_active, yaze::gui::Theme::frame_bg_hovered, yaze::gui::Theme::frame_border_size, yaze::gui::Theme::frame_rounding, yaze::gui::Theme::grab_rounding, yaze::gui::Theme::header, yaze::gui::Theme::header_active, yaze::gui::Theme::header_hovered, yaze::gui::Theme::hover_highlight, yaze::gui::Theme::info, yaze::gui::Theme::info_light, yaze::gui::Theme::input_text_cursor, yaze::gui::Theme::link_hover, yaze::gui::Theme::menu_bar_bg, yaze::gui::Theme::modal_window_dim_bg, yaze::gui::Theme::name, yaze::gui::Theme::nav_cursor, yaze::gui::Theme::nav_windowing_dim_bg, yaze::gui::Theme::nav_windowing_highlight, yaze::gui::Theme::plot_histogram, yaze::gui::Theme::plot_histogram_hovered, yaze::gui::Theme::plot_lines, yaze::gui::Theme::plot_lines_hovered, yaze::gui::Theme::popup_bg, yaze::gui::Theme::primary, yaze::gui::Theme::resize_grip, yaze::gui::Theme::resize_grip_active, yaze::gui::Theme::resize_grip_hovered, yaze::gui::Theme::scrollbar_bg, yaze::gui::Theme::scrollbar_grab, yaze::gui::Theme::scrollbar_grab_active, yaze::gui::Theme::scrollbar_grab_hovered, yaze::gui::Theme::scrollbar_rounding, yaze::gui::Theme::secondary, yaze::gui::Theme::separator, yaze::gui::Theme::separator_active, yaze::gui::Theme::separator_hovered, yaze::gui::Theme::slider_grab, yaze::gui::Theme::slider_grab_active, yaze::gui::Theme::success, yaze::gui::Theme::success_light, yaze::gui::Theme::surface, yaze::gui::Theme::tab, yaze::gui::Theme::tab_active, yaze::gui::Theme::tab_dimmed, yaze::gui::Theme::tab_dimmed_selected, yaze::gui::Theme::tab_dimmed_selected_overline, yaze::gui::Theme::tab_hovered, yaze::gui::Theme::tab_rounding, yaze::gui::Theme::tab_selected_overline, yaze::gui::Theme::table_border_light, yaze::gui::Theme::table_border_strong, yaze::gui::Theme::table_header_bg, yaze::gui::Theme::table_row_bg, yaze::gui::Theme::table_row_bg_alt, yaze::gui::Theme::text_disabled, yaze::gui::Theme::text_highlight, yaze::gui::Theme::text_link, yaze::gui::Theme::text_primary, yaze::gui::Theme::text_secondary, yaze::gui::Theme::text_selected_bg, yaze::gui::Theme::title_bg, yaze::gui::Theme::title_bg_active, yaze::gui::Theme::title_bg_collapsed, yaze::gui::Theme::tree_lines, yaze::gui::Theme::warning, yaze::gui::Theme::warning_light, yaze::gui::Theme::window_bg, yaze::gui::Theme::window_border_size, and yaze::gui::Theme::window_rounding.

Referenced by SaveThemeToFile().

◆ GetThemeSearchPaths()

std::vector< std::string > yaze::gui::ThemeManager::GetThemeSearchPaths ( ) const
private

◆ GetThemesDirectory()

std::string yaze::gui::ThemeManager::GetThemesDirectory ( ) const
private

Definition at line 3810 of file theme_manager.cc.

References GetThemeSearchPaths().

Here is the call graph for this function:

◆ GetUserThemesDirectory()

std::string yaze::gui::ThemeManager::GetUserThemesDirectory ( ) const
private

Definition at line 3837 of file theme_manager.cc.

References yaze::util::PlatformPaths::EnsureDirectoryExists(), and yaze::util::PlatformPaths::GetConfigDirectory().

Referenced by ShowSimpleThemeEditor().

Here is the call graph for this function:

Member Data Documentation

◆ themes_

std::map<std::string, Theme> yaze::gui::ThemeManager::themes_
private

◆ theme_file_paths_

std::map<std::string, std::string> yaze::gui::ThemeManager::theme_file_paths_
private

Definition at line 399 of file theme_manager.h.

Referenced by GetCurrentThemeFilePath(), LoadThemeFromFile(), and SaveThemeToFile().

◆ current_theme_

◆ current_theme_name_

◆ preview_active_

bool yaze::gui::ThemeManager::preview_active_ = false
private

◆ preview_original_theme_

Theme yaze::gui::ThemeManager::preview_original_theme_
private

Definition at line 405 of file theme_manager.h.

Referenced by EndPreview(), and StartPreview().

◆ preview_original_name_

std::string yaze::gui::ThemeManager::preview_original_name_
private

Definition at line 406 of file theme_manager.h.

Referenced by EndPreview(), and StartPreview().

◆ initializing_built_ins_

bool yaze::gui::ThemeManager::initializing_built_ins_ = false
private

Definition at line 411 of file theme_manager.h.

Referenced by ApplyClassicYazeTheme(), and InitializeBuiltInThemes().

◆ transitioning_

bool yaze::gui::ThemeManager::transitioning_ = false
private

◆ transition_progress_

float yaze::gui::ThemeManager::transition_progress_ = 0.0f
private

Definition at line 415 of file theme_manager.h.

Referenced by ApplyClassicYazeTheme(), ApplyTheme(), LoadTheme(), and UpdateTransition().

◆ transition_from_

ImVec4 yaze::gui::ThemeManager::transition_from_[ImGuiCol_COUNT] = {}
private

Definition at line 416 of file theme_manager.h.

Referenced by ApplyTheme(), and UpdateTransition().

◆ transition_to_

ImVec4 yaze::gui::ThemeManager::transition_to_[ImGuiCol_COUNT] = {}
private

Definition at line 417 of file theme_manager.h.

Referenced by ApplyTheme(), and UpdateTransition().

◆ on_theme_changed_

ThemeChangedCallback yaze::gui::ThemeManager::on_theme_changed_
private

Definition at line 423 of file theme_manager.h.

Referenced by NotifyThemeChanged(), and SetOnThemeChangedCallback().


The documentation for this class was generated from the following files: