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 "Map-first layout with Tile16 and area graphics on the right";
17 preset.default_visible_panels = {
22 };
24 preset.panel_positions = {
37 };
38 preset.optional_panels = {
43 };
44 break;
45
47 preset.name = "Dungeon Default";
48 preset.description =
49 "Room-first workbench with embedded browser, inspector, and tools";
50
51 if (core::FeatureFlags::get().dungeon.kUseWorkbench) {
52 preset.default_visible_panels = {
54 };
56
57 // Place optional panels around the workbench so they dock predictably
58 // if/when the user opens them.
59 preset.panel_positions = {
68 };
69
70 preset.optional_panels = {
75 };
76 } else {
77 preset.default_visible_panels = {
80 };
81 preset.panel_positions = {
89 };
90 preset.optional_panels = {
94 };
95 }
96 break;
97
99 preset.name = "Graphics Default";
100 preset.description = "Sheet browser with pixel editor";
102 preset.default_visible_panels = {
105 };
106 preset.panel_positions = {
113 };
114 preset.optional_panels = {
119 };
120 break;
121
123 preset.name = "Palette Default";
124 preset.description =
125 "Palette selection and color editing in one workspace";
126 preset.default_visible_panels = {
128 };
130 preset.panel_positions = {
135 };
136 preset.optional_panels = {
142 };
143 break;
144
146 preset.name = "Sprite Default";
147 preset.description = "Sprite browser with editor";
148 preset.default_visible_panels = {
150 };
151 preset.panel_positions = {
155 };
156 preset.optional_panels = {
159 };
160 break;
161
163 preset.name = "Screen Default";
164 preset.description = "Screen browser with tileset editor";
165 preset.default_visible_panels = {
167 };
168 preset.panel_positions = {
173 };
174 preset.optional_panels = {
179 };
180 break;
181
183 preset.name = "Music Default";
184 preset.description = "Song browser with playback control and piano roll";
185 preset.default_visible_panels = {
189 };
190 preset.panel_positions = {
197 };
198 preset.optional_panels = {
202 };
203 break;
204
206 preset.name = "Message Default";
207 preset.description = "Message list with editor and preview";
208 preset.default_visible_panels = {
211 };
212 preset.panel_positions = {
217 };
218 preset.optional_panels = {
221 };
222 break;
223
225 preset.name = "Assembly Default";
226 preset.description =
227 "Assembly editor with browser, symbols, and disassembly";
228 preset.default_visible_panels = {
232 };
233 preset.panel_positions = {
240 };
241 preset.optional_panels = {
246 };
247 break;
248
250 preset.name = "Emulator Default";
251 preset.description = "Emulator with debugger tools";
252 preset.default_visible_panels = {
254 };
255 preset.panel_positions = {
264 };
265 preset.optional_panels = {
271 };
272 break;
273
274 case EditorType::kHex:
275 preset.name = "Memory Default";
276 preset.description = "Hex editor and memory inspection";
277 preset.default_visible_panels = {
279 };
280 preset.panel_positions = {
282 };
283 break;
284
286 preset.name = "Agent";
287 preset.description = "AI Agent Configuration and Chat";
288 preset.default_visible_panels = {
289 "agent.configuration",
290 "agent.status",
291 "agent.chat",
292 };
293 preset.panel_positions = {
294 {"agent.chat", DockPosition::Center},
295 {"agent.configuration", DockPosition::Right},
296 {"agent.status", DockPosition::Bottom},
297 };
298 preset.optional_panels = {"agent.prompt_editor", "agent.profiles",
299 "agent.history", "agent.metrics",
300 "agent.builder", "agent.knowledge"};
301 break;
302
304 preset.name = "Planning";
305 preset.description = "Goal, milestones, decisions and the play route";
306 preset.default_visible_panels = {"planning.overview", "planning.route"};
307 preset.panel_positions = {
308 {"planning.overview", DockPosition::Center},
309 {"planning.route", DockPosition::Right},
310 };
311 break;
312
313 default:
314 preset.name = "Default";
315 preset.description = "No specific layout";
316 break;
317 }
318
319 return preset;
320}
321
322std::unordered_map<EditorType, PanelLayoutPreset>
342
343std::vector<std::string> LayoutPresets::GetDefaultPanels(EditorType type) {
345}
346
347std::vector<std::string> LayoutPresets::GetAllPanelsForEditor(EditorType type) {
348 auto preset = GetDefaultPreset(type);
349 std::vector<std::string> all_panels = preset.default_visible_panels;
350 all_panels.insert(all_panels.end(), preset.optional_panels.begin(),
351 preset.optional_panels.end());
352 return all_panels;
353}
354
356 const std::string& panel_id) {
357 auto default_panels = GetDefaultPanels(type);
358 return std::find(default_panels.begin(), default_panels.end(), panel_id) !=
359 default_panels.end();
360}
361
362// ============================================================================
363// Named Workspace Presets
364// ============================================================================
365
381
383 PanelLayoutPreset preset;
384 preset.name = "Developer";
385 preset.description = "Debug and development focused layout";
386 preset.editor_type = EditorType::kUnknown; // Applies to all
387 preset.default_visible_panels = {
388 // Emulator/debug cards
396 // Assembly editing
399 // AI Agent for debugging assistance
401 };
402 return preset;
403}
404
434
436 PanelLayoutPreset preset;
437 preset.name = "Modder";
438 preset.description = "Full-featured layout for comprehensive editing";
439 preset.editor_type = EditorType::kUnknown; // Applies to all
440 preset.default_visible_panels = {
441 // Overworld cards
447 // Dungeon cards
453 // Graphics cards
456 // Palette cards
459 // Sprite cards
461 // Message editing
464 // AI Agent for assistance
466 };
467 return preset;
468}
469
471 PanelLayoutPreset preset;
472 preset.name = "Overworld Artist";
473 preset.description = "Complete overworld editing toolkit";
475 preset.default_visible_panels = {
476 // All overworld cards
488 // Palette support
492 // Graphics for tile editing
494 };
495 preset.panel_positions = {
511 };
512 return preset;
513}
514
518
555
559
561 PanelLayoutPreset preset;
562 preset.name = "Logic Debugger";
563 preset.description = "Quality assurance and ROM testing layout";
565 preset.default_visible_panels = {
566 // Emulator core
571 // Debug tools
575 // Memory inspection
577 // AI Agent for test assistance
579 };
580 return preset;
581}
582
586
619
623
624} // namespace editor
625} // namespace yaze
static Flags & get()
Definition features.h:119
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 * 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 * 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 * 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