2026-03-25 15:35:00 +08:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include <memory>
|
|
|
|
|
#include <string>
|
|
|
|
|
|
|
|
|
|
namespace XCEngine {
|
|
|
|
|
namespace Editor {
|
|
|
|
|
|
|
|
|
|
class EventBus;
|
|
|
|
|
class ISelectionManager;
|
2026-03-25 16:25:55 +08:00
|
|
|
class IProjectManager;
|
2026-03-25 16:39:15 +08:00
|
|
|
class ISceneManager;
|
2026-03-26 01:59:14 +08:00
|
|
|
class IUndoManager;
|
2026-03-25 15:35:00 +08:00
|
|
|
|
|
|
|
|
class IEditorContext {
|
|
|
|
|
public:
|
|
|
|
|
virtual ~IEditorContext() = default;
|
|
|
|
|
|
|
|
|
|
virtual EventBus& GetEventBus() = 0;
|
|
|
|
|
virtual ISelectionManager& GetSelectionManager() = 0;
|
2026-03-25 16:39:15 +08:00
|
|
|
virtual ISceneManager& GetSceneManager() = 0;
|
2026-03-25 16:25:55 +08:00
|
|
|
virtual IProjectManager& GetProjectManager() = 0;
|
2026-03-26 01:59:14 +08:00
|
|
|
virtual IUndoManager& GetUndoManager() = 0;
|
2026-03-25 15:35:00 +08:00
|
|
|
|
|
|
|
|
virtual void SetProjectPath(const std::string& path) = 0;
|
|
|
|
|
virtual const std::string& GetProjectPath() const = 0;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|