yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
settings_panel.h
Go to the documentation of this file.
1#ifndef YAZE_APP_EDITOR_UI_SETTINGS_PANEL_H_
2#define YAZE_APP_EDITOR_UI_SETTINGS_PANEL_H_
3
4#include <string>
5
6#include "app/editor/editor.h"
10#include "core/project.h"
11
12namespace yaze {
13
14class Rom;
15
16namespace editor {
17
18class PanelManager;
19class ShortcutManager;
20
34class SettingsPanel : public Editor {
35 public:
39
40 void SetDependencies(const EditorDependencies& deps) override;
41
42 void Initialize() override {}
43 absl::Status Load() override { return absl::OkStatus(); }
44 absl::Status Save() override { return absl::OkStatus(); }
45 absl::Status Update() override { Draw(); return absl::OkStatus(); }
46
47 absl::Status Undo() override { return absl::OkStatus(); }
48 absl::Status Redo() override { return absl::OkStatus(); }
49 absl::Status Cut() override { return absl::OkStatus(); }
50 absl::Status Copy() override { return absl::OkStatus(); }
51 absl::Status Paste() override { return absl::OkStatus(); }
52 absl::Status Find() override { return absl::OkStatus(); }
53
54 void SetUserSettings(UserSettings* settings) { user_settings_ = settings; }
55 void SetPanelManager(PanelManager* registry) { panel_manager_ = registry; }
56 // Legacy alias during Panel→Panel rename.
57 void SetPanelRegistry(PanelManager* registry) { SetPanelManager(registry); }
59 void SetStatusBar(StatusBar* bar) { status_bar_ = bar; }
60 void SetRom(Rom* rom) { rom_ = rom; }
61 void SetProject(project::YazeProject* project) { project_ = project; }
62
63 // Main draw entry point
64 void Draw();
65
66 private:
69 void DrawEditorBehavior();
76 void DrawPanelShortcuts();
77 bool MatchesShortcutFilter(const std::string& text) const;
78 void DrawPatchSettings();
79 void DrawProjectSettings(); // New method
80 void DrawPatchList(const std::string& folder);
81 void DrawPatchDetails();
83
88 Rom* rom_ = nullptr;
89 project::YazeProject* project_ = nullptr; // Project reference
90
91 // Shortcut editing state
92 char shortcut_edit_buffer_[64] = {};
93 std::string editing_card_id_;
95 std::string shortcut_filter_;
96
97 // Patch system state
99 std::string selected_folder_;
101 bool patches_loaded_ = false;
102};
103
104} // namespace editor
105} // namespace yaze
106
107#endif // YAZE_APP_EDITOR_UI_SETTINGS_PANEL_H_
The Rom class is used to load, save, and modify Rom data. This is a generic SNES ROM container and do...
Definition rom.h:28
Represents a ZScream-compatible ASM patch file.
Definition asm_patch.h:74
Manages a collection of ZScream-compatible ASM patches.
Interface for editor classes.
Definition editor.h:236
Rom * rom() const
Definition editor.h:296
EditorType type_
Definition editor.h:305
Central registry for all editor cards with session awareness and dependency injection.
Manages the settings UI displayed in the right sidebar.
void SetStatusBar(StatusBar *bar)
void DrawPatchList(const std::string &folder)
absl::Status Paste() override
ShortcutManager * shortcut_manager_
void SetDependencies(const EditorDependencies &deps) override
absl::Status Copy() override
bool MatchesShortcutFilter(const std::string &text) const
void DrawParameterWidget(core::PatchParameter *param)
absl::Status Redo() override
absl::Status Undo() override
core::AsmPatch * selected_patch_
void SetPanelRegistry(PanelManager *registry)
void SetPanelManager(PanelManager *registry)
core::PatchManager patch_manager_
project::YazeProject * project_
void SetShortcutManager(ShortcutManager *manager)
void SetUserSettings(UserSettings *settings)
absl::Status Find() override
void SetProject(project::YazeProject *project)
absl::Status Save() override
absl::Status Update() override
absl::Status Load() override
absl::Status Cut() override
A session-aware status bar displayed at the bottom of the application.
Definition status_bar.h:39
Manages user preferences and settings persistence.
Represents a configurable parameter within an ASM patch.
Definition asm_patch.h:33
Unified dependency container for all editor types.
Definition editor.h:163
Modern project structure with comprehensive settings consolidation.
Definition project.h:120