refactor(editor): isolate windowing from composition runtime
This commit is contained in:
@@ -16,9 +16,11 @@ public:
|
||||
DefaultEditorWindowContentFactory(
|
||||
EditorWindowSystem& windowSystem,
|
||||
EditorWorkspacePanelRuntimeSetFactory workspacePanelFactory,
|
||||
EditorWorkspaceShellRuntimeFactory workspaceShellRuntimeFactory,
|
||||
EditorUtilityWindowPanelFactory utilityPanelFactory)
|
||||
: m_windowSystem(windowSystem)
|
||||
, m_workspacePanelFactory(std::move(workspacePanelFactory))
|
||||
, m_workspaceShellRuntimeFactory(std::move(workspaceShellRuntimeFactory))
|
||||
, m_utilityPanelFactory(std::move(utilityPanelFactory)) {}
|
||||
|
||||
std::unique_ptr<EditorWindowContentController> CreateWorkspaceContentController(
|
||||
@@ -27,10 +29,14 @@ public:
|
||||
m_workspacePanelFactory
|
||||
? m_workspacePanelFactory()
|
||||
: EditorWorkspacePanelRuntimeSet{};
|
||||
std::unique_ptr<EditorWorkspaceShellRuntime> shellRuntime =
|
||||
m_workspaceShellRuntimeFactory
|
||||
? m_workspaceShellRuntimeFactory(std::move(workspacePanels))
|
||||
: nullptr;
|
||||
return CreateEditorWorkspaceWindowContentController(
|
||||
windowState,
|
||||
m_windowSystem,
|
||||
std::move(workspacePanels));
|
||||
std::move(shellRuntime));
|
||||
}
|
||||
|
||||
std::unique_ptr<EditorWindowContentController> CreateUtilityContentController(
|
||||
@@ -47,6 +53,7 @@ public:
|
||||
private:
|
||||
EditorWindowSystem& m_windowSystem;
|
||||
EditorWorkspacePanelRuntimeSetFactory m_workspacePanelFactory = {};
|
||||
EditorWorkspaceShellRuntimeFactory m_workspaceShellRuntimeFactory = {};
|
||||
EditorUtilityWindowPanelFactory m_utilityPanelFactory = {};
|
||||
};
|
||||
|
||||
@@ -55,10 +62,12 @@ private:
|
||||
std::unique_ptr<EditorWindowContentFactory> CreateDefaultEditorWindowContentFactory(
|
||||
EditorWindowSystem& windowSystem,
|
||||
EditorWorkspacePanelRuntimeSetFactory workspacePanelFactory,
|
||||
EditorWorkspaceShellRuntimeFactory workspaceShellRuntimeFactory,
|
||||
EditorUtilityWindowPanelFactory utilityPanelFactory) {
|
||||
return std::make_unique<DefaultEditorWindowContentFactory>(
|
||||
windowSystem,
|
||||
std::move(workspacePanelFactory),
|
||||
std::move(workspaceShellRuntimeFactory),
|
||||
std::move(utilityPanelFactory));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user