yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
layout_presets.cc
Go to the documentation of this file.
2
3#include "core/features.h"
4
5namespace yaze {
6namespace editor {
7
10 preset.editor_type = type;
11
12 switch (type) {
14 preset.name = "Overworld Default";
15 preset.description =
16 "Minimal map-first layout with selector and map properties";
17 preset.default_visible_panels = {
20 };
22 preset.panel_positions = {
35 };
36 preset.optional_panels = {
42 };
43 break;
44
46 preset.name = "Dungeon Default";
47 preset.description = "Room workbench with inspector and fast navigation";
48
49 if (core::FeatureFlags::get().dungeon.kUseWorkbench) {
50 preset.default_visible_panels = {
54 };
55
56 // Place optional panels around the workbench so they dock predictably
57 // if/when the user opens them.
58 preset.panel_positions = {
68 };
69
70 preset.optional_panels = {
75 };
76 } else {
77 preset.default_visible_panels = {
81 };
82 preset.panel_positions = {
91 };
92 preset.optional_panels = {
97 };
98 }
99 break;
100
102 preset.name = "Graphics Default";
103 preset.description = "Sheet browser with pixel editor";
104 preset.default_visible_panels = {
107 };
108 preset.panel_positions = {
115 };
116 preset.optional_panels = {
121 };
122 break;
123
125 preset.name = "Palette Default";
126 preset.description = "Palette groups with editor and preview";
127 preset.default_visible_panels = {
130 };
131 preset.panel_positions = {
136 };
137 preset.optional_panels = {
143 };
144 break;
145
147 preset.name = "Sprite Default";
148 preset.description = "Sprite browser with editor";
149 preset.default_visible_panels = {
151 };
152 preset.panel_positions = {
155 };
156 preset.optional_panels = {
158 };
159 break;
160
162 preset.name = "Screen Default";
163 preset.description = "Screen browser with tileset editor";
164 preset.default_visible_panels = {
166 };
167 preset.panel_positions = {
172 };
173 preset.optional_panels = {
178 };
179 break;
180
182 preset.name = "Music Default";
183 preset.description = "Song browser with playback control and piano roll";
184 preset.default_visible_panels = {
188 };
189 preset.panel_positions = {
196 };
197 preset.optional_panels = {
201 };
202 break;
203
205 preset.name = "Message Default";
206 preset.description = "Message list with editor and preview";
207 preset.default_visible_panels = {
210 };
211 preset.panel_positions = {
216 };
217 preset.optional_panels = {
220 };
221 break;
222
224 preset.name = "Assembly Default";
225 preset.description =
226 "Assembly editor with browser, symbols, and disassembly";
227 preset.default_visible_panels = {
231 };
232 preset.panel_positions = {
239 };
240 preset.optional_panels = {
245 };
246 break;
247
249 preset.name = "Emulator Default";
250 preset.description = "Emulator with debugger tools";
251 preset.default_visible_panels = {
253 };
254 preset.panel_positions = {
263 };
264 preset.optional_panels = {
270 };
271 break;
272
273 case EditorType::kHex:
274 preset.name = "Memory Default";
275 preset.description = "Hex editor and memory inspection";
276 preset.default_visible_panels = {
278 };
279 preset.panel_positions = {
281 };
282 break;
283
285 preset.name = "Agent";
286 preset.description = "AI Agent Configuration and Chat";
287 preset.default_visible_panels = {
288 "agent.configuration",
289 "agent.status",
290 "agent.chat",
291 };
292 preset.panel_positions = {
293 {"agent.chat", DockPosition::Center},
294 {"agent.configuration", DockPosition::Right},
295 {"agent.status", DockPosition::Bottom},
296 };
297 preset.optional_panels = {"agent.prompt_editor", "agent.profiles",
298 "agent.history", "agent.metrics",
299 "agent.builder", "agent.knowledge"};
300 break;
301
302 default:
303 preset.name = "Default";
304 preset.description = "No specific layout";
305 break;
306 }
307
308 return preset;
309}
310
311std::unordered_map<EditorType, PanelLayoutPreset>
330
331std::vector<std::string> LayoutPresets::GetDefaultPanels(EditorType type) {
333}
334
335std::vector<std::string> LayoutPresets::GetAllPanelsForEditor(EditorType type) {
336 auto preset = GetDefaultPreset(type);
337 std::vector<std::string> all_panels = preset.default_visible_panels;
338 all_panels.insert(all_panels.end(), preset.optional_panels.begin(),
339 preset.optional_panels.end());
340 return all_panels;
341}
342
344 const std::string& panel_id) {
345 auto default_panels = GetDefaultPanels(type);
346 return std::find(default_panels.begin(), default_panels.end(), panel_id) !=
347 default_panels.end();
348}
349
350// ============================================================================
351// Named Workspace Presets
352// ============================================================================
353
369
371 PanelLayoutPreset preset;
372 preset.name = "Developer";
373 preset.description = "Debug and development focused layout";
374 preset.editor_type = EditorType::kUnknown; // Applies to all
375 preset.default_visible_panels = {
376 // Emulator/debug cards
384 // Assembly editing
387 // AI Agent for debugging assistance
389 };
390 return preset;
391}
392
422
424 PanelLayoutPreset preset;
425 preset.name = "Modder";
426 preset.description = "Full-featured layout for comprehensive editing";
427 preset.editor_type = EditorType::kUnknown; // Applies to all
428 preset.default_visible_panels = {
429 // Overworld cards
435 // Dungeon cards
443 // Graphics cards
446 // Palette cards
449 // Sprite cards
451 // Message editing
454 // AI Agent for assistance
456 };
457 return preset;
458}
459
461 PanelLayoutPreset preset;
462 preset.name = "Overworld Artist";
463 preset.description = "Complete overworld editing toolkit";
465 preset.default_visible_panels = {
466 // All overworld cards
478 // Palette support
482 // Graphics for tile editing
484 };
485 preset.panel_positions = {
501 };
502 return preset;
503}
504
508
510 PanelLayoutPreset preset;
511 preset.name = "Dungeon Master";
512 preset.description = "Complete dungeon editing toolkit";
514 preset.default_visible_panels = {
515 // All dungeon cards
524 // Palette support
527 // Graphics for room editing
531 };
532 preset.panel_positions = {
546 };
547 return preset;
548}
549
553
555 PanelLayoutPreset preset;
556 preset.name = "Logic Debugger";
557 preset.description = "Quality assurance and ROM testing layout";
559 preset.default_visible_panels = {
560 // Emulator core
565 // Debug tools
569 // Memory inspection
571 // AI Agent for test assistance
573 };
574 return preset;
575}
576
580
613
617
618} // namespace editor
619} // namespace yaze
static Flags & get()
Definition features.h:118
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 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 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 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 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