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

Manages ImGui DockBuilder layouts for each editor type. More...

#include <layout_manager.h>

Public Member Functions

 LayoutManager ()=default
 
 ~LayoutManager ()=default
 
void InitializeEditorLayout (EditorType type, ImGuiID dockspace_id)
 Initialize the default layout for a specific editor type.
 
void SaveCurrentLayout (const std::string &name)
 Save the current layout with a custom name.
 
void LoadLayout (const std::string &name)
 Load a saved layout by name.
 
void ResetToDefaultLayout (EditorType type)
 Reset the layout for an editor to its default.
 
bool IsLayoutInitialized (EditorType type) const
 Check if a layout has been initialized for an editor.
 
void MarkLayoutInitialized (EditorType type)
 Mark a layout as initialized.
 
void ClearInitializationFlags ()
 Clear all initialization flags (for testing)
 

Private Member Functions

void BuildOverworldLayout (ImGuiID dockspace_id)
 
void BuildDungeonLayout (ImGuiID dockspace_id)
 
void BuildGraphicsLayout (ImGuiID dockspace_id)
 
void BuildPaletteLayout (ImGuiID dockspace_id)
 
void BuildScreenLayout (ImGuiID dockspace_id)
 
void BuildMusicLayout (ImGuiID dockspace_id)
 
void BuildSpriteLayout (ImGuiID dockspace_id)
 
void BuildMessageLayout (ImGuiID dockspace_id)
 
void BuildAssemblyLayout (ImGuiID dockspace_id)
 
void BuildSettingsLayout (ImGuiID dockspace_id)
 

Private Attributes

std::unordered_map< EditorType, bool > layouts_initialized_
 

Detailed Description

Manages ImGui DockBuilder layouts for each editor type.

Provides professional default layouts using ImGui's DockBuilder API, similar to VSCode's workspace layouts. Each editor type has a custom layout optimized for its workflow.

Features:

  • Per-editor default layouts (Overworld, Dungeon, Graphics, etc.)
  • Layout persistence and restoration
  • Workspace presets (Developer, Designer, Modder)
  • Dynamic layout initialization on first editor switch

Definition at line 27 of file layout_manager.h.

Constructor & Destructor Documentation

◆ LayoutManager()

yaze::editor::LayoutManager::LayoutManager ( )
default

◆ ~LayoutManager()

yaze::editor::LayoutManager::~LayoutManager ( )
default

Member Function Documentation

◆ InitializeEditorLayout()

void yaze::editor::LayoutManager::InitializeEditorLayout ( EditorType  type,
ImGuiID  dockspace_id 
)

◆ SaveCurrentLayout()

void yaze::editor::LayoutManager::SaveCurrentLayout ( const std::string &  name)

Save the current layout with a custom name.

Parameters
nameThe name to save the layout under
Todo:
[EditorManagerRefactor] Implement layout saving to file

Definition at line 377 of file layout_manager.cc.

References LOG_INFO.

◆ LoadLayout()

void yaze::editor::LayoutManager::LoadLayout ( const std::string &  name)

Load a saved layout by name.

Parameters
nameThe name of the layout to load
Todo:
[EditorManagerRefactor] Implement layout loading from file

Definition at line 383 of file layout_manager.cc.

References LOG_INFO.

◆ ResetToDefaultLayout()

void yaze::editor::LayoutManager::ResetToDefaultLayout ( EditorType  type)

Reset the layout for an editor to its default.

Parameters
typeThe editor type to reset

Definition at line 389 of file layout_manager.cc.

References layouts_initialized_, and LOG_INFO.

◆ IsLayoutInitialized()

bool yaze::editor::LayoutManager::IsLayoutInitialized ( EditorType  type) const

Check if a layout has been initialized for an editor.

Parameters
typeThe editor type to check
Returns
True if layout is initialized

Definition at line 395 of file layout_manager.cc.

References layouts_initialized_.

Referenced by InitializeEditorLayout().

◆ MarkLayoutInitialized()

