yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
layout_presets.h
Go to the documentation of this file.
1#ifndef YAZE_APP_EDITOR_LAYOUT_LAYOUT_PRESETS_H_
2#define YAZE_APP_EDITOR_LAYOUT_LAYOUT_PRESETS_H_
3
4#include <string>
5#include <unordered_map>
6#include <vector>
7
8#include "app/editor/editor.h"
9
10namespace yaze {
11namespace editor {
12
17enum class DockPosition {
18 Center,
19 Left,
20 Right,
21 Bottom,
22 Top,
27};
28
34 std::string name;
35 std::string description;
37 std::vector<std::string> default_visible_panels;
38 std::vector<std::string> optional_panels; // Available but hidden by default
39 std::unordered_map<std::string, DockPosition> panel_positions;
40};
41
56 public:
63
68 static std::unordered_map<EditorType, PanelLayoutPreset> GetAllPresets();
69
75 static std::vector<std::string> GetDefaultPanels(EditorType type);
76
82 static std::vector<std::string> GetAllPanelsForEditor(EditorType type);
83
90 static bool IsDefaultPanel(EditorType type, const std::string& panel_id);
91
92 // ============================================================================
93 // Named Workspace Presets
94 // ============================================================================
95
100
105
110
115
120
125
130
135
136 // Legacy alias to ease Panel → Panel migration; prefer PanelLayoutPreset.
138
139 // ============================================================================
140 // Panel ID Constants - synced with actual editor registrations
141 // ============================================================================
142 struct Panels {
143 // Overworld cards (overworld_editor.cc)
144 static constexpr const char* kOverworldCanvas = "overworld.canvas";
145 static constexpr const char* kOverworldTile16Selector = "overworld.tile16_selector";
146 static constexpr const char* kOverworldTile8Selector = "overworld.tile8_selector";
147 static constexpr const char* kOverworldAreaGraphics = "overworld.area_graphics";
148 static constexpr const char* kOverworldScratch = "overworld.scratch";
149 static constexpr const char* kOverworldGfxGroups = "overworld.gfx_groups";
150 static constexpr const char* kOverworldUsageStats = "overworld.usage_stats";
151 static constexpr const char* kOverworldV3Settings = "overworld.v3_settings";
152
153 // Dungeon cards (dungeon_editor_v2.cc)
154 static constexpr const char* kDungeonControlPanel = "dungeon.control_panel";
155 static constexpr const char* kDungeonRoomSelector = "dungeon.room_selector";
156 static constexpr const char* kDungeonRoomMatrix = "dungeon.room_matrix";
157 static constexpr const char* kDungeonEntrances = "dungeon.entrances";
158 static constexpr const char* kDungeonRoomGraphics = "dungeon.room_graphics";
159 static constexpr const char* kDungeonObjectEditor = "dungeon.object_editor";
160 static constexpr const char* kDungeonPaletteEditor = "dungeon.palette_editor";
161 static constexpr const char* kDungeonDebugControls = "dungeon.debug_controls";
162
163 // Graphics cards (graphics_editor.cc)
164 static constexpr const char* kGraphicsSheetEditor = "graphics.sheet_editor";
165 static constexpr const char* kGraphicsSheetBrowser = "graphics.sheet_browser";
166 static constexpr const char* kGraphicsPlayerAnimations = "graphics.player_animations";
167 static constexpr const char* kGraphicsPrototypeViewer = "graphics.prototype_viewer";
168
169 // Palette cards (palette_editor.cc)
170 static constexpr const char* kPaletteControlPanel = "palette.control_panel";
171 static constexpr const char* kPaletteOwMain = "palette.ow_main";
172 static constexpr const char* kPaletteOwAnimated = "palette.ow_animated";
173 static constexpr const char* kPaletteDungeonMain = "palette.dungeon_main";
174 static constexpr const char* kPaletteSprites = "palette.sprites";
175 static constexpr const char* kPaletteSpritesAux1 = "palette.sprites_aux1";
176 static constexpr const char* kPaletteSpritesAux2 = "palette.sprites_aux2";
177 static constexpr const char* kPaletteSpritesAux3 = "palette.sprites_aux3";
178 static constexpr const char* kPaletteEquipment = "palette.equipment";
179 static constexpr const char* kPaletteQuickAccess = "palette.quick_access";
180 static constexpr const char* kPaletteCustom = "palette.custom";
181
182 // Sprite cards (sprite_editor.cc)
183 static constexpr const char* kSpriteVanillaEditor = "sprite.vanilla_editor";
184 static constexpr const char* kSpriteCustomEditor = "sprite.custom_editor";
185
186 // Screen cards (screen_editor.cc)
187 static constexpr const char* kScreenDungeonMaps = "screen.dungeon_maps";
188 static constexpr const char* kScreenInventoryMenu = "screen.inventory_menu";
189 static constexpr const char* kScreenOverworldMap = "screen.overworld_map";
190 static constexpr const char* kScreenTitleScreen = "screen.title_screen";
191 static constexpr const char* kScreenNamingScreen = "screen.naming_screen";
192
193 // Music cards (music_editor.cc)
194 static constexpr const char* kMusicSongBrowser = "music.song_browser";
195 static constexpr const char* kMusicPlaybackControl = "music.tracker"; // Playback control panel
196 static constexpr const char* kMusicPianoRoll = "music.piano_roll";
197 static constexpr const char* kMusicInstrumentEditor = "music.instrument_editor";
198 static constexpr const char* kMusicSampleEditor = "music.sample_editor";
199 static constexpr const char* kMusicAssembly = "music.assembly";
200
201 // Message cards (message_editor.cc)
202 static constexpr const char* kMessageList = "message.message_list";
203 static constexpr const char* kMessageEditor = "message.message_editor";
204 static constexpr const char* kMessageFontAtlas = "message.font_atlas";
205 static constexpr const char* kMessageDictionary = "message.dictionary";
206
207 // Assembly cards (assembly_editor.cc)
208 static constexpr const char* kAssemblyEditor = "assembly.editor";
209 static constexpr const char* kAssemblyFileBrowser = "assembly.file_browser";
210
211 // Emulator cards (editor_manager.cc)
212 static constexpr const char* kEmulatorCpuDebugger = "emulator.cpu_debugger";
213 static constexpr const char* kEmulatorPpuViewer = "emulator.ppu_viewer";
214 static constexpr const char* kEmulatorMemoryViewer = "emulator.memory_viewer";
215 static constexpr const char* kEmulatorBreakpoints = "emulator.breakpoints";
216 static constexpr const char* kEmulatorPerformance = "emulator.performance";
217 static constexpr const char* kEmulatorAiAgent = "emulator.ai_agent";
218 static constexpr const char* kEmulatorSaveStates = "emulator.save_states";
219 static constexpr const char* kEmulatorKeyboardConfig = "emulator.keyboard_config";
220 static constexpr const char* kEmulatorApuDebugger = "emulator.apu_debugger";
221 static constexpr const char* kEmulatorAudioMixer = "emulator.audio_mixer";
222
223 // Memory cards (editor_manager.cc)
224 static constexpr const char* kMemoryHexEditor = "memory.hex_editor";
225 };
226};
227
228} // namespace editor
229} // namespace yaze
230
231#endif // YAZE_APP_EDITOR_LAYOUT_LAYOUT_PRESETS_H_
232
Centralized definition of default layouts per editor.
static std::vector< std::string > GetDefaultPanels(EditorType type)
Get default visible panels for an editor.
PanelLayoutPreset PanelLayoutPreset
static PanelLayoutPreset GetDungeonExpertPreset()
Get the "dungeon expert" workspace preset.
static PanelLayoutPreset GetTestingPreset()
Get the "testing" workspace preset (QA focused)
static std::vector< std::string > GetAllPanelsForEditor(EditorType type)
Get all available panels for an editor (visible + hidden)
static PanelLayoutPreset GetDesignerPreset()
Get the "designer" workspace preset (visual-focused)
static bool IsDefaultPanel(EditorType type, const std::string &panel_id)
Check if a panel should be visible by default.
static PanelLayoutPreset GetAudioPreset()
Get the "audio" workspace preset (music focused)
static PanelLayoutPreset GetDefaultPreset(EditorType type)
Get the default layout preset for an editor type.
static PanelLayoutPreset GetModderPreset()
Get the "modder" workspace preset (full-featured)
static PanelLayoutPreset GetOverworldExpertPreset()
Get the "overworld expert" workspace preset.
static PanelLayoutPreset GetMinimalPreset()
Get the "minimal" workspace preset (minimal cards)
static PanelLayoutPreset GetDeveloperPreset()
Get the "developer" workspace preset (debug-focused)
static std::unordered_map< EditorType, PanelLayoutPreset > GetAllPresets()
Get all available presets.
DockPosition
Preferred dock position for a card in a layout.
static constexpr const char * kMusicSampleEditor
static constexpr const char * kMusicInstrumentEditor
static constexpr const char * kPaletteQuickAccess
static constexpr const char * kMusicPlaybackControl
static constexpr const char * kOverworldTile8Selector
static constexpr const char * kPaletteControlPanel
static constexpr const char * kScreenOverworldMap
static constexpr const char * kEmulatorSaveStates
static constexpr const char * kEmulatorAiAgent
static constexpr const char * kEmulatorPerformance
static constexpr const char * kDungeonControlPanel
static constexpr const char * kPaletteOwMain
static constexpr const char * kMessageList
static constexpr const char * kGraphicsPlayerAnimations
static constexpr const char * kMusicSongBrowser
static constexpr const char * kPaletteSpritesAux2
static constexpr const char * kMusicPianoRoll
static constexpr const char * kDungeonRoomGraphics
static constexpr const char * kEmulatorAudioMixer
static constexpr const char * kOverworldCanvas
static constexpr const char * kOverworldV3Settings
static constexpr const char * kAssemblyEditor
static constexpr const char * kEmulatorKeyboardConfig
static constexpr const char * kDungeonEntrances
static constexpr const char * kDungeonObjectEditor
static constexpr const char * kMemoryHexEditor
static constexpr const char * kGraphicsSheetBrowser
static constexpr const char * kPaletteEquipment
static constexpr const char * kDungeonRoomMatrix
static constexpr const char * kScreenNamingScreen
static constexpr const char * kPaletteSprites
static constexpr const char * kScreenDungeonMaps
static constexpr const char * kSpriteVanillaEditor
static constexpr const char * kPaletteSpritesAux3
static constexpr const char * kPaletteSpritesAux1
static constexpr const char * kGraphicsPrototypeViewer
static constexpr const char * kDungeonRoomSelector
static constexpr const char * kAssemblyFileBrowser
static constexpr const char * kPaletteOwAnimated
static constexpr const char * kGraphicsSheetEditor
static constexpr const char * kOverworldAreaGraphics
static constexpr const char * kDungeonDebugControls
static constexpr const char * kDungeonPaletteEditor
static constexpr const char * kOverworldUsageStats
static constexpr const char * kMessageFontAtlas
static constexpr const char * kOverworldTile16Selector
static constexpr const char * kMusicAssembly
static constexpr const char * kEmulatorApuDebugger
static constexpr const char * kEmulatorPpuViewer
static constexpr const char * kOverworldScratch
static constexpr const char * kScreenInventoryMenu
static constexpr const char * kSpriteCustomEditor
static constexpr const char * kPaletteDungeonMain
static constexpr const char * kMessageDictionary
static constexpr const char * kEmulatorBreakpoints
static constexpr const char * kPaletteCustom
static constexpr const char * kOverworldGfxGroups
static constexpr const char * kEmulatorMemoryViewer
static constexpr const char * kScreenTitleScreen
static constexpr const char * kEmulatorCpuDebugger
static constexpr const char * kMessageEditor
Defines default panel visibility for an editor type.
std::vector< std::string > optional_panels
std::unordered_map< std::string, DockPosition > panel_positions
std::vector< std::string > default_visible_panels