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 // ============================================================================
137 // Panel ID Constants - synced with actual editor registrations
138 // ============================================================================
139 struct Panels {
140 // Overworld cards (overworld_editor.cc)
141 static constexpr const char* kOverworldCanvas = "overworld.canvas";
142 static constexpr const char* kOverworldTile16Selector = "overworld.tile16_selector";
143 static constexpr const char* kOverworldTile8Selector = "overworld.tile8_selector";
144 static constexpr const char* kOverworldAreaGraphics = "overworld.area_graphics";
145 static constexpr const char* kOverworldScratch = "overworld.scratch";
146 static constexpr const char* kOverworldGfxGroups = "overworld.gfx_groups";
147 static constexpr const char* kOverworldUsageStats = "overworld.usage_stats";
148 static constexpr const char* kOverworldV3Settings = "overworld.v3_settings";
149
150 // Dungeon cards (dungeon_editor_v2.cc)
151 static constexpr const char* kDungeonControlPanel = "dungeon.control_panel";
152 static constexpr const char* kDungeonRoomSelector = "dungeon.room_selector";
153 static constexpr const char* kDungeonRoomMatrix = "dungeon.room_matrix";
154 static constexpr const char* kDungeonEntrances = "dungeon.entrances";
155 static constexpr const char* kDungeonRoomGraphics = "dungeon.room_graphics";
156 static constexpr const char* kDungeonObjectEditor = "dungeon.object_editor";
157 static constexpr const char* kDungeonPaletteEditor = "dungeon.palette_editor";
158 static constexpr const char* kDungeonDebugControls = "dungeon.debug_controls";
159
160 // Graphics cards (graphics_editor.cc)
161 static constexpr const char* kGraphicsSheetEditor = "graphics.sheet_editor";
162 static constexpr const char* kGraphicsSheetBrowser = "graphics.sheet_browser";
163 static constexpr const char* kGraphicsPlayerAnimations = "graphics.player_animations";
164 static constexpr const char* kGraphicsPrototypeViewer = "graphics.prototype_viewer";
165
166 // Palette cards (palette_editor.cc)
167 static constexpr const char* kPaletteControlPanel = "palette.control_panel";
168 static constexpr const char* kPaletteOwMain = "palette.ow_main";
169 static constexpr const char* kPaletteOwAnimated = "palette.ow_animated";
170 static constexpr const char* kPaletteDungeonMain = "palette.dungeon_main";
171 static constexpr const char* kPaletteSprites = "palette.sprites";
172 static constexpr const char* kPaletteSpritesAux1 = "palette.sprites_aux1";
173 static constexpr const char* kPaletteSpritesAux2 = "palette.sprites_aux2";
174 static constexpr const char* kPaletteSpritesAux3 = "palette.sprites_aux3";
175 static constexpr const char* kPaletteEquipment = "palette.equipment";
176 static constexpr const char* kPaletteQuickAccess = "palette.quick_access";
177 static constexpr const char* kPaletteCustom = "palette.custom";
178
179 // Sprite cards (sprite_editor.cc)
180 static constexpr const char* kSpriteVanillaEditor = "sprite.vanilla_editor";
181 static constexpr const char* kSpriteCustomEditor = "sprite.custom_editor";
182
183 // Screen cards (screen_editor.cc)
184 static constexpr const char* kScreenDungeonMaps = "screen.dungeon_maps";
185 static constexpr const char* kScreenInventoryMenu = "screen.inventory_menu";
186 static constexpr const char* kScreenOverworldMap = "screen.overworld_map";
187 static constexpr const char* kScreenTitleScreen = "screen.title_screen";
188 static constexpr const char* kScreenNamingScreen = "screen.naming_screen";
189
190 // Music cards (music_editor.cc)
191 static constexpr const char* kMusicSongBrowser = "music.song_browser";
192 static constexpr const char* kMusicPlaybackControl = "music.tracker"; // Playback control panel
193 static constexpr const char* kMusicPianoRoll = "music.piano_roll";
194 static constexpr const char* kMusicInstrumentEditor = "music.instrument_editor";
195 static constexpr const char* kMusicSampleEditor = "music.sample_editor";
196 static constexpr const char* kMusicAssembly = "music.assembly";
197
198 // Message cards (message_editor.cc)
199 static constexpr const char* kMessageList = "message.message_list";
200 static constexpr const char* kMessageEditor = "message.message_editor";
201 static constexpr const char* kMessageFontAtlas = "message.font_atlas";
202 static constexpr const char* kMessageDictionary = "message.dictionary";
203
204 // Assembly cards (assembly_editor.cc)
205 static constexpr const char* kAssemblyEditor = "assembly.editor";
206 static constexpr const char* kAssemblyFileBrowser = "assembly.file_browser";
207
208 // Emulator cards (editor_manager.cc)
209 static constexpr const char* kEmulatorCpuDebugger = "emulator.cpu_debugger";
210 static constexpr const char* kEmulatorPpuViewer = "emulator.ppu_viewer";
211 static constexpr const char* kEmulatorMemoryViewer = "emulator.memory_viewer";
212 static constexpr const char* kEmulatorBreakpoints = "emulator.breakpoints";
213 static constexpr const char* kEmulatorPerformance = "emulator.performance";
214 static constexpr const char* kEmulatorAiAgent = "emulator.ai_agent";
215 static constexpr const char* kEmulatorSaveStates = "emulator.save_states";
216 static constexpr const char* kEmulatorKeyboardConfig = "emulator.keyboard_config";
217 static constexpr const char* kEmulatorApuDebugger = "emulator.apu_debugger";
218 static constexpr const char* kEmulatorAudioMixer = "emulator.audio_mixer";
219
220 // Memory cards (editor_manager.cc)
221 static constexpr const char* kMemoryHexEditor = "memory.hex_editor";
222 };
223};
224
225} // namespace editor
226} // namespace yaze
227
228#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 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