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;
41};
42
44
59 public:
60 // Resolve the existing menu/profile names to their maintained presets.
61 static bool TryGetNamedPreset(const std::string& name,
62 PanelLayoutPreset* preset_out);
72
77 static std::unordered_map<EditorType, PanelLayoutPreset> GetAllPresets();
78 static std::unordered_map<EditorType, WorkspaceLayoutPreset>
82
88 static std::vector<std::string> GetDefaultPanels(EditorType type);
89 static std::vector<std::string> GetDefaultWindows(EditorType type) {
90 return GetDefaultPanels(type);
91 }
92
98 static std::vector<std::string> GetAllPanelsForEditor(EditorType type);
99 static std::vector<std::string> GetAllWindowsForEditor(EditorType type) {
100 return GetAllPanelsForEditor(type);
101 }
102
109 static bool IsDefaultPanel(EditorType type, const std::string& panel_id);
110 static bool IsDefaultWindow(EditorType type, const std::string& window_id) {
111 return IsDefaultPanel(type, window_id);
112 }
113
114 // ============================================================================
115 // Named Workspace Presets
116 // ============================================================================
117
122
127
132
137
142
147
152
157
158 // ============================================================================
159 // Panel ID Constants - synced with actual editor registrations
160 // ============================================================================
161 struct Panels {
162 // Overworld cards (overworld_editor.cc)
163 static constexpr const char* kOverworldCanvas = "overworld.canvas";
164 static constexpr const char* kOverworldTile16Editor =
165 "overworld.tile16_editor";
166 static constexpr const char* kOverworldTile16Selector =
167 "overworld.tile16_selector";
168 static constexpr const char* kOverworldTile8Selector =
169 "overworld.tile8_selector";
170 static constexpr const char* kOverworldAreaGraphics =
171 "overworld.area_graphics";
172 static constexpr const char* kOverworldScratch = "overworld.scratch";
173 static constexpr const char* kOverworldGfxGroups = "overworld.gfx_groups";
174 static constexpr const char* kOverworldUsageStats = "overworld.usage_stats";
175 static constexpr const char* kOverworldItemList = "overworld.item_list";
176 static constexpr const char* kOverworldMapProperties =
177 "overworld.properties";
178 static constexpr const char* kOverworldV3Settings = "overworld.v3_settings";
179 static constexpr const char* kOverworldDebug = "overworld.debug";
180
181 // Dungeon cards (dungeon_editor_v2.cc)
182 static constexpr const char* kDungeonWorkbench = "dungeon.workbench";
183 static constexpr const char* kDungeonRoomSelector = "dungeon.room_selector";
184 static constexpr const char* kDungeonRoomMatrix = "dungeon.room_matrix";
185 static constexpr const char* kDungeonEntranceList = "dungeon.entrance_list";
186 static constexpr const char* kDungeonEntrances =
187 "dungeon.entrance_properties";
188 static constexpr const char* kDungeonRoomGraphics = "dungeon.room_graphics";
189 static constexpr const char* kDungeonObjectSelector =
190 "dungeon.object_selector";
191 static constexpr const char* kDungeonObjectEditor = "dungeon.object_editor";
192 static constexpr const char* kDungeonDoorEditor = "dungeon.door_editor";
193 static constexpr const char* kDungeonPaletteEditor =
194 "dungeon.palette_editor";
195
196 // Graphics cards (graphics_editor.cc)
197 static constexpr const char* kGraphicsSheetEditor = "graphics.pixel_editor";
198 static constexpr const char* kGraphicsSheetBrowser =
199 "graphics.sheet_browser_v2";
200 static constexpr const char* kGraphicsPlayerAnimations =
201 "graphics.link_sprite_editor";
202 static constexpr const char* kGraphicsPaletteControls =
203 "graphics.palette_controls";
204 static constexpr const char* kGraphicsGfxGroupEditor =
205 "graphics.gfx_group_editor";
206 static constexpr const char* kGraphicsPalettesetEditor =
207 "graphics.paletteset_editor";
208
209 // Palette cards (palette_editor.cc)
210 static constexpr const char* kPaletteControlPanel = "palette.control_panel";
211 static constexpr const char* kPaletteOwMain = "palette.ow_main";
212 static constexpr const char* kPaletteOwAnimated = "palette.ow_animated";
213 static constexpr const char* kPaletteDungeonMain = "palette.dungeon_main";
214 static constexpr const char* kPaletteSprites = "palette.sprites";
215 static constexpr const char* kPaletteSpritesAux1 = "palette.sprites_aux1";
216 static constexpr const char* kPaletteSpritesAux2 = "palette.sprites_aux2";
217 static constexpr const char* kPaletteSpritesAux3 = "palette.sprites_aux3";
218 static constexpr const char* kPaletteEquipment = "palette.equipment";
219 static constexpr const char* kPaletteQuickAccess = "palette.quick_access";
220 static constexpr const char* kPaletteCustom = "palette.custom";
221
222 // Sprite cards (sprite_editor.cc)
223 static constexpr const char* kSpriteVanillaEditor = "sprite.vanilla_editor";
224 static constexpr const char* kSpriteCustomEditor = "sprite.custom_editor";
225 static constexpr const char* kSpriteCatalog = "sprite.catalog";
226
227 // Screen cards (screen_editor.cc)
228 static constexpr const char* kScreenDungeonMaps = "screen.dungeon_maps";
229 static constexpr const char* kScreenInventoryMenu = "screen.inventory_menu";
230 static constexpr const char* kScreenOverworldMap = "screen.overworld_map";
231 static constexpr const char* kScreenTitleScreen = "screen.title_screen";
232 static constexpr const char* kScreenNamingScreen = "screen.naming_screen";
233
234 // Music cards (music_editor.cc)
235 static constexpr const char* kMusicSongBrowser = "music.song_browser";
236 static constexpr const char* kMusicPlaybackControl =
237 "music.tracker"; // Playback control panel
238 static constexpr const char* kMusicPianoRoll = "music.piano_roll";
239 static constexpr const char* kMusicInstrumentEditor =
240 "music.instrument_editor";
241 static constexpr const char* kMusicSampleEditor = "music.sample_editor";
242 static constexpr const char* kMusicAssembly = "music.assembly";
243
244 // Message cards (message_editor.cc)
245 static constexpr const char* kMessageList = "message.message_list";
246 static constexpr const char* kMessageEditor = "message.message_editor";
247 static constexpr const char* kMessageFontAtlas = "message.font_atlas";
248 static constexpr const char* kMessageDictionary = "message.dictionary";
249
250 // Assembly cards (assembly_editor.cc)
251 static constexpr const char* kAssemblyEditor = "assembly.code_editor";
252 static constexpr const char* kAssemblyFileBrowser = "assembly.file_browser";
253 static constexpr const char* kAssemblySymbols = "assembly.symbols";
254 static constexpr const char* kAssemblyBuildOutput = "assembly.build_output";
255 static constexpr const char* kAssemblyDisassembly = "assembly.disassembly";
256 static constexpr const char* kAssemblyToolbar = "assembly.toolbar";
257
258 // Emulator cards (editor_manager.cc)
259 static constexpr const char* kEmulatorCpuDebugger = "emulator.cpu_debugger";
260 static constexpr const char* kEmulatorPpuViewer = "emulator.ppu_viewer";
261 static constexpr const char* kEmulatorMemoryViewer =
262 "emulator.memory_viewer";
263 static constexpr const char* kEmulatorBreakpoints = "emulator.breakpoints";
264 static constexpr const char* kEmulatorPerformance = "emulator.performance";
265 static constexpr const char* kEmulatorAiAgent = "emulator.ai_agent";
266 static constexpr const char* kEmulatorSaveStates = "emulator.save_states";
267 static constexpr const char* kEmulatorKeyboardConfig =
268 "emulator.keyboard_config";
269 static constexpr const char* kEmulatorVirtualController =
270 "emulator.virtual_controller";
271 static constexpr const char* kEmulatorApuDebugger = "emulator.apu_debugger";
272 static constexpr const char* kEmulatorAudioMixer = "emulator.audio_mixer";
273
274 // Memory cards (editor_manager.cc)
275 static constexpr const char* kMemoryHexEditor = "memory.hex_editor";
276 };
277
279};
280
281} // namespace editor
282} // namespace yaze
283
284#endif // YAZE_APP_EDITOR_LAYOUT_LAYOUT_PRESETS_H_
Centralized definition of default layouts per editor.
static std::vector< std::string > GetDefaultPanels(EditorType type)
Get default visible panels for an editor.
static PanelLayoutPreset GetLogicDebuggerPreset()
Get the "logic debugger" workspace preset (QA and debug focused)
static WorkspaceLayoutPreset GetDefaultWorkspacePreset(EditorType type)
static PanelLayoutPreset GetDungeonMasterPreset()
Get the "dungeon master" workspace preset.
static PanelLayoutPreset GetAudioEngineerPreset()
Get the "audio engineer" workspace preset (music focused)
static std::vector< std::string > GetAllPanelsForEditor(EditorType type)
Get all available panels for an editor (visible + hidden)
static std::vector< std::string > GetAllWindowsForEditor(EditorType type)
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 std::vector< std::string > GetDefaultWindows(EditorType type)
static std::unordered_map< EditorType, WorkspaceLayoutPreset > GetAllWorkspacePresets()
static PanelLayoutPreset GetOverworldArtistPreset()
Get the "overworld artist" workspace preset.
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 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.
static bool TryGetNamedPreset(const std::string &name, PanelLayoutPreset *preset_out)
static bool IsDefaultWindow(EditorType type, const std::string &window_id)
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 * kGraphicsPalettesetEditor
static constexpr const char * kPaletteControlPanel
static constexpr const char * kOverworldTile16Editor
static constexpr const char * kScreenOverworldMap
static constexpr const char * kEmulatorSaveStates
static constexpr const char * kOverworldDebug
static constexpr const char * kEmulatorAiAgent
static constexpr const char * kEmulatorPerformance
static constexpr const char * kPaletteOwMain
static constexpr const char * kMessageList
static constexpr const char * kDungeonObjectSelector
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 * kOverworldItemList
static constexpr const char * kDungeonWorkbench
static constexpr const char * kOverworldCanvas
static constexpr const char * kOverworldV3Settings
static constexpr const char * kAssemblyBuildOutput
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 * kEmulatorVirtualController
static constexpr const char * kAssemblySymbols
static constexpr const char * kGraphicsSheetBrowser
static constexpr const char * kAssemblyDisassembly
static constexpr const char * kPaletteEquipment
static constexpr const char * kDungeonRoomMatrix
static constexpr const char * kScreenNamingScreen
static constexpr const char * kGraphicsPaletteControls
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 * kSpriteCatalog
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 * 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 * kAssemblyToolbar
static constexpr const char * kEmulatorApuDebugger
static constexpr const char * kEmulatorPpuViewer
static constexpr const char * kOverworldScratch
static constexpr const char * kDungeonEntranceList
static constexpr const char * kScreenInventoryMenu
static constexpr const char * kSpriteCustomEditor
static constexpr const char * kPaletteDungeonMain
static constexpr const char * kGraphicsGfxGroupEditor
static constexpr const char * kMessageDictionary
static constexpr const char * kOverworldMapProperties
static constexpr const char * kEmulatorBreakpoints
static constexpr const char * kPaletteCustom
static constexpr const char * kDungeonDoorEditor
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