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

Central registry for all editor cards with session awareness and dependency injection. More...

#include <workspace_window_manager.h>

Classes

struct  CategoryTheme
 Get the expressive theme color for a category. More...
 
struct  ResourceWindowState
 
struct  SidePanelWidthBounds
 
struct  WindowBrowserState
 
struct  WindowContextScopeHash
 
struct  WindowRegistryState
 
struct  WindowSessionState
 
struct  WindowValidationResult
 
struct  WorkspacePreset
 

Public Member Functions

 WorkspaceWindowManager ()=default
 
 ~WorkspaceWindowManager ()=default
 
 WorkspaceWindowManager (const WorkspaceWindowManager &)=delete
 
WorkspaceWindowManageroperator= (const WorkspaceWindowManager &)=delete
 
 WorkspaceWindowManager (WorkspaceWindowManager &&)=delete
 
WorkspaceWindowManageroperator= (WorkspaceWindowManager &&)=delete
 
void RegisterSession (size_t session_id)
 
void UnregisterSession (size_t session_id)
 
void SetActiveSession (size_t session_id)
 
void SetContextKey (size_t session_id, WindowContextScope scope, std::string key)
 Set a string key for a given context scope (room/selection/etc)
 
std::string GetContextKey (size_t session_id, WindowContextScope scope) const
 
void RegisterPanel (size_t session_id, const WindowDescriptor &base_info)
 
void RegisterWindow (size_t session_id, const WindowDescriptor &descriptor)
 
void RegisterPanelAlias (const std::string &legacy_base_id, const std::string &canonical_base_id)
 Register a legacy panel ID alias that resolves to a canonical ID.
 
void RegisterWindowAlias (const std::string &legacy_base_id, const std::string &canonical_base_id)
 
std::string ResolvePanelAlias (const std::string &panel_id) const
 Resolve a panel ID through the alias table.
 
std::string ResolveWindowAlias (const std::string &window_id) const
 
void RegisterPanel (size_t session_id, const std::string &card_id, const std::string &display_name, const std::string &icon, const std::string &category, const std::string &shortcut_hint="", int priority=50, std::function< void()> on_show=nullptr, std::function< void()> on_hide=nullptr, bool visible_by_default=false)
 
void RegisterWindow (size_t session_id, const std::string &window_id, const std::string &display_name, const std::string &icon, const std::string &category, const std::string &shortcut_hint="", int priority=50, std::function< void()> on_show=nullptr, std::function< void()> on_hide=nullptr, bool visible_by_default=false)
 
void UnregisterPanel (size_t session_id, const std::string &base_card_id)
 
void UnregisterWindow (size_t session_id, const std::string &base_window_id)
 
void UnregisterPanelsWithPrefix (const std::string &prefix)
 
void ClearAllPanels ()
 
void ClearAllWindows ()
 
void RegisterRegistryWindowContent (std::unique_ptr< WindowContent > window)
 Register a ContentRegistry-managed WindowContent instance.
 
void RegisterRegistryWindow (std::unique_ptr< WindowContent > window)
 
void RegisterRegistryWindowContentsForSession (size_t session_id)
 Register descriptors for all registry window contents in a session.
 
void RegisterRegistryWindowsForSession (size_t session_id)
 
size_t GetRegistryWindowContentCount () const
 Returns the number of window contents registered via ContentRegistry.
 
size_t GetRegistryWindowCount () const
 
void RegisterWindowContent (std::unique_ptr< WindowContent > window)
 Register a WindowContent instance for central drawing.
 
void UnregisterWindowContent (const std::string &window_id)
 Unregister and destroy a WindowContent instance.
 
WindowContentGetWindowContent (const std::string &window_id)
 Get a WindowContent instance by ID.
 
void DrawAllVisiblePanels ()
 Draw all visible WindowContent instances (central drawing)
 
void DrawVisibleWindows ()
 
void OnEditorSwitch (const std::string &from_category, const std::string &to_category)
 Handle editor/category switching for panel visibility.
 
bool OpenWindow (size_t session_id, const std::string &base_window_id)
 
bool CloseWindow (size_t session_id, const std::string &base_window_id)
 
bool ToggleWindow (size_t session_id, const std::string &base_window_id)
 
bool IsWindowOpen (size_t session_id, const std::string &base_window_id) const
 
bool * GetWindowVisibilityFlag (size_t session_id, const std::string &base_window_id)
 
void ShowAllWindowsInSession (size_t session_id)
 
void HideAllWindowsInSession (size_t session_id)
 
void ShowAllWindowsInCategory (size_t session_id, const std::string &category)
 
void HideAllWindowsInCategory (size_t session_id, const std::string &category)
 
void ShowOnlyWindow (size_t session_id, const std::string &base_window_id)
 
void ShowAllPanelsInSession (size_t session_id)
 
void HideAllPanelsInSession (size_t session_id)
 
void ShowAllPanelsInCategory (size_t session_id, const std::string &category)
 
void HideAllPanelsInCategory (size_t session_id, const std::string &category)
 
void ShowOnlyPanel (size_t session_id, const std::string &base_card_id)
 
std::vector< std::string > GetWindowsInSession (size_t session_id) const
 
std::vector< WindowDescriptorGetWindowsInCategory (size_t session_id, const std::string &category) const
 
std::vector< std::string > GetAllCategories (size_t session_id) const
 
std::vector< std::string > GetAllWindowCategories (size_t session_id) const
 
const WindowDescriptorGetWindowDescriptor (size_t session_id, const std::string &base_window_id) const
 
const std::unordered_map< std::string, WindowDescriptor > & GetAllWindowDescriptors () const
 Get all panel descriptors (for layout designer, panel browser, etc.)
 
std::vector< std::string > GetAllCategories () const
 
std::vector< std::string > GetAllWindowCategories () const
 
std::vector< std::string > GetVisibleWindowIds (size_t session_id) const
 Get list of currently visible panel IDs for a session.
 
void SetVisibleWindows (size_t session_id, const std::vector< std::string > &window_ids)
 Set which panels should be visible for a session.
 
std::unordered_map< std::string, bool > SerializeVisibilityState (size_t session_id) const
 Serialize panel visibility state for persistence.
 
void RestoreVisibilityState (size_t session_id, const std::unordered_map< std::string, bool > &state, bool publish_events=false)
 Restore panel visibility state from persistence.
 
std::unordered_map< std::string, bool > SerializePinnedState () const
 Serialize pinned panel state for persistence.
 
void RestorePinnedState (const std::unordered_map< std::string, bool > &state)
 Restore pinned panel state from persistence.
 
std::string GetWorkspaceWindowName (size_t session_id, const std::string &base_window_id) const
 Resolve the exact ImGui window name for a panel by base ID.
 
std::string GetWorkspaceWindowName (const WindowDescriptor &descriptor) const
 
float GetActiveSidePanelWidth (float viewport_width) const
 
void SetActiveSidePanelWidth (float width, float viewport_width=0.0f, bool notify=true)
 
void ResetSidePanelWidth (bool notify=true)
 
float GetStoredSidePanelWidth () const
 
void SetStoredSidePanelWidth (float width, bool notify=false)
 
void SetSidePanelWidthChangedCallback (std::function< void(float)> cb)
 
float GetPanelBrowserCategoryWidth () const
 
float GetWindowBrowserCategoryWidth () const
 
void SetPanelBrowserCategoryWidth (float width, bool notify=true)
 
void SetWindowBrowserCategoryWidth (float width, bool notify=true)
 
void SetPanelBrowserCategoryWidthChangedCallback (std::function< void(float)> cb)
 
void SetWindowBrowserCategoryWidthChangedCallback (std::function< void(float)> cb)
 
 YAZE_CARD_SHIM_DEPRECATED ("Use GetDefaultWindowBrowserCategoryWidth() instead.") static const expr float GetDefaultPanelBrowserCategoryWidth()
 
void HandleSidebarKeyboardNav (size_t session_id, const std::vector< WindowDescriptor > &cards)
 Handle keyboard navigation in sidebar (click-to-focus modal)
 
bool SidebarHasFocus () const
 
int GetFocusedPanelIndex () const
 
int GetFocusedWindowIndex () const
 
void ToggleSidebarVisibility ()
 
void SetSidebarVisible (bool visible, bool notify=true)
 
bool IsSidebarVisible () const
 
void ToggleWindowImplExpanded ()
 
void ToggleSidebarExpanded ()
 
void SetPanelExpanded (bool expanded, bool notify=true)
 
void SetSidebarExpanded (bool expanded, bool notify=true)
 
bool IsPanelExpanded () const
 
bool IsSidebarExpanded () const
 
void SetEventBus (EventBus *event_bus)
 
void TriggerShowEmulator ()
 
void TriggerShowSettings ()
 
void TriggerShowPanelBrowser ()
 
void TriggerShowWindowBrowser ()
 
void TriggerSaveRom ()
 
void TriggerUndo ()
 
void TriggerRedo ()
 
void TriggerShowSearch ()
 
void TriggerShowShortcuts ()
 
void TriggerShowCommandPalette ()
 
void TriggerShowHelp ()
 
void TriggerShowAgentChatSidebar ()
 
void TriggerShowAgentProposalsSidebar ()
 
void TriggerResetLayout ()
 
void TriggerOpenRom ()
 
void TriggerPanelClicked (const std::string &category)
 
void TriggerWindowClicked (const std::string &category)
 
void TriggerCategorySelected (const std::string &category)
 
void TriggerWindowCategorySelected (const std::string &category)
 
void SetSidebarStateChangedCallback (std::function< void(bool, bool)> cb)
 
void SetCategoryChangedCallback (std::function< void(const std::string &)> cb)
 
void SavePreset (const std::string &name, const std::string &description="")
 
bool LoadPreset (const std::string &name)
 
void DeletePreset (const std::string &name)
 
std::vector< WorkspacePresetGetPresets () const
 
std::vector< WindowValidationResultValidateWindows () const
 
WindowValidationResult ValidateWindow (const std::string &card_id) const
 
void ShowAll (size_t session_id)
 
void HideAll (size_t session_id)
 
void ResetToDefaults (size_t session_id)
 
void ResetToDefaults (size_t session_id, EditorType editor_type)
 
size_t GetPanelCount () const
 
size_t GetWindowCount () const
 
size_t GetVisibleWindowCount (size_t session_id) const
 
size_t GetVisiblePanelCount (size_t session_id) const
 
size_t GetSessionCount () const
 
std::string MakeWindowId (size_t session_id, const std::string &base_id) const
 
std::string MakeWindowId (size_t session_id, const std::string &base_id, WindowScope scope) const
 
std::string MakePanelId (size_t session_id, const std::string &base_id) const
 
std::string MakePanelId (size_t session_id, const std::string &base_id, WindowScope scope) const
 
bool ShouldPrefixPanels () const
 
void RegisterPanel (const WindowDescriptor &base_info)
 
void RegisterWindow (const WindowDescriptor &descriptor)
 
