#pragma once #include #include namespace XCEngine { namespace Editor { class EventBus; class ISelectionManager; class IProjectManager; class ISceneManager; class IUndoManager; class IEditorContext { public: virtual ~IEditorContext() = default; virtual EventBus& GetEventBus() = 0; virtual ISelectionManager& GetSelectionManager() = 0; virtual ISceneManager& GetSceneManager() = 0; virtual IProjectManager& GetProjectManager() = 0; virtual IUndoManager& GetUndoManager() = 0; virtual void SetProjectPath(const std::string& path) = 0; virtual const std::string& GetProjectPath() const = 0; }; } }