void yaze::editor::LayoutManager::MarkLayoutInitialized ( EditorType  type)

Mark a layout as initialized.

Parameters
typeThe editor type to mark

Definition at line 400 of file layout_manager.cc.

References layouts_initialized_, and LOG_INFO.

Referenced by InitializeEditorLayout().

◆ ClearInitializationFlags()

void yaze::editor::LayoutManager::ClearInitializationFlags ( )

Clear all initialization flags (for testing)

Definition at line 406 of file layout_manager.cc.

References layouts_initialized_, and LOG_INFO.

◆ BuildOverworldLayout()

void yaze::editor::LayoutManager::BuildOverworldLayout ( ImGuiID  dockspace_id)
private
Todo:
[EditorManagerRefactor] Implement DockBuilder layout for Overworld

Definition at line 74 of file layout_manager.cc.

Referenced by InitializeEditorLayout().

◆ BuildDungeonLayout()

void yaze::editor::LayoutManager::BuildDungeonLayout ( ImGuiID  dockspace_id)
private
Todo:
[EditorManagerRefactor] Implement DockBuilder layout for Dungeon

Definition at line 121 of file layout_manager.cc.

Referenced by InitializeEditorLayout().

◆ BuildGraphicsLayout()

void yaze::editor::LayoutManager::BuildGraphicsLayout ( ImGuiID  dockspace_id)
private
Todo:
[EditorManagerRefactor] Implement DockBuilder layout for Graphics

Definition at line 162 of file layout_manager.cc.

Referenced by InitializeEditorLayout().

◆ BuildPaletteLayout()

void yaze::editor::LayoutManager::BuildPaletteLayout ( ImGuiID  dockspace_id)
private
Todo:
[EditorManagerRefactor] Implement DockBuilder layout for Palette

Definition at line 194 of file layout_manager.cc.

Referenced by InitializeEditorLayout().

◆ BuildScreenLayout()

void yaze::editor::LayoutManager::BuildScreenLayout ( ImGuiID  dockspace_id)
private
Todo:
[EditorManagerRefactor] Implement DockBuilder layout for Screen

Definition at line 232 of file layout_manager.cc.

Referenced by InitializeEditorLayout().

◆ BuildMusicLayout()

void yaze::editor::LayoutManager::BuildMusicLayout ( ImGuiID  dockspace_id)
private
Todo:
[EditorManagerRefactor] Implement DockBuilder layout for Music Editor

Definition at line 263 of file layout_manager.cc.

Referenced by InitializeEditorLayout().

◆ BuildSpriteLayout()

void yaze::editor::LayoutManager::BuildSpriteLayout ( ImGuiID  dockspace_id)
private
Todo:
[EditorManagerRefactor] Implement DockBuilder layout for Sprite

Definition at line 288 of file layout_manager.cc.

Referenced by InitializeEditorLayout().

◆ BuildMessageLayout()

void yaze::editor::LayoutManager::BuildMessageLayout ( ImGuiID  dockspace_id)
private
Todo:
[EditorManagerRefactor] Implement DockBuilder layout for Message

Definition at line 305 of file layout_manager.cc.

Referenced by InitializeEditorLayout().

◆ BuildAssemblyLayout()

void yaze::editor::LayoutManager::BuildAssemblyLayout ( ImGuiID  dockspace_id)
private
Todo:
[EditorManagerRefactor] Implement DockBuilder layout for Assembly

Definition at line 337 of file layout_manager.cc.

Referenced by InitializeEditorLayout().

◆ BuildSettingsLayout()

void yaze::editor::LayoutManager::BuildSettingsLayout ( ImGuiID  dockspace_id)
private
Todo:
[EditorManagerRefactor] Implement DockBuilder layout for Settings

Definition at line 360 of file layout_manager.cc.

Referenced by InitializeEditorLayout().

Member Data Documentation

◆ layouts_initialized_

std::unordered_map<EditorType, bool> yaze::editor::LayoutManager::layouts_initialized_
private

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