void UnregisterPanel (const std::string &base_card_id)
 
void UnregisterWindow (const std::string &base_window_id)
 
bool OpenWindow (const std::string &base_window_id)
 
bool CloseWindow (const std::string &base_window_id)
 
bool IsWindowOpen (const std::string &base_window_id) const
 
void HideAllWindowsInCategory (const std::string &category)
 
void HideAllPanelsInCategory (const std::string &category)
 
std::string GetActiveCategory () const
 
void SetActiveCategory (const std::string &category, bool notify=true)
 
void ShowAllWindowsInCategory (const std::string &category)
 
void ShowAllPanelsInCategory (const std::string &category)
 
bool * GetWindowVisibilityFlag (const std::string &base_window_id)
 
void ShowAll ()
 
void HideAll ()
 
void SetOnWindowClickedCallback (std::function< void(const std::string &)> callback)
 
void SetOnWindowCategorySelectedCallback (std::function< void(const std::string &)> callback)
 
void SetEditorResolver (std::function< Editor *(const std::string &)> resolver)
 
size_t GetActiveSessionId () const
 
FileBrowserGetFileBrowser (const std::string &category)
 
void EnableFileBrowser (const std::string &category, const std::string &root_path="")
 
void DisableFileBrowser (const std::string &category)
 
bool HasFileBrowser (const std::string &category) const
 
void SetFileBrowserPath (const std::string &category, const std::string &path)
 
void SetFileClickedCallback (std::function< void(const std::string &category, const std::string &path)> callback)
 
void ToggleFavorite (const std::string &card_id)
 
bool IsFavorite (const std::string &card_id) const
 
void MarkWindowRecentlyUsed (const std::string &window_id)
 
std::vector< WindowDescriptorGetWindowsSortedByMRU (size_t session_id, const std::string &category) const
 
uint64_t GetWindowMRUTime (const std::string &window_id) const
 
void SetWindowPinned (size_t session_id, const std::string &base_window_id, bool pinned)
 
bool IsWindowPinned (size_t session_id, const std::string &base_window_id) const
 
std::vector< std::string > GetPinnedWindows (size_t session_id) const
 
void SetWindowPinned (const std::string &base_window_id, bool pinned)
 
bool IsWindowPinned (const std::string &base_window_id) const
 
std::vector< std::string > GetPinnedWindows () const
 
void EnforceResourceLimits (const std::string &resource_type)
 Enforce limits on resource panels (LRU eviction)
 
void EnforceResourceWindowLimits (const std::string &resource_type)
 
void MarkPanelUsed (const std::string &panel_id)
 Mark a panel as recently used (for LRU)
 
WindowContentFindPanelInstance (const std::string &prefixed_panel_id, const std::string &base_panel_id)
 
const WindowContentFindPanelInstance (const std::string &prefixed_panel_id, const std::string &base_panel_id) const
 

Static Public Member Functions

static constexpr float GetSidebarWidth ()
 
static constexpr float GetSidePanelWidth ()
 
static SidePanelWidthBounds GetSidePanelWidthBounds (float viewport_width)
 
static float GetSidePanelWidthForViewport (float viewport_width)
 
static constexpr float GetDefaultWindowBrowserCategoryWidth ()
 
static constexpr float GetCollapsedSidebarWidth ()
 
static std::string GetCategoryIcon (const std::string &category)
 
static CategoryTheme GetCategoryTheme (const std::string &category)
 

Static Public Attributes

static constexpr const char * kDashboardCategory = "Dashboard"
 

Private Member Functions

void ApplyContextPolicy (size_t session_id, WindowContextScope scope, const std::string &old_key, const std::string &new_key)
 
WindowDescriptorFindDescriptorByPrefixedId (const std::string &prefixed_id)
 
const WindowDescriptorFindDescriptorByPrefixedId (const std::string &prefixed_id) const
 
std::vector< std::string > * FindSessionWindowIds (size_t session_id)
 
const std::vector< std::string > * FindSessionWindowIds (size_t session_id) const
 
std::unordered_map< std::string, std::string > * FindSessionWindowMapping (size_t session_id)
 
const std::unordered_map< std::string, std::string > * FindSessionWindowMapping (size_t session_id) const
 
std::unordered_map< std::string, std::string > * FindSessionReverseWindowMapping (size_t session_id)
 
const std::unordered_map< std::string, std::string > * FindSessionReverseWindowMapping (size_t session_id) const
 
void PublishWindowVisibilityChanged (size_t session_id, const std::string &prefixed_window_id, const std::string &base_window_id, const std::string &category, bool visible) const
 
bool OpenWindowImpl (size_t session_id, const std::string &base_card_id)
 
bool CloseWindowImpl (size_t session_id, const std::string &base_card_id)
 
bool ToggleWindowImpl (size_t session_id, const std::string &base_card_id)
 
bool IsWindowVisibleImpl (size_t session_id, const std::string &base_card_id) const
 
bool * GetVisibilityFlag (size_t session_id, const std::string &base_card_id)
 
std::vector< std::string > GetWindowsInSessionImpl (size_t session_id) const
 
std::vector< WindowDescriptorGetWindowsInCategoryImpl (size_t session_id, const std::string &category) const
 
std::vector< std::string > GetVisibleWindowIdsImpl (size_t session_id) const
 
void SetVisibleWindowsImpl (size_t session_id, const std::vector< std::string > &panel_ids)
 
const WindowDescriptorGetWindowDescriptorImpl (size_t session_id, const std::string &base_card_id) const
 
std::string GetWindowNameImpl (size_t session_id, const std::string &base_card_id) const
 
std::string GetWindowNameImpl (const WindowDescriptor &descriptor) const
 
void MarkWindowRecentlyUsedImpl (const std::string &card_id)
 
std::vector< WindowDescriptorGetWindowsSortedByMRUImpl (size_t session_id, const std::string &category) const
 
uint64_t GetWindowMRUTimeImpl (const std::string &card_id) const
 
void SetWindowPinnedImpl (size_t session_id, const std::string &base_card_id, bool pinned)
 
bool IsWindowPinnedImpl (size_t session_id, const std::string &base_card_id) const
 
std::vector< std::string > GetPinnedWindowsImpl (size_t session_id) const
 
void RememberPinnedStateForRemovedWindow (size_t session_id, const std::string &base_card_id, const std::string &prefixed_id)
 
void SetWindowPinnedImpl (const std::string &base_card_id, bool pinned)
 
bool IsWindowPinnedImpl (const std::string &base_card_id) const
 
std::vector< std::string > GetPinnedWindowsImpl () const
 
size_t GetResourceWindowLimit (const std::string &resource_type) const
 
void TrackResourceWindow (const std::string &panel_id, ResourceWindowContent *resource_panel)
 
void UntrackResourceWindow (const std::string &panel_id)
 
std::string SelectResourceWindowForEviction (const std::list< std::string > &panel_ids) const
 
std::string ResolveBaseWindowId (const std::string &panel_id) const
 
std::string GetBaseIdForPrefixedId (size_t session_id, const std::string &prefixed_id) const
 
void UpdateSessionCount ()
 
std::string GetPrefixedWindowId (size_t session_id, const std::string &base_id) const
 
void RegisterPanelDescriptorForSession (size_t session_id, const WindowContent &panel)
 
void TrackPanelForSession (size_t session_id, const std::string &base_id, const std::string &panel_id)
 
void UnregisterSessionPanels (size_t session_id)
 
void SavePresetsToFile ()
 
void LoadPresetsFromFile ()
 

Private Attributes

ResourceWindowState resource_state_
 
std::unordered_map< std::string, std::list< std::string > > & resource_panels_
 
std::unordered_map< std::string, std::string > & panel_resource_types_
 
WindowRegistryState registry_state_
 
WindowSessionState session_state_
 
std::unordered_map< std::string, WindowDescriptor > & cards_
 
std::unordered_map< std::string, std::unique_ptr< WindowContent > > & panel_instances_ = registry_state_.instances
 
std::unordered_set< std::string > & registry_panel_ids_
 
std::unordered_set< std::string > & global_panel_ids_
 
std::unordered_map< std::string, bool > & centralized_visibility_
 
std::unordered_map< std::string, std::string > & panel_id_aliases_
 
std::unordered_map< std::string, uint64_t > & last_used_at_
 
uint64_t & mru_counter_ = session_state_.mru_counter
 
std::unordered_map< std::string, bool > & pinned_panels_
 
std::unordered_map< std::string, bool > & pending_pinned_base_ids_
 
size_t & session_count_ = session_state_.session_count
 
size_t & active_session_ = session_state_.active_session
 
std::unordered_map< size_t, std::vector< std::string > > & session_cards_
 
std::unordered_map< size_t, std::unordered_map< std::string, std::string > > & session_card_mapping_ = session_state_.session_window_mapping
 
std::unordered_map< size_t, std::unordered_map< std::string, std::string > > & session_reverse_card_mapping_
 
std::unordered_map< size_t, std::unordered_map< WindowContextScope, std::string, WindowContextScopeHash > > & session_context_keys_ = session_state_.session_context_keys
 
std::unordered_map< std::string, WorkspacePresetpresets_
 
WindowBrowserState browser_state_
 
EventBusevent_bus_ = nullptr
 
std::function< void(const std::string &, const std::string &) on_file_clicked_ )
 
std::function< Editor *(const std::string &) editor_resolver_ )
 

Detailed Description

Central registry for all editor cards with session awareness and dependency injection.

Definition at line 119 of file workspace_window_manager.h.

Constructor & Destructor Documentation

◆ WorkspaceWindowManager() [1/3]

yaze::editor::WorkspaceWindowManager::WorkspaceWindowManager ( )
default

◆ ~WorkspaceWindowManager()

yaze::editor::WorkspaceWindowManager::~WorkspaceWindowManager ( )
default

◆ WorkspaceWindowManager() [2/3]

yaze::editor::WorkspaceWindowManager::WorkspaceWindowManager ( const WorkspaceWindowManager & )
delete

◆ WorkspaceWindowManager() [3/3]

yaze::editor::WorkspaceWindowManager::WorkspaceWindowManager ( WorkspaceWindowManager && )
delete

Member Function Documentation

◆ operator=() [1/2]

WorkspaceWindowManager & yaze::editor::WorkspaceWindowManager::operator= ( const WorkspaceWindowManager & )
delete

◆ operator=() [2/2]

WorkspaceWindowManager & yaze::editor::WorkspaceWindowManager::operator= ( WorkspaceWindowManager && )
delete

◆ RegisterSession()

◆ UnregisterSession()

◆ SetActiveSession()

void yaze::editor::WorkspaceWindowManager::SetActiveSession ( size_t session_id)

◆ SetContextKey()

void yaze::editor::WorkspaceWindowManager::SetContextKey ( size_t session_id,
WindowContextScope scope,
std::string key )

Set a string key for a given context scope (room/selection/etc)

This is an opt-in policy hook. WorkspaceWindowManager can apply default rules when context becomes invalid (e.g., selection cleared) to avoid stale panels.

