refactor(editor): Phase 1 architecture refactoring
- Decouple Panel from Core::Layer (P0 issue resolved) - Add EventBus with type-safe event system - Add ISelectionManager interface with SelectionManagerImpl - Add IEditorContext for dependency injection - Update EditorLayer to use new architecture - Update Application to create and inject EditorContext New files: - editor/src/Core/EventBus.h - editor/src/Core/EditorEvents.h - editor/src/Core/ISelectionManager.h - editor/src/Core/SelectionManagerImpl.h - editor/src/Core/IEditorContext.h - editor/src/Core/EditorContextImpl.h This enables future improvements: Undo/Redo, serialization, component extensibility.
This commit is contained in:
@@ -8,6 +8,7 @@
|
||||
namespace XCEngine {
|
||||
namespace Editor {
|
||||
|
||||
class IEditorContext;
|
||||
class MenuBar;
|
||||
class HierarchyPanel;
|
||||
class SceneViewPanel;
|
||||
@@ -27,13 +28,13 @@ public:
|
||||
void onEvent(void* event) override;
|
||||
void onImGuiRender() override;
|
||||
|
||||
void SetProjectPath(const std::string& path);
|
||||
void SetContext(std::shared_ptr<IEditorContext> context);
|
||||
|
||||
private:
|
||||
void setupDockspace();
|
||||
void renderAllPanels();
|
||||
|
||||
std::string m_projectPath;
|
||||
std::shared_ptr<IEditorContext> m_context;
|
||||
|
||||
std::unique_ptr<MenuBar> m_menuBar;
|
||||
std::unique_ptr<HierarchyPanel> m_hierarchyPanel;
|
||||
|
||||
Reference in New Issue
Block a user