1#ifndef YAZE_APP_EDITOR_REGISTRY_CONTENT_REGISTRY_H_
2#define YAZE_APP_EDITOR_REGISTRY_CONTENT_REGISTRY_H_
26class GlobalEditorContext;
29struct EditorDependencies;
32class HackWorkflowBackend;
33class ValidationCapability;
34class ProgressionCapability;
35class PlanningCapability;
56namespace ContentRegistry {
232std::vector<std::unique_ptr<WindowContent>>
CreateAll();
238void Register(std::unique_ptr<WindowContent> panel);
244std::vector<WindowContent*>
GetAll();
262namespace WindowContents = Panels;
276 auto editor = std::make_unique<T>();
277 editor->SetDependencies(deps);
297void add(
const std::string&
id,
const std::string& key,
298 const std::string& desc);
299std::vector<ShortcutDef>
GetAll();
305namespace WorkflowActions {
318std::vector<ActionDef>
GetAll();
335void add(
const std::string& section,
const std::string& key,
336 const std::string& default_val,
const std::string& desc);
337std::vector<SettingDef>
GetAll();
The Rom class is used to load, save, and modify Rom data. This is a generic SNES ROM container and do...
Interface for editor classes.
Instance-based runtime context replacing ContentRegistry::Context.
Manages ImGui DockBuilder layouts for each editor type.
Manages user preferences and settings persistence.
Base interface for all logical window content components.
std::vector< ProjectWorkflowHistoryEntry > workflow_history()
std::string build_workflow_log()
void ClearWorkflowHistory()
void SetGlobalContext(GlobalEditorContext *ctx)
void SetShowWorkflowOutputCallback(std::function< void()> callback)
void SetEditorWindowContext(const std::string &category, Editor *editor)
Rom * rom()
Get the current ROM instance.
void SetEventBus(::yaze::EventBus *bus)
Set the current EventBus instance.
::yaze::EventBus * event_bus()
Get the current EventBus instance.
void SetRom(Rom *rom)
Set the current ROM instance.
void SetGameData(::yaze::zelda3::GameData *data)
Set the current game data instance.
void AppendWorkflowHistory(const ProjectWorkflowHistoryEntry &entry)
UserSettings * user_settings()
Get the current UserSettings instance.
Editor * current_editor()
Get the currently active editor.
void SetRunProjectWorkflowCallback(std::function< void()> callback)
LayoutManager * layout_manager()
Get the shared LayoutManager instance.
void SetBuildWorkflowStatus(const ProjectWorkflowStatus &status)
void SetCancelBuildWorkflowCallback(std::function< void()> callback)
std::function< void()> cancel_build_workflow_callback()
void SetCurrentEditor(Editor *editor)
Set the currently active editor.
::yaze::zelda3::GameData * game_data()
Get the current game data instance.
void SetLayoutManager(LayoutManager *manager)
ProjectWorkflowStatus build_workflow_status()
workflow::PlanningCapability * hack_planning_backend()
::yaze::project::YazeProject * current_project()
Get the current project instance.
void SetBuildWorkflowLog(const std::string &output)
void SetStartBuildWorkflowCallback(std::function< void()> callback)
void SetRunWorkflowStatus(const ProjectWorkflowStatus &status)
workflow::ValidationCapability * hack_validation_backend()
std::function< void()> run_project_workflow_callback()
void SetHackWorkflowBackend(workflow::HackWorkflowBackend *backend)
void SetUserSettings(UserSettings *settings)
void Clear()
Clear all context state.
workflow::HackWorkflowBackend * hack_workflow_backend()
std::function< void()> show_workflow_output_callback()
std::function< void()> start_build_workflow_callback()
Editor * editor_window_context(const std::string &category)
ProjectWorkflowStatus run_workflow_status()
workflow::ProgressionCapability * hack_progression_backend()
void SetCurrentProject(::yaze::project::YazeProject *project)
Set the current project instance.
void RegisterFactory(EditorFactory factory)
std::function< std::unique_ptr< Editor >(const EditorDependencies &)> EditorFactory
std::vector< std::unique_ptr< Editor > > CreateAll(const EditorDependencies &deps)
void Clear()
Clear all registered panels.
void Register(std::unique_ptr< WindowContent > panel)
Register a panel instance (Legacy/Global).
std::vector< WindowContent * > GetAll()
Get all registered panels.
void add()
Register a panel type for auto-creation.
WindowContent * Get(const std::string &id)
Get a specific panel by its ID.
std::function< std::unique_ptr< WindowContent >()> PanelFactory
void RegisterFactory(PanelFactory factory)
Register a panel factory.
std::vector< std::unique_ptr< WindowContent > > CreateAll()
Create new instances of all registered panels.
void Register(const SettingDef &setting)
std::vector< SettingDef > GetAll()
void add(const std::string §ion, const std::string &key, const std::string &default_val, const std::string &desc)
std::vector< ShortcutDef > GetAll()
void add(const std::string &id, const std::string &key, const std::string &desc)
void Register(const ShortcutDef &shortcut)
std::vector< ActionDef > GetAll()
void Register(const ActionDef &action)
std::string default_value
std::function< void()> callback
std::function< bool()> enabled
Unified dependency container for all editor types.
Modern project structure with comprehensive settings consolidation.