Definition at line 83 of file workspace_window_manager_state.cc.

References ApplyContextPolicy(), RegisterSession(), yaze::editor::WorkspaceWindowManager::WindowSessionState::session_context_keys, and session_state_.

Here is the call graph for this function:

◆ GetContextKey()

std::string yaze::editor::WorkspaceWindowManager::GetContextKey ( size_t session_id,
WindowContextScope scope ) const

◆ RegisterPanel() [1/3]

◆ RegisterWindow() [1/3]

◆ RegisterPanelAlias()

void yaze::editor::WorkspaceWindowManager::RegisterPanelAlias ( const std::string & legacy_base_id,
const std::string & canonical_base_id )

Register a legacy panel ID alias that resolves to a canonical ID.

Use this when a panel has been renamed but persisted layout/user settings may still reference the old ID.

Definition at line 111 of file workspace_window_manager_state.cc.

References panel_id_aliases_.

Referenced by yaze::editor::DungeonEditorV2::Initialize(), yaze::editor::OverworldEditor::Load(), yaze::editor::EditorManager::RegisterEmulatorPanels(), yaze::editor::WindowHost::RegisterPanelAlias(), and RegisterWindowAlias().

◆ RegisterWindowAlias()

void yaze::editor::WorkspaceWindowManager::RegisterWindowAlias ( const std::string & legacy_base_id,
const std::string & canonical_base_id )
inline

Definition at line 173 of file workspace_window_manager.h.

References RegisterPanelAlias().

Here is the call graph for this function:

◆ ResolvePanelAlias()

std::string yaze::editor::WorkspaceWindowManager::ResolvePanelAlias ( const std::string & panel_id) const

Resolve a panel ID through the alias table.

Returns
Canonical panel ID if alias exists, otherwise input ID.

Definition at line 120 of file workspace_window_manager_state.cc.

References ResolveBaseWindowId().

Referenced by ResolveWindowAlias().

Here is the call graph for this function:

◆ ResolveWindowAlias()

std::string yaze::editor::WorkspaceWindowManager::ResolveWindowAlias ( const std::string & window_id) const
inline

Definition at line 183 of file workspace_window_manager.h.

References ResolvePanelAlias().

Referenced by yaze::editor::WindowHost::ResolveWindowId().

Here is the call graph for this function:

◆ RegisterPanel() [2/3]

void yaze::editor::WorkspaceWindowManager::RegisterPanel ( size_t session_id,
const std::string & card_id,
const std::string & display_name,
const std::string & icon,
const std::string & category,
const std::string & shortcut_hint = "",
int priority = 50,
std::function< void()> on_show = nullptr,
std::function< void()> on_hide = nullptr,
bool visible_by_default = false )

◆ RegisterWindow() [2/3]

void yaze::editor::WorkspaceWindowManager::RegisterWindow ( size_t session_id,
const std::string & window_id,
const std::string & display_name,
const std::string & icon,
const std::string & category,
const std::string & shortcut_hint = "",
int priority = 50,
std::function< void()> on_show = nullptr,
std::function< void()> on_hide = nullptr,
bool visible_by_default = false )
inline

Definition at line 195 of file workspace_window_manager.h.

References RegisterPanel().

Here is the call graph for this function:

◆ UnregisterPanel() [1/2]

void yaze::editor::WorkspaceWindowManager::UnregisterPanel ( size_t session_id,
const std::string & base_card_id )

◆ UnregisterWindow() [1/2]

void yaze::editor::WorkspaceWindowManager::UnregisterWindow ( size_t session_id,
const std::string & base_window_id )
inline

◆ UnregisterPanelsWithPrefix()

void yaze::editor::WorkspaceWindowManager::UnregisterPanelsWithPrefix ( const std::string & prefix)

◆ ClearAllPanels()

◆ ClearAllWindows()

void yaze::editor::WorkspaceWindowManager::ClearAllWindows ( )
inline

Definition at line 213 of file workspace_window_manager.h.

References ClearAllPanels().

Here is the call graph for this function:

◆ RegisterRegistryWindowContent()

void yaze::editor::WorkspaceWindowManager::RegisterRegistryWindowContent ( std::unique_ptr< WindowContent > window)

Register a ContentRegistry-managed WindowContent instance.

Parameters
windowThe window content to register (ownership transferred)

Registry window contents are stored without auto-registering descriptors. Call RegisterRegistryWindowContentsForSession() to add descriptors per session.

Definition at line 551 of file workspace_window_manager.cc.

References EnforceResourceWindowLimits(), global_panel_ids_, yaze::editor::kGlobal, LOG_ERROR, LOG_INFO, LOG_WARN, panel_instances_, registry_panel_ids_, and TrackResourceWindow().

Referenced by yaze::editor::EditorManager::RegisterEditors(), and RegisterRegistryWindow().

Here is the call graph for this function:

◆ RegisterRegistryWindow()

void yaze::editor::WorkspaceWindowManager::RegisterRegistryWindow ( std::unique_ptr< WindowContent > window)
inline

Definition at line 228 of file workspace_window_manager.h.

References RegisterRegistryWindowContent().

Here is the call graph for this function:

◆ RegisterRegistryWindowContentsForSession()

void yaze::editor::WorkspaceWindowManager::RegisterRegistryWindowContentsForSession ( size_t session_id)

Register descriptors for all registry window contents in a session.

Parameters
session_idThe session to register descriptors for

Safe to call multiple times; descriptors are only created once.

Definition at line 588 of file workspace_window_manager.cc.

References panel_instances_, RegisterPanelDescriptorForSession(), RegisterSession(), and registry_panel_ids_.

Referenced by yaze::editor::EditorManager::HandleSessionCreated(), and RegisterRegistryWindowsForSession().

Here is the call graph for this function:

◆ RegisterRegistryWindowsForSession()

void yaze::editor::WorkspaceWindowManager::RegisterRegistryWindowsForSession ( size_t session_id)
inline

Definition at line 239 of file workspace_window_manager.h.

References RegisterRegistryWindowContentsForSession().

Here is the call graph for this function:

◆ GetRegistryWindowContentCount()

size_t yaze::editor::WorkspaceWindowManager::GetRegistryWindowContentCount ( ) const
inline

Returns the number of window contents registered via ContentRegistry.

Definition at line 244 of file workspace_window_manager.h.

References yaze::editor::WorkspaceWindowManager::WindowRegistryState::registry_ids, and registry_state_.

Referenced by GetRegistryWindowCount().

◆ GetRegistryWindowCount()

size_t yaze::editor::WorkspaceWindowManager::GetRegistryWindowCount ( ) const
inline

Definition at line 247 of file workspace_window_manager.h.

References GetRegistryWindowContentCount().

Here is the call graph for this function:

◆ RegisterWindowContent()

void yaze::editor::WorkspaceWindowManager::RegisterWindowContent ( std::unique_ptr< WindowContent > window)

Register a WindowContent instance for central drawing.

Parameters
windowThe window content to register (ownership transferred)

This method:

  1. Stores the WindowContent instance
  2. Auto-registers a WindowDescriptor for sidebar/menu visibility
  3. Window content will be drawn by DrawAllVisiblePanels()

Definition at line 600 of file workspace_window_manager.cc.

References active_session_, yaze::editor::WindowDescriptor::display_name, EnforceResourceWindowLimits(), LOG_ERROR, LOG_INFO, LOG_WARN, OpenWindowImpl(), panel_instances_, RegisterPanel(), and TrackResourceWindow().

Referenced by yaze::editor::AgentEditor::Initialize(), yaze::editor::AssemblyEditor::Initialize(), yaze::editor::SpriteEditor::Initialize(), yaze::editor::EditorManager::InitializeSubsystems(), and yaze::editor::DungeonEditorV2::Load().

Here is the call graph for this function:

◆ UnregisterWindowContent()

void yaze::editor::WorkspaceWindowManager::UnregisterWindowContent ( const std::string & window_id)

Unregister and destroy a WindowContent instance.

Parameters
window_idThe window ID to unregister

Definition at line 687 of file workspace_window_manager.cc.

References active_session_, yaze::gui::Animator::ClearAnimationsForPanel(), yaze::gui::GetAnimator(), global_panel_ids_, LOG_INFO, panel_instances_, registry_panel_ids_, UnregisterPanel(), and UntrackResourceWindow().

Referenced by EnforceResourceLimits().

Here is the call graph for this function:

◆ GetWindowContent()

WindowContent * yaze::editor::WorkspaceWindowManager::GetWindowContent ( const std::string & window_id)

◆ DrawAllVisiblePanels()

void yaze::editor::WorkspaceWindowManager::DrawAllVisiblePanels ( )

Draw all visible WindowContent instances (central drawing)

Call this once per frame to draw all windows that have WindowContent implementations. Windows without WindowContent instances are skipped (they use manual drawing).

Definition at line 742 of file workspace_window_manager.cc.

References yaze::editor::WorkspaceWindowManager::WindowBrowserState::active_category, active_session_, yaze::gui::PanelWindow::Begin(), browser_state_, cards_, yaze::editor::WindowDescriptor::category, yaze::gui::PanelWindow::Center, yaze::editor::WindowDescriptor::display_name, yaze::editor::WindowContent::DrawWithLazyInit(), editor_resolver_, yaze::gui::PanelWindow::End(), FindPanelInstance(), yaze::gui::GetAnimator(), GetBaseIdForPrefixedId(), yaze::editor::WindowContent::GetDisplayName(), yaze::editor::WindowContent::GetEditorCategory(), yaze::editor::WindowContent::GetIcon(), yaze::editor::WindowContent::GetPreferredWidth(), yaze::editor::WindowDescriptor::icon, yaze::gui::LayoutHelpers::IsTouchDevice(), IsWindowPinnedImpl(), kDashboardCategory, yaze::gui::kRelaxed, yaze::gui::kSnappy, yaze::gui::kStandard, yaze::editor::WindowContent::OnClose(), session_cards_, yaze::editor::ContentRegistry::Context::SetCurrentEditor(), yaze::gui::PanelWindow::SetDefaultSize(), yaze::gui::PanelWindow::SetPinChangedCallback(), yaze::gui::PanelWindow::SetPinnable(), yaze::gui::PanelWindow::SetPinned(), yaze::gui::PanelWindow::SetPosition(), yaze::gui::PanelWindow::SetStableId(), SetWindowPinnedImpl(), and yaze::editor::WindowDescriptor::visibility_flag.

Referenced by DrawVisibleWindows().

◆ DrawVisibleWindows()

void yaze::editor::WorkspaceWindowManager::DrawVisibleWindows ( )
inline

Definition at line 283 of file workspace_window_manager.h.

References DrawAllVisiblePanels().

Referenced by yaze::editor::EditorManager::DrawInterface().

Here is the call graph for this function:

◆ OnEditorSwitch()

void yaze::editor::WorkspaceWindowManager::OnEditorSwitch ( const std::string & from_category,
const std::string & to_category )

