yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
layout_manager.h
Go to the documentation of this file.
1#ifndef YAZE_APP_EDITOR_UI_LAYOUT_MANAGER_H_
2#define YAZE_APP_EDITOR_UI_LAYOUT_MANAGER_H_
3
4#include <string>
5#include <unordered_map>
6
7#include "app/editor/editor.h"
8#include "imgui/imgui.h"
9
10namespace yaze {
11namespace editor {
12
28 public:
29 LayoutManager() = default;
30 ~LayoutManager() = default;
31
37 void InitializeEditorLayout(EditorType type, ImGuiID dockspace_id);
38
43 void SaveCurrentLayout(const std::string& name);
44
49 void LoadLayout(const std::string& name);
50
56
62 bool IsLayoutInitialized(EditorType type) const;
63
69
74
75 private:
76 // DockBuilder layout implementations for each editor type
77 void BuildOverworldLayout(ImGuiID dockspace_id);
78 void BuildDungeonLayout(ImGuiID dockspace_id);
79 void BuildGraphicsLayout(ImGuiID dockspace_id);
80 void BuildPaletteLayout(ImGuiID dockspace_id);
81 void BuildScreenLayout(ImGuiID dockspace_id);
82 void BuildMusicLayout(ImGuiID dockspace_id);
83 void BuildSpriteLayout(ImGuiID dockspace_id);
84 void BuildMessageLayout(ImGuiID dockspace_id);
85 void BuildAssemblyLayout(ImGuiID dockspace_id);
86 void BuildSettingsLayout(ImGuiID dockspace_id);
87
88 // Track which layouts have been initialized
89 std::unordered_map<EditorType, bool> layouts_initialized_;
90};
91
92} // namespace editor
93} // namespace yaze
94
95#endif // YAZE_APP_EDITOR_UI_LAYOUT_MANAGER_H_
96
Manages ImGui DockBuilder layouts for each editor type.
void LoadLayout(const std::string &name)
Load a saved layout by name.
void BuildScreenLayout(ImGuiID dockspace_id)
void BuildPaletteLayout(ImGuiID dockspace_id)
void BuildDungeonLayout(ImGuiID dockspace_id)
void BuildGraphicsLayout(ImGuiID dockspace_id)
void BuildAssemblyLayout(ImGuiID dockspace_id)
void ClearInitializationFlags()
Clear all initialization flags (for testing)
void BuildMessageLayout(ImGuiID dockspace_id)
std::unordered_map< EditorType, bool > layouts_initialized_
bool IsLayoutInitialized(EditorType type) const
Check if a layout has been initialized for an editor.
void BuildSettingsLayout(ImGuiID dockspace_id)
void ResetToDefaultLayout(EditorType type)
Reset the layout for an editor to its default.
void BuildOverworldLayout(ImGuiID dockspace_id)
void MarkLayoutInitialized(EditorType type)
Mark a layout as initialized.
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 BuildSpriteLayout(ImGuiID dockspace_id)
void BuildMusicLayout(ImGuiID dockspace_id)
Main namespace for the application.
Definition controller.cc:20