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:
69
74 static std::unordered_map<EditorType, PanelLayoutPreset> GetAllPresets();
75 static std::unordered_map<EditorType, WorkspaceLayoutPreset>
79
85 static std::vector<std::string> GetDefaultPanels(EditorType type);
86 static std::vector<std::string> GetDefaultWindows(EditorType type) {
87 return GetDefaultPanels(type);
88 }
89
95 static std::vector<std::string> GetAllPanelsForEditor(EditorType type);
96 static std::vector<std::string> GetAllWindowsForEditor(EditorType type) {
97 return GetAllPanelsForEditor(type);
98 }
99
106 static bool IsDefaultPanel(EditorType type, const std::string& panel_id);
107 static bool IsDefaultWindow(EditorType type, const std::string& window_id) {
108 return IsDefaultPanel(type, window_id);
109 }
110
111 // ============================================================================
112 // Named Workspace Presets
113 // ============================================================================
114
119
124
129
134
139
144
149
154
159
164
169
174
175 // ============================================================================
176 // Panel ID Constants - synced with actual editor registrations
177 // ============================================================================
178 struct Panels {
179 // Overworld cards (overworld_editor.cc)
180 static constexpr const char* kOverworldCanvas = "overworld.canvas";
181 static constexpr const char* kOverworldTile16Editor =
182 "overworld.tile16_editor";
183 static constexpr const char* kOverworldTile16Selector =
184 "overworld.tile16_selector";
185 static constexpr const char* kOverworldTile8Selector =
186 "overworld.tile8_selector";
187 static constexpr const char* kOverworldAreaGraphics =
188 "overworld.area_graphics";
189 static constexpr const char* kOverworldScratch = "overworld.scratch";
190 static constexpr const char* kOverworldGfxGroups = "overworld.gfx_groups";
191 static constexpr const char* kOverworldUsageStats = "overworld.usage_stats";
192 static constexpr const char* kOverworldItemList = "overworld.item_list";
193 static constexpr const char* kOverworldMapProperties =
194 "overworld.properties";
195 static constexpr const char* kOverworldV3Settings = "overworld.v3_settings";
196 static constexpr const char* kOverworldDebug = "overworld.debug";
197
198 // Dungeon cards (dungeon_editor_v2.cc)
199 static constexpr const char* kDungeonWorkbench = "dungeon.workbench";
200 static constexpr const char* kDungeonRoomSelector = "dungeon.room_selector";
201 static constexpr const char* kDungeonRoomMatrix = "dungeon.room_matrix";
202 static constexpr const char* kDungeonEntranceList = "dungeon.entrance_list";
203 static constexpr const char* kDungeonEntrances =
204 "dungeon.entrance_properties";
205 static constexpr const char* kDungeonRoomGraphics = "dungeon.room_graphics";
206 static constexpr const char* kDungeonObjectEditor = "dungeon.object_editor";
207 static constexpr const char* kDungeonDoorEditor = "dungeon.door_editor";
208 static constexpr const char* kDungeonPaletteEditor =
209 "dungeon.palette_editor";
210
211 // Graphics cards (graphics_editor.cc)
212 static constexpr const char* kGraphicsSheetEditor = "graphics.pixel_editor";
213 static constexpr const char* kGraphicsSheetBrowser =
214 "graphics.sheet_browser_v2";
215 static constexpr const char* kGraphicsPlayerAnimations =
216 "graphics.link_sprite_editor";
217 static constexpr const char* kGraphicsPaletteControls =
218 "graphics.palette_controls";
219 static constexpr const char* kGraphicsGfxGroupEditor =
220 "graphics.gfx_group_editor";
221 static constexpr const char* kGraphicsPalettesetEditor =
222 "graphics.paletteset_editor";
223
224 // Palette cards (palette_editor.cc)
225 static constexpr const char* kPaletteControlPanel = "palette.control_panel";
226 static constexpr const char* kPaletteOwMain = "palette.ow_main";
227 static constexpr const char* kPaletteOwAnimated = "palette.ow_animated";
228 static constexpr const char* kPaletteDungeonMain = "palette.dungeon_main";
229 static constexpr const char* kPaletteSprites = "palette.sprites";
230 static constexpr const char* kPaletteSpritesAux1 = "palette.sprites_aux1";
231 static constexpr const char* kPaletteSpritesAux2 = "palette.sprites_aux2";
232 static constexpr const char* kPaletteSpritesAux3 = "palette.sprites_aux3";
233 static constexpr const char* kPaletteEquipment = "palette.equipment";
234 static constexpr const char* kPaletteQuickAccess = "palette.quick_access";
235 static constexpr const char* kPaletteCustom = "palette.custom";
236
237 // Sprite cards (sprite_editor.cc)
238 static constexpr const char* kSpriteVanillaEditor = "sprite.vanilla_editor";
239 static constexpr const char* kSpriteCustomEditor = "sprite.custom_editor";
240
241 // Screen cards (screen_editor.cc)
242 static constexpr const char* kScreenDungeonMaps = "screen.dungeon_maps";
243 static constexpr const char* kScreenInventoryMenu = "screen.inventory_menu";
244 static constexpr const char* kScreenOverworldMap = "screen.overworld_map";
245 static constexpr const char* kScreenTitleScreen = "screen.title_screen";
246 static constexpr const char* kScreenNamingScreen = "screen.naming_screen";
247
248 // Music cards (music_editor.cc)
249 static constexpr const char* kMusicSongBrowser = "music.song_browser";
250 static constexpr const char* kMusicPlaybackControl =
251 "music.tracker"; // Playback control panel
252 static constexpr const char* kMusicPianoRoll = "music.piano_roll";
253 static constexpr const char* kMusicInstrumentEditor =
254 "music.instrument_editor";
255 static constexpr const char* kMusicSampleEditor = "music.sample_editor";
256 static constexpr const char* kMusicAssembly = "music.assembly";
257
258 // Message cards (message_editor.cc)
259 static constexpr const char* kMessageList = "message.message_list";
260 static constexpr const char* kMessageEditor = "message.message_editor";
261 static constexpr const char* kMessageFontAtlas = "message.font_atlas";
262 static constexpr const char* kMessageDictionary = "message.dictionary";
263
264 // Assembly cards (assembly_editor.cc)
265 static constexpr const char* kAssemblyEditor = "assembly.code_editor";
266 static constexpr const char* kAssemblyFileBrowser = "assembly.file_browser";
267 static constexpr const char* kAssemblySymbols = "assembly.symbols";
268 static constexpr const char* kAssemblyBuildOutput = "assembly.build_output";
269 static constexpr const char* kAssemblyDisassembly = "assembly.disassembly";
270 static constexpr const char* kAssemblyToolbar = "assembly.toolbar";
271
272 // Emulator cards (editor_manager.cc)
273 static constexpr const char* kEmulatorCpuDebugger = "emulator.cpu_debugger";
274 static constexpr const char* kEmulatorPpuViewer = "emulator.ppu_viewer";
275 static constexpr const char* kEmulatorMemoryViewer =
276 "emulator.memory_viewer";
277 static constexpr const char* kEmulatorBreakpoints = "emulator.breakpoints";
278 static constexpr const char* kEmulatorPerformance = "emulator.performance";
279 static constexpr const char* kEmulatorAiAgent = "emulator.ai_agent";
280 static constexpr const char* kEmulatorSaveStates = "emulator.save_states";
281 static constexpr const char* kEmulatorKeyboardConfig =
282 "emulator.keyboard_config";
283 static constexpr const char* kEmulatorVirtualController =
284 "emulator.virtual_controller";
285 static constexpr const char* kEmulatorApuDebugger = "emulator.apu_debugger";
286 static constexpr const char* kEmulatorAudioMixer = "emulator.audio_mixer";
287
288 // Memory cards (editor_manager.cc)
289 static constexpr const char* kMemoryHexEditor = "memory.hex_editor";
290 };
291
293};
294
295} // namespace editor
296} // namespace yaze
297
298#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 GetDungeonExpertPreset()
Legacy alias for GetDungeonMasterPreset()
static PanelLayoutPreset GetTestingPreset()
Legacy alias for GetLogicDebuggerPreset()
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 PanelLayoutPreset GetAudioPreset()
Legacy alias for GetAudioEngineerPreset()
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 GetOverworldExpertPreset()
Legacy alias for GetOverworldArtistPreset()
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 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 * 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 * 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