Handle editor/category switching for panel visibility.

Parameters
from_categoryThe category being switched away from
to_categoryThe category being switched to

This method:

  1. Hides non-pinned, non-persistent panels from the previous category
  2. Shows default panels for the new category
  3. Updates the active category

Definition at line 895 of file workspace_window_manager.cc.

References active_session_, yaze::gui::Animator::BeginPanelTransition(), yaze::gui::GetAnimator(), GetPrefixedWindowId(), GetWindowsInCategoryImpl(), yaze::gui::kFade, LOG_INFO, and SetActiveCategory().

Referenced by yaze::editor::EditorActivator::ActivatePanelBasedEditor(), and yaze::editor::EditorActivator::DeactivatePanelBasedEditor().

◆ OpenWindow() [1/2]

bool yaze::editor::WorkspaceWindowManager::OpenWindow ( size_t session_id,
const std::string & base_window_id )
inline

Definition at line 302 of file workspace_window_manager.h.

References OpenWindowImpl().

Referenced by yaze::editor::MenuOrchestrator::AddHackWorkflowMenuItems(), yaze::editor::LayoutCoordinator::ApplyLayoutPreset(), yaze::editor::WindowBrowser::Draw(), yaze::editor::WindowSidebar::Draw(), yaze::editor::UICoordinator::DrawPanelFinder(), yaze::editor::OverworldCanvasRenderer::DrawTile16Selector(), yaze::editor::EditorActivator::HandleNonEditorClassSwitch(), yaze::editor::OverworldEditor::HandleTile16Edit(), yaze::editor::EditorManager::InitializeSubsystems(), yaze::editor::DungeonEditorV2::OnRoomSelected(), yaze::editor::WindowHost::OpenAndFocusWindow(), yaze::editor::EditorManager::OpenEditorAndPanelsFromFlags(), yaze::editor::MessageEditor::OpenMessageById(), yaze::editor::MusicEditor::OpenSong(), yaze::editor::MusicEditor::OpenSongPianoRoll(), yaze::editor::DungeonEditorV2::OpenWindow(), yaze::editor::WindowHost::OpenWindow(), yaze::editor::DungeonEditorV2::ProcessPendingSwap(), yaze::editor::EditorManager::RegisterEmulatorPanels(), yaze::editor::WindowHost::RegisterPanel(), yaze::editor::OverworldEditor::RequestTile16Selection(), yaze::editor::UICoordinator::SetAsmEditorVisible(), yaze::editor::UICoordinator::SetEmulatorVisible(), yaze::editor::EditorManager::SetupSidebarCallbacks(), yaze::editor::EditorManager::SetupWelcomeScreenCallbacks(), yaze::editor::anonymous_namespace{layout_manager.cc}::ShowDefaultWindowsForEditor(), yaze::editor::LayoutOrchestrator::ShowPresetPanels(), and yaze::editor::UICoordinator::UICoordinator().

Here is the call graph for this function:

◆ CloseWindow() [1/2]

bool yaze::editor::WorkspaceWindowManager::CloseWindow ( size_t session_id,
const std::string & base_window_id )
inline

◆ ToggleWindow()

bool yaze::editor::WorkspaceWindowManager::ToggleWindow ( size_t session_id,
const std::string & base_window_id )
inline

◆ IsWindowOpen() [1/2]

◆ GetWindowVisibilityFlag() [1/2]

bool * yaze::editor::WorkspaceWindowManager::GetWindowVisibilityFlag ( size_t session_id,
const std::string & base_window_id )
inline

◆ ShowAllWindowsInSession()

void yaze::editor::WorkspaceWindowManager::ShowAllWindowsInSession ( size_t session_id)

◆ HideAllWindowsInSession()

void yaze::editor::WorkspaceWindowManager::HideAllWindowsInSession ( size_t session_id)

◆ ShowAllWindowsInCategory() [1/2]

◆ HideAllWindowsInCategory() [1/2]

◆ ShowOnlyWindow()

void yaze::editor::WorkspaceWindowManager::ShowOnlyWindow ( size_t session_id,
const std::string & base_window_id )

Definition at line 1142 of file workspace_window_manager.cc.

References FindDescriptorByPrefixedId(), GetPrefixedWindowId(), HideAllWindowsInCategory(), and OpenWindowImpl().

Referenced by ShowOnlyPanel().

Here is the call graph for this function:

◆ ShowAllPanelsInSession()

void yaze::editor::WorkspaceWindowManager::ShowAllPanelsInSession ( size_t session_id)
inline

Definition at line 331 of file workspace_window_manager.h.

References ShowAllWindowsInSession().

Here is the call graph for this function:

◆ HideAllPanelsInSession()

void yaze::editor::WorkspaceWindowManager::HideAllPanelsInSession ( size_t session_id)
inline

Definition at line 335 of file workspace_window_manager.h.

References HideAllWindowsInSession().

Here is the call graph for this function:

◆ ShowAllPanelsInCategory() [1/2]

void yaze::editor::WorkspaceWindowManager::ShowAllPanelsInCategory ( size_t session_id,
const std::string & category )
inline

Definition at line 339 of file workspace_window_manager.h.

References ShowAllWindowsInCategory().

Here is the call graph for this function:

◆ HideAllPanelsInCategory() [1/2]

void yaze::editor::WorkspaceWindowManager::HideAllPanelsInCategory ( size_t session_id,
const std::string & category )
inline

Definition at line 343 of file workspace_window_manager.h.

References HideAllWindowsInCategory().

Here is the call graph for this function:

◆ ShowOnlyPanel()

void yaze::editor::WorkspaceWindowManager::ShowOnlyPanel ( size_t session_id,
const std::string & base_card_id )
inline

Definition at line 347 of file workspace_window_manager.h.

References ShowOnlyWindow().

Here is the call graph for this function:

◆ GetWindowsInSession()

std::vector< std::string > yaze::editor::WorkspaceWindowManager::GetWindowsInSession ( size_t session_id) const
inline

◆ GetWindowsInCategory()

◆ GetAllCategories() [1/2]

◆ GetAllWindowCategories() [1/2]

std::vector< std::string > yaze::editor::WorkspaceWindowManager::GetAllWindowCategories ( size_t session_id) const
inline

Definition at line 363 of file workspace_window_manager.h.

References GetAllCategories().

Referenced by yaze::editor::WindowBrowser::Draw().

Here is the call graph for this function:

◆ GetWindowDescriptor()

const WindowDescriptor * yaze::editor::WorkspaceWindowManager::GetWindowDescriptor ( size_t session_id,
const std::string & base_window_id ) const
inline

◆ GetAllWindowDescriptors()

const std::unordered_map< std::string, WindowDescriptor > & yaze::editor::WorkspaceWindowManager::GetAllWindowDescriptors ( ) const
inline

Get all panel descriptors (for layout designer, panel browser, etc.)

Returns
Map of panel_id -> WindowDescriptor

Definition at line 376 of file workspace_window_manager.h.

References yaze::editor::WorkspaceWindowManager::WindowRegistryState::descriptors, and registry_state_.

Referenced by yaze::editor::EditorManager::CollectEditorsToPreload(), and yaze::editor::EditorManager::OpenEditorAndPanelsFromFlags().

◆ GetAllCategories() [2/2]

std::vector< std::string > yaze::editor::WorkspaceWindowManager::GetAllCategories ( ) const

◆ GetAllWindowCategories() [2/2]

std::vector< std::string > yaze::editor::WorkspaceWindowManager::GetAllWindowCategories ( ) const
inline

Definition at line 381 of file workspace_window_manager.h.

References GetAllCategories().

Here is the call graph for this function:

◆ GetVisibleWindowIds()

std::vector< std::string > yaze::editor::WorkspaceWindowManager::GetVisibleWindowIds ( size_t session_id) const
inline

Get list of currently visible panel IDs for a session.

Parameters
session_idThe session to query
Returns
Vector of base panel IDs that are currently visible

Definition at line 394 of file workspace_window_manager.h.

References GetVisibleWindowIdsImpl().

Referenced by yaze::editor::EditorManager::CollectEditorsToPreload().

Here is the call graph for this function:

◆ SetVisibleWindows()

void yaze::editor::WorkspaceWindowManager::SetVisibleWindows ( size_t session_id,
const std::vector< std::string > & window_ids )
inline

Set which panels should be visible for a session.

Parameters
session_idThe session to modify
panel_idsVector of base panel IDs to make visible (others hidden)

Definition at line 403 of file workspace_window_manager.h.

References SetVisibleWindowsImpl().

Here is the call graph for this function:

◆ SerializeVisibilityState()

std::unordered_map< std::string, bool > yaze::editor::WorkspaceWindowManager::SerializeVisibilityState ( size_t session_id) const

Serialize panel visibility state for persistence.

Parameters
session_idThe session to serialize
Returns
Map of base_panel_id -> visible (for serialization)

Definition at line 229 of file workspace_window_manager_state.cc.

References FindDescriptorByPrefixedId(), and FindSessionWindowMapping().

Here is the call graph for this function:

◆ RestoreVisibilityState()

void yaze::editor::WorkspaceWindowManager::RestoreVisibilityState ( size_t session_id,
const std::unordered_map< std::string, bool > & state,
bool publish_events = false )

Restore panel visibility state from persistence.

Parameters
session_idThe session to restore
stateMap of base_panel_id -> visible

Definition at line 248 of file workspace_window_manager_state.cc.

References FindDescriptorByPrefixedId(), FindSessionWindowMapping(), LOG_INFO, LOG_WARN, PublishWindowVisibilityChanged(), and ResolveBaseWindowId().

Referenced by yaze::editor::EditorManager::DrawInterface(), yaze::editor::EditorManager::HandleSessionSwitched(), yaze::editor::EditorManager::Initialize(), and yaze::editor::EditorManager::SetupSidebarCallbacks().

Here is the call graph for this function:

◆ SerializePinnedState()

std::unordered_map< std::string, bool > yaze::editor::WorkspaceWindowManager::SerializePinnedState ( ) const

Serialize pinned panel state for persistence.

Returns
Map of base_panel_id -> pinned

Definition at line 285 of file workspace_window_manager_state.cc.

References pending_pinned_base_ids_, and pinned_panels_.

◆ RestorePinnedState()

void yaze::editor::WorkspaceWindowManager::RestorePinnedState ( const std::unordered_map< std::string, bool > & state)

Restore pinned panel state from persistence.

Parameters
stateMap of base_panel_id -> pinned

Definition at line 309 of file workspace_window_manager_state.cc.

References LOG_INFO, pending_pinned_base_ids_, pinned_panels_, ResolveBaseWindowId(), and session_card_mapping_.

Referenced by yaze::editor::EditorManager::HandleSessionCreated(), and yaze::editor::EditorManager::InitializeServices().

Here is the call graph for this function:

◆ GetWorkspaceWindowName() [1/2]

