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 ApplyClassicYazeTheme ()
 
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)
 
void ApplySmartDefaults (Theme &theme)
 
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 277 of file theme_manager.h.

Member Typedef Documentation

◆ ThemeChangedCallback

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

Definition at line 318 of file theme_manager.h.

Constructor & Destructor Documentation

◆ ThemeManager()

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

Definition at line 375 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 185 of file theme_manager.cc.

Referenced by yaze::gui::BeginThemedTabBar(), yaze::gui::BouncyButton(), yaze::gui::Animator::ComputeStep(), yaze::gui::DangerButton(), yaze::editor::DungeonToolset::Draw(), yaze::editor::NewProjectDialog::Draw(), yaze::editor::ToastManager::Draw(), yaze::editor::DashboardPanel::Draw(), yaze::editor::DungeonStatusBar::Draw(), yaze::editor::WindowSidebar::Draw(), 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::UICoordinator::DrawCommandPalette(), yaze::editor::DungeonCanvasViewer::DrawCompactLayerToggles(), yaze::gui::DrawDisplaySettings(), yaze::gui::DrawDisplaySettingsForPopup(), yaze::gui::FlagsMenu::DrawDungeonFlags(), yaze::editor::EditorSelectionDialog::DrawEditorPanel(), yaze::editor::DashboardPanel::DrawEditorPanel(), yaze::editor::UICoordinator::DrawMenuBarExtras(), yaze::editor::SelectionPropertiesPanel::DrawNoSelection(), 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::ProjectManagementPanel::DrawQuickActions(), yaze::editor::DashboardPanel::DrawRecentEditors(), yaze::editor::PopupManager::DrawRomInfoPopup(), yaze::editor::ProjectManagementPanel::DrawRomManagement(), yaze::editor::StatusBar::DrawRomSegment(), yaze::editor::SessionCoordinator::DrawSessionIndicator(), yaze::gui::BackgroundRenderer::DrawSettingsUI(), yaze::gui::KeyboardShortcuts::DrawShortcutRow(), yaze::editor::ProjectManagementPanel::DrawStorageLocations(), yaze::editor::PopupManager::DrawSupportedFeaturesPopup(), yaze::editor::anonymous_namespace{welcome_screen.cc}::DrawThemeQuickSwitcher(), 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::GetErrorColor(), 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::GetSurface(), yaze::gui::GetSurfaceContainer(), yaze::gui::GetSurfaceContainerHigh(), yaze::gui::GetSurfaceContainerHighest(), yaze::gui::GetSurfaceVariant(), yaze::gui::GetTextDisabled(), yaze::gui::GetTextSecondary(), yaze::gui::LayoutHelpers::GetTheme(), yaze::gui::GetThemeColor(), yaze::gui::GetThemeColorVec4(), yaze::gui::GetWarningButtonColors(), yaze::gui::GetWarningColor(), 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 1931 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 3688 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 3760 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 3783 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 190 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 530 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 538 of file theme_manager.cc.

References themes_.

◆ GetCurrentTheme()

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

Definition at line 301 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::DungeonStatusBar::Draw(), yaze::editor::WindowSidebar::Draw(), 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::UICoordinator::DrawCommandPalette(), yaze::editor::DungeonCanvasViewer::DrawCompactLayerToggles(), yaze::gui::FlagsMenu::DrawDungeonFlags(), yaze::editor::EditorSelectionDialog::DrawEditorPanel(), yaze::editor::DashboardPanel::DrawEditorPanel(), yaze::editor::UICoordinator::DrawMenuBarExtras(), yaze::editor::SelectionPropertiesPanel::DrawNoSelection(), 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::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 302 of file theme_manager.h.

References current_theme_name_.

◆ GetCurrentThemeFilePath()

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

Definition at line 3787 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)

Definition at line 543 of file theme_manager.cc.

References ApplyClassicYazeTheme(), LoadTheme(), and LOG_ERROR.

Referenced by ApplyAccentColor(), EndPreview(), yaze::editor::EditorManager::InitializeServices(), ShowSimpleThemeEditor(), and StartPreview().

Here is the call graph for this function:

◆ ApplyTheme() [2/2]

◆ ApplyClassicYazeTheme()

void yaze::gui::ThemeManager::ApplyClassicYazeTheme ( )

Definition at line 1959 of file theme_manager.cc.

References yaze::gui::Theme::accent, yaze::gui::Theme::active_selection, 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::ColorsYaze(), current_theme_, current_theme_name_, 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_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_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, initializing_built_ins_, yaze::gui::Theme::input_text_cursor, yaze::gui::Theme::link_hover, 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, NotifyThemeChanged(), 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::editor::AgentUI::RefreshTheme(), yaze::gui::Theme::resize_grip, yaze::gui::Theme::resize_grip_active, yaze::gui::Theme::resize_grip_hovered, yaze::gui::RGBA(), 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::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_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, transition_progress_, transitioning_, yaze::gui::Theme::tree_lines, yaze::gui::Theme::warning, yaze::gui::Theme::warning_light, yaze::gui::Theme::window_bg, and yaze::gui::Theme::window_rounding.

Referenced by ApplyTheme(), InitializeBuiltInThemes(), ShowSimpleThemeEditor(), and ShowThemeSelector().

Here is the call graph for this function:

◆ SetOnThemeChangedCallback()

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

◆ StartPreview()

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

Definition at line 2152 of file theme_manager.cc.

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

Referenced by ShowThemeSelector().

Here is the call graph for this function:

◆ EndPreview()

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

Definition at line 2173 of file theme_manager.cc.

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

Referenced by ShowThemeSelector().

Here is the call graph for this function:

◆ IsPreviewActive()

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

Definition at line 2191 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 330 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 2195 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, LoadTheme(), 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, 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 1462 of file theme_manager.cc.

References yaze::gui::Theme::accent, 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::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 1646 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 640 of file theme_manager.cc.

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

◆ GetWelcomeScreenAccent()

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

Definition at line 644 of file theme_manager.cc.

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

◆ ExportCurrentThemeJson()

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

Definition at line 1869 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 355 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 356 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 357 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 358 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 359 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 360 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 361 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 362 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 366 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 367 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 368 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 369 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 370 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 371 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 372 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 221 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, 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 )
private

Definition at line 848 of file theme_manager.cc.

References yaze::gui::Theme::accent, 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::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::Theme::grab_rounding, 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::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::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_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::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)
private

Definition at line 1065 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, 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::AgentTheme::code_background, yaze::gui::Theme::AgentTheme::collaboration_active, yaze::gui::Theme::AgentTheme::collaboration_inactive, yaze::gui::Theme::AgentTheme::command_text, 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::exit_color, 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::info, yaze::gui::Theme::input_text_cursor, yaze::gui::Theme::item_color, yaze::gui::Theme::AgentTheme::json_text, 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::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::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_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, and yaze::gui::Theme::warning.

Referenced by 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 1656 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 1673 of file theme_manager.cc.

References yaze::gui::Theme::accent, yaze::gui::Theme::active_selection, 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_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, 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 3646 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 3673 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 381 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 387 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 388 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 393 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 397 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 398 of file theme_manager.h.

Referenced by ApplyTheme(), and UpdateTransition().

◆ transition_to_

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

Definition at line 399 of file theme_manager.h.

Referenced by ApplyTheme(), and UpdateTransition().

◆ on_theme_changed_

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

Definition at line 405 of file theme_manager.h.

Referenced by NotifyThemeChanged(), and SetOnThemeChangedCallback().


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