Refactor editor windowing boundaries
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
#include "Platform/Win32/Windowing/EditorWindowManager.h"
|
||||
|
||||
#include "Platform/Win32/Windowing/EditorWindow.h"
|
||||
#include "Windowing/Content/EditorWindowContentFactory.h"
|
||||
#include "Windowing/Content/EditorWindowContentController.h"
|
||||
#include "Platform/Win32/Windowing/EditorWindowHostRuntime.h"
|
||||
#include "Platform/Win32/Windowing/EditorWindowLifecycleCoordinator.h"
|
||||
@@ -8,6 +9,8 @@
|
||||
#include "Platform/Win32/Windowing/EditorWindowMessageDispatcher.h"
|
||||
#include "Platform/Win32/Windowing/EditorWindowWorkspaceCoordinator.h"
|
||||
|
||||
#include <XCEditor/Workspace/UIEditorWorkspaceController.h>
|
||||
|
||||
#include <utility>
|
||||
|
||||
namespace XCEngine::UI::Editor::App {
|
||||
@@ -16,10 +19,12 @@ EditorWindowManager::EditorWindowManager(
|
||||
EditorWindowHostConfig hostConfig,
|
||||
std::filesystem::path repoRoot,
|
||||
EditorContext& editorContext)
|
||||
: m_hostRuntime(std::make_unique<EditorWindowHostRuntime>(
|
||||
: m_contentFactory(CreateDefaultEditorWindowContentFactory())
|
||||
, m_hostRuntime(std::make_unique<EditorWindowHostRuntime>(
|
||||
hostConfig,
|
||||
std::move(repoRoot),
|
||||
editorContext)) {
|
||||
editorContext,
|
||||
*m_contentFactory)) {
|
||||
m_workspaceCoordinator =
|
||||
std::make_unique<EditorWindowWorkspaceCoordinator>(*m_hostRuntime);
|
||||
m_utilityCoordinator =
|
||||
@@ -45,6 +50,27 @@ EditorWindow* EditorWindowManager::CreateEditorWindow(
|
||||
return window;
|
||||
}
|
||||
|
||||
EditorWindow* EditorWindowManager::CreateWorkspaceWindow(
|
||||
UIEditorWorkspaceController workspaceController,
|
||||
const CreateParams& params) {
|
||||
EditorWindow* const window =
|
||||
m_hostRuntime->CreateWorkspaceWindow(std::move(workspaceController), params);
|
||||
if (window != nullptr) {
|
||||
m_workspaceCoordinator->RegisterExistingWindow(*window);
|
||||
}
|
||||
return window;
|
||||
}
|
||||
|
||||
EditorWindow* EditorWindowManager::CreateUtilityWindow(
|
||||
const EditorUtilityWindowDescriptor& descriptor,
|
||||
const CreateParams& params) {
|
||||
EditorWindow* const window = m_hostRuntime->CreateUtilityWindow(descriptor, params);
|
||||
if (window != nullptr) {
|
||||
m_workspaceCoordinator->RegisterExistingWindow(*window);
|
||||
}
|
||||
return window;
|
||||
}
|
||||
|
||||
void EditorWindowManager::HandlePendingNativeWindowCreated(HWND hwnd) {
|
||||
m_hostRuntime->HandlePendingNativeWindowCreated(hwnd);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user