std::string yaze::editor::WorkspaceWindowManager::GetWorkspaceWindowName ( size_t session_id,
const std::string & base_window_id ) const
inline

Resolve the exact ImGui window name for a panel by base ID.

Returns
Label + stable ID (e.g., "📋 Properties##dungeon.properties")

Definition at line 441 of file workspace_window_manager.h.

References GetWindowNameImpl().

Referenced by yaze::editor::WindowBrowser::Draw(), yaze::editor::WindowSidebar::Draw(), yaze::editor::LayoutOrchestrator::GetWindowTitle(), yaze::editor::WindowHost::GetWorkspaceWindowName(), and yaze::editor::WindowHost::OpenAndFocusWindow().

Here is the call graph for this function:

◆ GetWorkspaceWindowName() [2/2]

std::string yaze::editor::WorkspaceWindowManager::GetWorkspaceWindowName ( const WindowDescriptor & descriptor) const
inline

Definition at line 445 of file workspace_window_manager.h.

References GetWindowNameImpl().

Here is the call graph for this function:

◆ GetSidebarWidth()

static constexpr float yaze::editor::WorkspaceWindowManager::GetSidebarWidth ( )
inlinestaticconstexpr

◆ GetSidePanelWidth()

static constexpr float yaze::editor::WorkspaceWindowManager::GetSidePanelWidth ( )
inlinestaticconstexpr

Definition at line 450 of file workspace_window_manager.h.

Referenced by getSidebarState(), and GetSidePanelWidthForViewport().

◆ GetSidePanelWidthBounds()

WorkspaceWindowManager::SidePanelWidthBounds yaze::editor::WorkspaceWindowManager::GetSidePanelWidthBounds ( float viewport_width)
static

◆ GetSidePanelWidthForViewport()

static float yaze::editor::WorkspaceWindowManager::GetSidePanelWidthForViewport ( float viewport_width)
inlinestatic

Definition at line 456 of file workspace_window_manager.h.

References GetSidePanelWidth().

Referenced by GetActiveSidePanelWidth(), and GetSidePanelWidthBounds().

Here is the call graph for this function:

◆ GetActiveSidePanelWidth()

float yaze::editor::WorkspaceWindowManager::GetActiveSidePanelWidth ( float viewport_width) const

◆ SetActiveSidePanelWidth()

void yaze::editor::WorkspaceWindowManager::SetActiveSidePanelWidth ( float width,
float viewport_width = 0.0f,
bool notify = true )

◆ ResetSidePanelWidth()

◆ GetStoredSidePanelWidth()

float yaze::editor::WorkspaceWindowManager::GetStoredSidePanelWidth ( ) const
inline

◆ SetStoredSidePanelWidth()

void yaze::editor::WorkspaceWindowManager::SetStoredSidePanelWidth ( float width,
bool notify = false )
inline

Definition at line 499 of file workspace_window_manager.h.

References SetActiveSidePanelWidth().

Referenced by yaze::editor::EditorManager::Initialize().

Here is the call graph for this function:

◆ SetSidePanelWidthChangedCallback()

void yaze::editor::WorkspaceWindowManager::SetSidePanelWidthChangedCallback ( std::function< void(float)> cb)
inline

◆ GetPanelBrowserCategoryWidth()

float yaze::editor::WorkspaceWindowManager::GetPanelBrowserCategoryWidth ( ) const
inline

◆ GetWindowBrowserCategoryWidth()

float yaze::editor::WorkspaceWindowManager::GetWindowBrowserCategoryWidth ( ) const
inline

◆ SetPanelBrowserCategoryWidth()

void yaze::editor::WorkspaceWindowManager::SetPanelBrowserCategoryWidth ( float width,
bool notify = true )

◆ SetWindowBrowserCategoryWidth()

void yaze::editor::WorkspaceWindowManager::SetWindowBrowserCategoryWidth ( float width,
bool notify = true )
inline

Definition at line 515 of file workspace_window_manager.h.

References SetPanelBrowserCategoryWidth().

Referenced by yaze::editor::WindowBrowser::Draw(), and yaze::editor::EditorManager::Initialize().

Here is the call graph for this function:

◆ SetPanelBrowserCategoryWidthChangedCallback()

void yaze::editor::WorkspaceWindowManager::SetPanelBrowserCategoryWidthChangedCallback ( std::function< void(float)> cb)
inline

◆ SetWindowBrowserCategoryWidthChangedCallback()

void yaze::editor::WorkspaceWindowManager::SetWindowBrowserCategoryWidthChangedCallback ( std::function< void(float)> cb)
inline

Definition at line 522 of file workspace_window_manager.h.

References SetPanelBrowserCategoryWidthChangedCallback().

Here is the call graph for this function:

◆ YAZE_CARD_SHIM_DEPRECATED()

yaze::editor::WorkspaceWindowManager::YAZE_CARD_SHIM_DEPRECATED ( "Use GetDefaultWindowBrowserCategoryWidth() instead." ) const
inline

Definition at line 526 of file workspace_window_manager.h.

◆ GetDefaultWindowBrowserCategoryWidth()

static constexpr float yaze::editor::WorkspaceWindowManager::GetDefaultWindowBrowserCategoryWidth ( )
inlinestaticconstexpr

Definition at line 531 of file workspace_window_manager.h.

Referenced by yaze::editor::WindowBrowser::Draw().

◆ GetCollapsedSidebarWidth()

static constexpr float yaze::editor::WorkspaceWindowManager::GetCollapsedSidebarWidth ( )
inlinestaticconstexpr

Definition at line 535 of file workspace_window_manager.h.

◆ GetCategoryIcon()

◆ GetCategoryTheme()

WorkspaceWindowManager::CategoryTheme yaze::editor::WorkspaceWindowManager::GetCategoryTheme ( const std::string & category)
static

◆ HandleSidebarKeyboardNav()

void yaze::editor::WorkspaceWindowManager::HandleSidebarKeyboardNav ( size_t session_id,
const std::vector< WindowDescriptor > & cards )

Handle keyboard navigation in sidebar (click-to-focus modal)

Definition at line 354 of file workspace_window_manager_state.cc.

References browser_state_, yaze::editor::WorkspaceWindowManager::WindowBrowserState::focused_window_index, yaze::editor::WorkspaceWindowManager::WindowBrowserState::sidebar_has_focus, and ToggleWindowImpl().

Here is the call graph for this function:

◆ SidebarHasFocus()

bool yaze::editor::WorkspaceWindowManager::SidebarHasFocus ( ) const
inline

◆ GetFocusedPanelIndex()

int yaze::editor::WorkspaceWindowManager::GetFocusedPanelIndex ( ) const
inline

◆ GetFocusedWindowIndex()

int yaze::editor::WorkspaceWindowManager::GetFocusedWindowIndex ( ) const
inline

Definition at line 560 of file workspace_window_manager.h.

References GetFocusedPanelIndex().

Here is the call graph for this function:

◆ ToggleSidebarVisibility()

◆ SetSidebarVisible()

◆ IsSidebarVisible()

◆ ToggleWindowImplExpanded()

void yaze::editor::WorkspaceWindowManager::ToggleWindowImplExpanded ( )
inline

Definition at line 583 of file workspace_window_manager.h.

References ToggleSidebarExpanded().

Here is the call graph for this function:

◆ ToggleSidebarExpanded()

◆ SetPanelExpanded()

void yaze::editor::WorkspaceWindowManager::SetPanelExpanded ( bool expanded,
bool notify = true )
inline

Definition at line 594 of file workspace_window_manager.h.

References SetSidebarExpanded().

Here is the call graph for this function:

◆ SetSidebarExpanded()

◆ IsPanelExpanded()

bool yaze::editor::WorkspaceWindowManager::IsPanelExpanded ( ) const
inline

Definition at line 609 of file workspace_window_manager.h.

References IsSidebarExpanded().

Here is the call graph for this function:

◆ IsSidebarExpanded()

◆ SetEventBus()

void yaze::editor::WorkspaceWindowManager::SetEventBus ( EventBus * event_bus)
inline

Definition at line 616 of file workspace_window_manager.h.

References event_bus_.

Referenced by yaze::editor::EditorManager::InitializeSubsystems().

◆ TriggerShowEmulator()

void yaze::editor::WorkspaceWindowManager::TriggerShowEmulator ( )
inline

Definition at line 622 of file workspace_window_manager.h.

References event_bus_, yaze::EventBus::Publish(), and yaze::editor::UIActionRequestEvent::ShowEmulator().

Here is the call graph for this function:

◆ TriggerShowSettings()

void yaze::editor::WorkspaceWindowManager::TriggerShowSettings ( )
inline

Definition at line 627 of file workspace_window_manager.h.

References event_bus_, yaze::EventBus::Publish(), and yaze::editor::UIActionRequestEvent::ShowSettings().

Referenced by yaze::editor::EditorManager::InitializeSubsystems().

Here is the call graph for this function:

◆ TriggerShowPanelBrowser()

void yaze::editor::WorkspaceWindowManager::TriggerShowPanelBrowser ( )
inline

Definition at line 633 of file workspace_window_manager.h.

References TriggerShowWindowBrowser().

Here is the call graph for this function:

◆ TriggerShowWindowBrowser()

void yaze::editor::WorkspaceWindowManager::TriggerShowWindowBrowser ( )
inline

◆ TriggerSaveRom()

void yaze::editor::WorkspaceWindowManager::TriggerSaveRom ( )
inline

Definition at line 641 of file workspace_window_manager.h.

References event_bus_, yaze::EventBus::Publish(), and yaze::editor::UIActionRequestEvent::SaveRom().

Here is the call graph for this function:

◆ TriggerUndo()

void yaze::editor::WorkspaceWindowManager::TriggerUndo ( )
inline

Definition at line 646 of file workspace_window_manager.h.

References event_bus_, yaze::EventBus::Publish(), and yaze::editor::UIActionRequestEvent::Undo().

Here is the call graph for this function:

◆ TriggerRedo()

void yaze::editor::WorkspaceWindowManager::TriggerRedo ( )
inline

Definition at line 651 of file workspace_window_manager.h.

References event_bus_, yaze::EventBus::Publish(), and yaze::editor::UIActionRequestEvent::Redo().

Here is the call graph for this function:

◆ TriggerShowSearch()

void yaze::editor::WorkspaceWindowManager::TriggerShowSearch ( )
inline

◆ TriggerShowShortcuts()

void yaze::editor::WorkspaceWindowManager::TriggerShowShortcuts ( )
inline

◆ TriggerShowCommandPalette()

void yaze::editor::WorkspaceWindowManager::TriggerShowCommandPalette ( )
inline

◆ TriggerShowHelp()

void yaze::editor::WorkspaceWindowManager::TriggerShowHelp ( )
inline

◆ TriggerShowAgentChatSidebar()

void yaze::editor::WorkspaceWindowManager::TriggerShowAgentChatSidebar ( )
inline

Definition at line 679 of file workspace_window_manager.h.

References event_bus_, yaze::EventBus::Publish(), and yaze::editor::UIActionRequestEvent::ShowAgentChatSidebar().

Here is the call graph for this function:

◆ TriggerShowAgentProposalsSidebar()

void yaze::editor::WorkspaceWindowManager::TriggerShowAgentProposalsSidebar ( )
inline

Definition at line 684 of file workspace_window_manager.h.

References event_bus_, yaze::EventBus::Publish(), and yaze::editor::UIActionRequestEvent::ShowAgentProposalsSidebar().

Here is the call graph for this function:

◆ TriggerResetLayout()

void yaze::editor::WorkspaceWindowManager::TriggerResetLayout ( )
inline

◆ TriggerOpenRom()

void yaze::editor::WorkspaceWindowManager::TriggerOpenRom ( )
inline

Definition at line 695 of file workspace_window_manager.h.

References event_bus_, yaze::editor::UIActionRequestEvent::OpenRom(), and yaze::EventBus::Publish().

Referenced by yaze::editor::EditorManager::InitializeSubsystems().

Here is the call graph for this function:

◆ TriggerPanelClicked()

void yaze::editor::WorkspaceWindowManager::TriggerPanelClicked ( const std::string & category)
inline

Definition at line 701 of file workspace_window_manager.h.

References TriggerWindowClicked().

Here is the call graph for this function:

◆ TriggerWindowClicked()

void yaze::editor::WorkspaceWindowManager::TriggerWindowClicked ( const std::string & category)
inline

◆ TriggerCategorySelected()

void yaze::editor::WorkspaceWindowManager::TriggerCategorySelected ( const std::string & category)
inline

◆ TriggerWindowCategorySelected()

void yaze::editor::WorkspaceWindowManager::TriggerWindowCategorySelected ( const std::string & category)
inline

Definition at line 713 of file workspace_window_manager.h.

References TriggerCategorySelected().

Here is the call graph for this function:

◆ SetSidebarStateChangedCallback()

void yaze::editor::WorkspaceWindowManager::SetSidebarStateChangedCallback ( std::function< void(bool, bool)> cb)
inline

◆ SetCategoryChangedCallback()

void yaze::editor::WorkspaceWindowManager::SetCategoryChangedCallback ( std::function< void(const std::string &)> cb)
inline

◆ SavePreset()

void yaze::editor::WorkspaceWindowManager::SavePreset ( const std::string & name,
const std::string & description = "" )

◆ LoadPreset()

bool yaze::editor::WorkspaceWindowManager::LoadPreset ( const std::string & name)

Definition at line 1300 of file workspace_window_manager.cc.

References cards_, LOG_INFO, and presets_.

◆ DeletePreset()

void yaze::editor::WorkspaceWindowManager::DeletePreset ( const std::string & name)

Definition at line 1328 of file workspace_window_manager.cc.

References presets_, and SavePresetsToFile().

Here is the call graph for this function:

◆ GetPresets()

std::vector< WorkspaceWindowManager::WorkspacePreset > yaze::editor::WorkspaceWindowManager::GetPresets ( ) const

Definition at line 1334 of file workspace_window_manager.cc.

References presets_.

◆ ValidateWindows()

std::vector< WorkspaceWindowManager::WindowValidationResult > yaze::editor::WorkspaceWindowManager::ValidateWindows ( ) const

Definition at line 296 of file workspace_window_manager_support.cc.

References cards_, and ValidateWindow().

Here is the call graph for this function:

◆ ValidateWindow()

◆ ShowAll() [1/2]

void yaze::editor::WorkspaceWindowManager::ShowAll ( size_t session_id)

Definition at line 1346 of file workspace_window_manager.cc.

References ShowAllWindowsInSession().

Referenced by yaze::editor::WorkspaceManager::ShowAllWindows().

Here is the call graph for this function:

◆ HideAll() [1/2]

void yaze::editor::WorkspaceWindowManager::HideAll ( size_t session_id)

◆ ResetToDefaults() [1/2]

void yaze::editor::WorkspaceWindowManager::ResetToDefaults ( size_t session_id)
Todo
Load default visibility from config file or hardcoded defaults
Todo
Load default visibility from config file or hardcoded defaults

Definition at line 1354 of file workspace_window_manager.cc.

References HideAllWindowsInSession(), and LOG_INFO.

Referenced by yaze::editor::LayoutCoordinator::ResetCurrentEditorLayout().

Here is the call graph for this function:

◆ ResetToDefaults() [2/2]

void yaze::editor::WorkspaceWindowManager::ResetToDefaults ( size_t session_id,
EditorType editor_type )

◆ GetPanelCount()

size_t yaze::editor::WorkspaceWindowManager::GetPanelCount ( ) const
inline

◆ GetWindowCount()

size_t yaze::editor::WorkspaceWindowManager::GetWindowCount ( ) const
inline

◆ GetVisibleWindowCount()

size_t yaze::editor::WorkspaceWindowManager::GetVisibleWindowCount ( size_t session_id) const

Definition at line 433 of file workspace_window_manager_state.cc.

Referenced by GetVisiblePanelCount().

◆ GetVisiblePanelCount()

size_t yaze::editor::WorkspaceWindowManager::GetVisiblePanelCount ( size_t session_id) const
inline

Definition at line 776 of file workspace_window_manager.h.

References GetVisibleWindowCount().

Here is the call graph for this function:

◆ GetSessionCount()

size_t yaze::editor::WorkspaceWindowManager::GetSessionCount ( ) const
inline

◆ MakeWindowId() [1/2]

std::string yaze::editor::WorkspaceWindowManager::MakeWindowId ( size_t session_id,
const std::string & base_id ) const

◆ MakeWindowId() [2/2]

std::string yaze::editor::WorkspaceWindowManager::MakeWindowId ( size_t session_id,
const std::string & base_id,
WindowScope scope ) const

Definition at line 1402 of file workspace_window_manager.cc.

References yaze::editor::kGlobal, ResolveBaseWindowId(), and ShouldPrefixPanels().

Here is the call graph for this function:

◆ MakePanelId() [1/2]

std::string yaze::editor::WorkspaceWindowManager::MakePanelId ( size_t session_id,
const std::string & base_id ) const
inline

Definition at line 789 of file workspace_window_manager.h.

References MakeWindowId().

Here is the call graph for this function:

◆ MakePanelId() [2/2]

std::string yaze::editor::WorkspaceWindowManager::MakePanelId ( size_t session_id,
const std::string & base_id,
WindowScope scope ) const
inline

Definition at line 793 of file workspace_window_manager.h.

References MakeWindowId().

Here is the call graph for this function:

◆ ShouldPrefixPanels()

bool yaze::editor::WorkspaceWindowManager::ShouldPrefixPanels ( ) const
inline

Definition at line 797 of file workspace_window_manager.h.

References session_count_.

Referenced by MakeWindowId().

◆ RegisterPanel() [3/3]

void yaze::editor::WorkspaceWindowManager::RegisterPanel ( const WindowDescriptor & base_info)
inline

Definition at line 803 of file workspace_window_manager.h.

References active_session_, and RegisterPanel().

Here is the call graph for this function:

◆ RegisterWindow() [3/3]

void yaze::editor::WorkspaceWindowManager::RegisterWindow ( const WindowDescriptor & descriptor)
inline

Definition at line 806 of file workspace_window_manager.h.

References active_session_, and RegisterPanel().

Here is the call graph for this function:

◆ UnregisterPanel() [2/2]

void yaze::editor::WorkspaceWindowManager::UnregisterPanel ( const std::string & base_card_id)
inline

Definition at line 809 of file workspace_window_manager.h.

References active_session_, and UnregisterPanel().

Here is the call graph for this function:

◆ UnregisterWindow() [2/2]

void yaze::editor::WorkspaceWindowManager::UnregisterWindow ( const std::string & base_window_id)
inline

Definition at line 812 of file workspace_window_manager.h.

References active_session_, and UnregisterPanel().

Here is the call graph for this function:

◆ OpenWindow() [2/2]

bool yaze::editor::WorkspaceWindowManager::OpenWindow ( const std::string & base_window_id)
inline

Definition at line 815 of file workspace_window_manager.h.

References active_session_, and OpenWindowImpl().

Here is the call graph for this function:

◆ CloseWindow() [2/2]

bool yaze::editor::WorkspaceWindowManager::CloseWindow ( const std::string & base_window_id)
inline

Definition at line 818 of file workspace_window_manager.h.

References active_session_, and CloseWindowImpl().

Here is the call graph for this function:

◆ IsWindowOpen() [2/2]

bool yaze::editor::WorkspaceWindowManager::IsWindowOpen ( const std::string & base_window_id) const
inline

Definition at line 821 of file workspace_window_manager.h.

References active_session_, and IsWindowVisibleImpl().

Here is the call graph for this function:

◆ HideAllWindowsInCategory() [2/2]

void yaze::editor::WorkspaceWindowManager::HideAllWindowsInCategory ( const std::string & category)
inline

Definition at line 824 of file workspace_window_manager.h.

References active_session_, and HideAllWindowsInCategory().

Here is the call graph for this function:

◆ HideAllPanelsInCategory() [2/2]

void yaze::editor::WorkspaceWindowManager::HideAllPanelsInCategory ( const std::string & category)
inline

Definition at line 828 of file workspace_window_manager.h.

References active_session_, and HideAllWindowsInCategory().

Here is the call graph for this function:

◆ GetActiveCategory()

◆ SetActiveCategory()

◆ ShowAllWindowsInCategory() [2/2]

void yaze::editor::WorkspaceWindowManager::ShowAllWindowsInCategory ( const std::string & category)
inline

Definition at line 842 of file workspace_window_manager.h.

References active_session_, and ShowAllWindowsInCategory().

Here is the call graph for this function:

◆ ShowAllPanelsInCategory() [2/2]

void yaze::editor::WorkspaceWindowManager::ShowAllPanelsInCategory ( const std::string & category)
inline

Definition at line 846 of file workspace_window_manager.h.

References active_session_, and ShowAllWindowsInCategory().

Here is the call graph for this function:

◆ GetWindowVisibilityFlag() [2/2]

bool * yaze::editor::WorkspaceWindowManager::GetWindowVisibilityFlag ( const std::string & base_window_id)
inline

Definition at line 849 of file workspace_window_manager.h.

References active_session_, and GetVisibilityFlag().

Here is the call graph for this function:

◆ ShowAll() [2/2]

void yaze::editor::WorkspaceWindowManager::ShowAll ( )
inline

Definition at line 852 of file workspace_window_manager.h.

References active_session_, and ShowAll().

Referenced by ShowAll().

Here is the call graph for this function:

◆ HideAll() [2/2]

void yaze::editor::WorkspaceWindowManager::HideAll ( )
inline

Definition at line 853 of file workspace_window_manager.h.

References active_session_, and HideAll().

Referenced by HideAll().

Here is the call graph for this function:

◆ SetOnWindowClickedCallback()

void yaze::editor::WorkspaceWindowManager::SetOnWindowClickedCallback ( std::function< void(const std::string &)> callback)
inline

◆ SetOnWindowCategorySelectedCallback()

void yaze::editor::WorkspaceWindowManager::SetOnWindowCategorySelectedCallback ( std::function< void(const std::string &)> callback)
inline

◆ SetEditorResolver()

void yaze::editor::WorkspaceWindowManager::SetEditorResolver ( std::function< Editor *(const std::string &)> resolver)
inline

◆ GetActiveSessionId()

◆ GetFileBrowser()

FileBrowser * yaze::editor::WorkspaceWindowManager::GetFileBrowser ( const std::string & category)

◆ EnableFileBrowser()

void yaze::editor::WorkspaceWindowManager::EnableFileBrowser ( const std::string & category,
const std::string & root_path = "" )

◆ DisableFileBrowser()

void yaze::editor::WorkspaceWindowManager::DisableFileBrowser ( const std::string & category)

◆ HasFileBrowser()

bool yaze::editor::WorkspaceWindowManager::HasFileBrowser ( const std::string & category) const

◆ SetFileBrowserPath()

void yaze::editor::WorkspaceWindowManager::SetFileBrowserPath ( const std::string & category,
const std::string & path )

◆ SetFileClickedCallback()

void yaze::editor::WorkspaceWindowManager::SetFileClickedCallback ( std::function< void(const std::string &category, const std::string &path)> callback)
inline

◆ ToggleFavorite()

void yaze::editor::WorkspaceWindowManager::ToggleFavorite ( const std::string & card_id)
inline

Definition at line 889 of file workspace_window_manager.h.

References IsWindowPinned(), and SetWindowPinned().

Here is the call graph for this function:

◆ IsFavorite()

bool yaze::editor::WorkspaceWindowManager::IsFavorite ( const std::string & card_id) const
inline

Definition at line 892 of file workspace_window_manager.h.

References IsWindowPinned().

Here is the call graph for this function:

◆ MarkWindowRecentlyUsed()

void yaze::editor::WorkspaceWindowManager::MarkWindowRecentlyUsed ( const std::string & window_id)
inline

◆ GetWindowsSortedByMRU()

std::vector< WindowDescriptor > yaze::editor::WorkspaceWindowManager::GetWindowsSortedByMRU ( size_t session_id,
const std::string & category ) const
inline

Definition at line 900 of file workspace_window_manager.h.

References GetWindowsSortedByMRUImpl().

Referenced by yaze::editor::WindowSidebar::Draw().

Here is the call graph for this function:

◆ GetWindowMRUTime()

uint64_t yaze::editor::WorkspaceWindowManager::GetWindowMRUTime ( const std::string & window_id) const
inline

Definition at line 905 of file workspace_window_manager.h.

References GetWindowMRUTimeImpl().

Here is the call graph for this function:

◆ SetWindowPinned() [1/2]

void yaze::editor::WorkspaceWindowManager::SetWindowPinned ( size_t session_id,
const std::string & base_window_id,
bool pinned )
inline

◆ IsWindowPinned() [1/2]

◆ GetPinnedWindows() [1/2]

std::vector< std::string > yaze::editor::WorkspaceWindowManager::GetPinnedWindows ( size_t session_id) const
inline

Definition at line 921 of file workspace_window_manager.h.

References GetPinnedWindowsImpl().

Referenced by yaze::editor::WindowSidebar::Draw().

Here is the call graph for this function:

◆ SetWindowPinned() [2/2]

void yaze::editor::WorkspaceWindowManager::SetWindowPinned ( const std::string & base_window_id,
bool pinned )
inline

Definition at line 925 of file workspace_window_manager.h.

References SetWindowPinnedImpl().

Here is the call graph for this function:

◆ IsWindowPinned() [2/2]

bool yaze::editor::WorkspaceWindowManager::IsWindowPinned ( const std::string & base_window_id) const
inline

Definition at line 928 of file workspace_window_manager.h.

References IsWindowPinnedImpl().

Here is the call graph for this function:

◆ GetPinnedWindows() [2/2]

std::vector< std::string > yaze::editor::WorkspaceWindowManager::GetPinnedWindows ( ) const
inline

Definition at line 931 of file workspace_window_manager.h.

References GetPinnedWindowsImpl().

Here is the call graph for this function:

◆ EnforceResourceLimits()

void yaze::editor::WorkspaceWindowManager::EnforceResourceLimits ( const std::string & resource_type)

Enforce limits on resource panels (LRU eviction)

Parameters
resource_typeThe type of resource (e.g., "room", "song")

Checks if the number of open panels of this type exceeds the limit. If so, closes and unregisters the least recently used panel.

Definition at line 650 of file workspace_window_manager.cc.

References GetResourceWindowLimit(), resource_panels_, SelectResourceWindowForEviction(), and UnregisterWindowContent().

Referenced by EnforceResourceWindowLimits().

Here is the call graph for this function:

◆ EnforceResourceWindowLimits()

void yaze::editor::WorkspaceWindowManager::EnforceResourceWindowLimits ( const std::string & resource_type)
inline

Definition at line 947 of file workspace_window_manager.h.

References EnforceResourceLimits().

Referenced by RegisterRegistryWindowContent(), and RegisterWindowContent().

Here is the call graph for this function:

◆ MarkPanelUsed()

void yaze::editor::WorkspaceWindowManager::MarkPanelUsed ( const std::string & panel_id)

Mark a panel as recently used (for LRU)

Parameters
panel_idThe panel ID

Definition at line 673 of file workspace_window_manager.cc.

References panel_resource_types_, and resource_panels_.

◆ FindPanelInstance() [1/2]

WindowContent * yaze::editor::WorkspaceWindowManager::FindPanelInstance ( const std::string & prefixed_panel_id,
const std::string & base_panel_id )

◆ FindPanelInstance() [2/2]

const WindowContent * yaze::editor::WorkspaceWindowManager::FindPanelInstance ( const std::string & prefixed_panel_id,
const std::string & base_panel_id ) const

Definition at line 728 of file workspace_window_manager.cc.

References panel_instances_.

◆ ApplyContextPolicy()

void yaze::editor::WorkspaceWindowManager::ApplyContextPolicy ( size_t session_id,
WindowContextScope scope,
const std::string & old_key,
const std::string & new_key )
private

◆ FindDescriptorByPrefixedId() [1/2]

◆ FindDescriptorByPrefixedId() [2/2]

const WindowDescriptor * yaze::editor::WorkspaceWindowManager::FindDescriptorByPrefixedId ( const std::string & prefixed_id) const
private

◆ FindSessionWindowIds() [1/2]

◆ FindSessionWindowIds() [2/2]

const std::vector< std::string > * yaze::editor::WorkspaceWindowManager::FindSessionWindowIds ( size_t session_id) const
private

◆ FindSessionWindowMapping() [1/2]

std::unordered_map< std::string, std::string > * yaze::editor::WorkspaceWindowManager::FindSessionWindowMapping ( size_t session_id)
private

◆ FindSessionWindowMapping() [2/2]

const std::unordered_map< std::string, std::string > * yaze::editor::WorkspaceWindowManager::FindSessionWindowMapping ( size_t session_id) const
private

◆ FindSessionReverseWindowMapping() [1/2]

std::unordered_map< std::string, std::string > * yaze::editor::WorkspaceWindowManager::FindSessionReverseWindowMapping ( size_t session_id)
private

◆ FindSessionReverseWindowMapping() [2/2]

const std::unordered_map< std::string, std::string > * yaze::editor::WorkspaceWindowManager::FindSessionReverseWindowMapping ( size_t session_id) const
private

◆ PublishWindowVisibilityChanged()

void yaze::editor::WorkspaceWindowManager::PublishWindowVisibilityChanged ( size_t session_id,
const std::string & prefixed_window_id,
const std::string & base_window_id,
const std::string & category,
bool visible ) const
private

◆ OpenWindowImpl()

bool yaze::editor::WorkspaceWindowManager::OpenWindowImpl ( size_t session_id,
const std::string & base_card_id )
private

◆ CloseWindowImpl()

bool yaze::editor::WorkspaceWindowManager::CloseWindowImpl ( size_t session_id,
const std::string & base_card_id )
private

◆ ToggleWindowImpl()

bool yaze::editor::WorkspaceWindowManager::ToggleWindowImpl ( size_t session_id,
const std::string & base_card_id )
private

◆ IsWindowVisibleImpl()

bool yaze::editor::WorkspaceWindowManager::IsWindowVisibleImpl ( size_t session_id,
const std::string & base_card_id ) const
private

Definition at line 1040 of file workspace_window_manager.cc.

References FindDescriptorByPrefixedId(), GetPrefixedWindowId(), and ResolveBaseWindowId().

Referenced by IsWindowOpen(), and IsWindowOpen().

Here is the call graph for this function:

◆ GetVisibilityFlag()

bool * yaze::editor::WorkspaceWindowManager::GetVisibilityFlag ( size_t session_id,
const std::string & base_card_id )
private

Definition at line 1055 of file workspace_window_manager.cc.

References FindDescriptorByPrefixedId(), GetPrefixedWindowId(), and ResolveBaseWindowId().

Referenced by GetWindowVisibilityFlag(), and GetWindowVisibilityFlag().

Here is the call graph for this function:

◆ GetWindowsInSessionImpl()

std::vector< std::string > yaze::editor::WorkspaceWindowManager::GetWindowsInSessionImpl ( size_t session_id) const
private

Definition at line 1168 of file workspace_window_manager.cc.

References FindSessionWindowIds(), and GetBaseIdForPrefixedId().

Referenced by GetWindowsInSession().

Here is the call graph for this function:

◆ GetWindowsInCategoryImpl()

std::vector< WindowDescriptor > yaze::editor::WorkspaceWindowManager::GetWindowsInCategoryImpl ( size_t session_id,
const std::string & category ) const
private

◆ GetVisibleWindowIdsImpl()

std::vector< std::string > yaze::editor::WorkspaceWindowManager::GetVisibleWindowIdsImpl ( size_t session_id) const
private

Definition at line 1257 of file workspace_window_manager.cc.

References FindDescriptorByPrefixedId(), and FindSessionWindowMapping().

Referenced by GetVisibleWindowIds().

Here is the call graph for this function:

◆ SetVisibleWindowsImpl()

void yaze::editor::WorkspaceWindowManager::SetVisibleWindowsImpl ( size_t session_id,
const std::vector< std::string > & panel_ids )
private

Definition at line 202 of file workspace_window_manager_state.cc.

References FindDescriptorByPrefixedId(), FindSessionWindowMapping(), LOG_INFO, and ResolveBaseWindowId().

Referenced by SetVisibleWindows().

Here is the call graph for this function:

◆ GetWindowDescriptorImpl()

const WindowDescriptor * yaze::editor::WorkspaceWindowManager::GetWindowDescriptorImpl ( size_t session_id,
const std::string & base_card_id ) const
private

Definition at line 1231 of file workspace_window_manager.cc.

References FindDescriptorByPrefixedId(), GetPrefixedWindowId(), and ResolveBaseWindowId().

Referenced by GetWindowDescriptor(), and GetWindowNameImpl().

Here is the call graph for this function:

◆ GetWindowNameImpl() [1/2]

std::string yaze::editor::WorkspaceWindowManager::GetWindowNameImpl ( size_t session_id,
const std::string & base_card_id ) const
private

Definition at line 339 of file workspace_window_manager_state.cc.

References GetWindowDescriptorImpl(), and GetWindowNameImpl().

Referenced by GetWindowNameImpl(), GetWorkspaceWindowName(), GetWorkspaceWindowName(), and ValidateWindow().

Here is the call graph for this function:

◆ GetWindowNameImpl() [2/2]

std::string yaze::editor::WorkspaceWindowManager::GetWindowNameImpl ( const WindowDescriptor & descriptor) const
private

Definition at line 349 of file workspace_window_manager_state.cc.

References yaze::editor::WindowDescriptor::GetImGuiWindowName().

Here is the call graph for this function:

◆ MarkWindowRecentlyUsedImpl()

void yaze::editor::WorkspaceWindowManager::MarkWindowRecentlyUsedImpl ( const std::string & card_id)
private

Definition at line 401 of file workspace_window_manager_state.cc.

References last_used_at_, and mru_counter_.

Referenced by MarkWindowRecentlyUsed().

◆ GetWindowsSortedByMRUImpl()

std::vector< WindowDescriptor > yaze::editor::WorkspaceWindowManager::GetWindowsSortedByMRUImpl ( size_t session_id,
const std::string & category ) const
private

◆ GetWindowMRUTimeImpl()

uint64_t yaze::editor::WorkspaceWindowManager::GetWindowMRUTimeImpl ( const std::string & card_id) const
inlineprivate

Definition at line 1011 of file workspace_window_manager.h.

References last_used_at_.

Referenced by GetWindowMRUTime().

◆ SetWindowPinnedImpl() [1/2]

void yaze::editor::WorkspaceWindowManager::SetWindowPinnedImpl ( size_t session_id,
const std::string & base_card_id,
bool pinned )
private

◆ IsWindowPinnedImpl() [1/2]

bool yaze::editor::WorkspaceWindowManager::IsWindowPinnedImpl ( size_t session_id,
const std::string & base_card_id ) const
private

◆ GetPinnedWindowsImpl() [1/2]

std::vector< std::string > yaze::editor::WorkspaceWindowManager::GetPinnedWindowsImpl ( size_t session_id) const
private

Definition at line 198 of file workspace_window_manager_support.cc.

References FindSessionWindowIds(), GetBaseIdForPrefixedId(), and pinned_panels_.

Here is the call graph for this function:

◆ RememberPinnedStateForRemovedWindow()

void yaze::editor::WorkspaceWindowManager::RememberPinnedStateForRemovedWindow ( size_t session_id,
const std::string & base_card_id,
const std::string & prefixed_id )
private

◆ SetWindowPinnedImpl() [2/2]

void yaze::editor::WorkspaceWindowManager::SetWindowPinnedImpl ( const std::string & base_card_id,
bool pinned )
private

Definition at line 247 of file workspace_window_manager_support.cc.

References active_session_, and SetWindowPinnedImpl().

Here is the call graph for this function:

◆ IsWindowPinnedImpl() [2/2]

bool yaze::editor::WorkspaceWindowManager::IsWindowPinnedImpl ( const std::string & base_card_id) const
private

Definition at line 252 of file workspace_window_manager_support.cc.

References active_session_, and IsWindowPinnedImpl().

Here is the call graph for this function:

◆ GetPinnedWindowsImpl() [2/2]

std::vector< std::string > yaze::editor::WorkspaceWindowManager::GetPinnedWindowsImpl ( ) const
private

Definition at line 257 of file workspace_window_manager_support.cc.

References active_session_, and GetPinnedWindowsImpl().

Referenced by GetPinnedWindows(), GetPinnedWindows(), and GetPinnedWindowsImpl().

Here is the call graph for this function:

◆ GetResourceWindowLimit()

◆ TrackResourceWindow()

void yaze::editor::WorkspaceWindowManager::TrackResourceWindow ( const std::string & panel_id,
ResourceWindowContent * resource_panel )
private

◆ UntrackResourceWindow()

void yaze::editor::WorkspaceWindowManager::UntrackResourceWindow ( const std::string & panel_id)
private

◆ SelectResourceWindowForEviction()

std::string yaze::editor::WorkspaceWindowManager::SelectResourceWindowForEviction ( const std::list< std::string > & panel_ids) const
private

Definition at line 343 of file workspace_window_manager.cc.

References IsWindowPinnedImpl().

Referenced by EnforceResourceLimits().

Here is the call graph for this function:

◆ ResolveBaseWindowId()

◆ GetBaseIdForPrefixedId()

std::string yaze::editor::WorkspaceWindowManager::GetBaseIdForPrefixedId ( size_t session_id,
const std::string & prefixed_id ) const
private

◆ UpdateSessionCount()

void yaze::editor::WorkspaceWindowManager::UpdateSessionCount ( )
private

Definition at line 449 of file workspace_window_manager_state.cc.

Referenced by RegisterSession(), and UnregisterSession().

◆ GetPrefixedWindowId()

std::string yaze::editor::WorkspaceWindowManager::GetPrefixedWindowId ( size_t session_id,
const std::string & base_id ) const
private

◆ RegisterPanelDescriptorForSession()

void yaze::editor::WorkspaceWindowManager::RegisterPanelDescriptorForSession ( size_t session_id,
const WindowContent & panel )
private

◆ TrackPanelForSession()

void yaze::editor::WorkspaceWindowManager::TrackPanelForSession ( size_t session_id,
const std::string & base_id,
const std::string & panel_id )
private

Definition at line 485 of file workspace_window_manager_state.cc.

Referenced by RegisterPanel(), and RegisterSession().

◆ UnregisterSessionPanels()

void yaze::editor::WorkspaceWindowManager::UnregisterSessionPanels ( size_t session_id)
private

Definition at line 509 of file workspace_window_manager_state.cc.

Referenced by UnregisterSession().

◆ SavePresetsToFile()

void yaze::editor::WorkspaceWindowManager::SavePresetsToFile ( )
private

Definition at line 19 of file workspace_window_manager_support.cc.

References yaze::Json::dump(), yaze::util::PlatformPaths::GetConfigDirectory(), LOG_ERROR, LOG_INFO, yaze::Json::object(), and presets_.

Referenced by DeletePreset(), and SavePreset().

Here is the call graph for this function:

◆ LoadPresetsFromFile()

Member Data Documentation

◆ kDashboardCategory

◆ resource_state_

ResourceWindowState yaze::editor::WorkspaceWindowManager::resource_state_
private

Definition at line 1043 of file workspace_window_manager.h.

◆ resource_panels_

std::unordered_map<std::string, std::list<std::string> >& yaze::editor::WorkspaceWindowManager::resource_panels_
private

◆ panel_resource_types_

std::unordered_map<std::string, std::string>& yaze::editor::WorkspaceWindowManager::panel_resource_types_
private

◆ registry_state_

◆ session_state_

◆ cards_

◆ panel_instances_

std::unordered_map<std::string, std::unique_ptr<WindowContent> >& yaze::editor::WorkspaceWindowManager::panel_instances_ = registry_state_.instances
private

◆ registry_panel_ids_

std::unordered_set<std::string>& yaze::editor::WorkspaceWindowManager::registry_panel_ids_
private

◆ global_panel_ids_

std::unordered_set<std::string>& yaze::editor::WorkspaceWindowManager::global_panel_ids_
private

◆ centralized_visibility_

std::unordered_map<std::string, bool>& yaze::editor::WorkspaceWindowManager::centralized_visibility_
private

◆ panel_id_aliases_

std::unordered_map<std::string, std::string>& yaze::editor::WorkspaceWindowManager::panel_id_aliases_
private
Initial value:

Definition at line 1096 of file workspace_window_manager.h.

Referenced by RegisterPanelAlias(), and ResolveBaseWindowId().

◆ last_used_at_

std::unordered_map<std::string, uint64_t>& yaze::editor::WorkspaceWindowManager::last_used_at_
private

◆ mru_counter_

uint64_t& yaze::editor::WorkspaceWindowManager::mru_counter_ = session_state_.mru_counter
private

Definition at line 1101 of file workspace_window_manager.h.

Referenced by MarkWindowRecentlyUsedImpl().

◆ pinned_panels_

std::unordered_map<std::string, bool>& yaze::editor::WorkspaceWindowManager::pinned_panels_
private

◆ pending_pinned_base_ids_

std::unordered_map<std::string, bool>& yaze::editor::WorkspaceWindowManager::pending_pinned_base_ids_
private

◆ session_count_

size_t& yaze::editor::WorkspaceWindowManager::session_count_ = session_state_.session_count
private

◆ active_session_

◆ session_cards_

std::unordered_map<size_t, std::vector<std::string> >& yaze::editor::WorkspaceWindowManager::session_cards_
private

◆ session_card_mapping_

std::unordered_map<size_t, std::unordered_map<std::string, std::string> >& yaze::editor::WorkspaceWindowManager::session_card_mapping_ = session_state_.session_window_mapping
private

◆ session_reverse_card_mapping_

std::unordered_map<size_t, std::unordered_map<std::string, std::string> >& yaze::editor::WorkspaceWindowManager::session_reverse_card_mapping_
private
Initial value:
=
std::unordered_map< size_t, std::unordered_map< std::string, std::string > > session_reverse_window_mapping

Definition at line 1113 of file workspace_window_manager.h.

Referenced by ClearAllPanels(), UnregisterPanel(), and UnregisterPanelsWithPrefix().

◆ session_context_keys_

std::unordered_map<size_t, std::unordered_map<WindowContextScope, std::string, WindowContextScopeHash> >& yaze::editor::WorkspaceWindowManager::session_context_keys_ = session_state_.session_context_keys
private

Definition at line 1117 of file workspace_window_manager.h.

Referenced by ClearAllPanels().

◆ presets_

std::unordered_map<std::string, WorkspacePreset> yaze::editor::WorkspaceWindowManager::presets_
private

◆ browser_state_

◆ event_bus_

◆ on_file_clicked_

std::function<void(const std::string&, const std::string&) yaze::editor::WorkspaceWindowManager::on_file_clicked_)
private

Definition at line 1149 of file workspace_window_manager.h.

Referenced by EnableFileBrowser(), and SetFileClickedCallback().

◆ editor_resolver_

std::function<Editor*(const std::string&) yaze::editor::WorkspaceWindowManager::editor_resolver_)
private

Definition at line 1150 of file workspace_window_manager.h.

Referenced by DrawAllVisiblePanels(), and SetEditorResolver().


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