Refactor new editor boundaries and test ownership

This commit is contained in:
2026-04-19 15:52:28 +08:00
parent dc13b56cf3
commit 93f06e84ed
279 changed files with 6349 additions and 3238 deletions

View File

@@ -1,7 +1,8 @@
#include "Platform/Win32/WindowManager/Internal.h"
#include "Platform/Win32/WindowManager/EditorWindowMessageDispatcher.h"
#include "Bootstrap/EditorResources.h"
#include "State/EditorContext.h"
#include "Composition/EditorContext.h"
#include "Platform/Win32/EditorWindow.h"
#include <XCEditor/Foundation/UIEditorRuntimeTrace.h>
@@ -47,6 +48,32 @@ void EditorWindowManager::Shutdown() {
m_hostRuntime->Shutdown();
}
bool EditorWindowManager::TryDispatchWindowMessage(
HWND hwnd,
UINT message,
WPARAM wParam,
LPARAM lParam,
LRESULT& outResult) {
if (m_hostRuntime == nullptr || m_workspaceCoordinator == nullptr) {
return false;
}
EditorWindow* const window = m_hostRuntime->FindWindow(hwnd);
if (window == nullptr) {
return false;
}
return Internal::EditorWindowMessageDispatcher::TryDispatch(
hwnd,
*m_hostRuntime,
*m_workspaceCoordinator,
*window,
message,
wParam,
lParam,
outResult);
}
EditorWindow* EditorWindowManager::FindWindow(HWND hwnd) {
return m_hostRuntime->FindWindow(hwnd);
}
@@ -85,41 +112,6 @@ void EditorWindowManager::RenderAllWindows() {
*m_workspaceCoordinator);
}
bool EditorWindowManager::IsGlobalTabDragActive() const {
return m_workspaceCoordinator->IsGlobalTabDragActive();
}
bool EditorWindowManager::OwnsActiveGlobalTabDrag(std::string_view windowId) const {
return m_workspaceCoordinator->OwnsActiveGlobalTabDrag(windowId);
}
void EditorWindowManager::EndGlobalTabDragSession() {
m_workspaceCoordinator->EndGlobalTabDragSession();
}
void EditorWindowManager::HandleDestroyedWindow(HWND hwnd) {
if (EditorWindow* window = m_hostRuntime->FindWindow(hwnd); window != nullptr) {
m_workspaceCoordinator->HandleWindowDestroyed(*window);
}
m_hostRuntime->HandleDestroyedWindow(hwnd);
}
void EditorWindowManager::HandleWindowFrameTransferRequests(
EditorWindow& sourceWindow,
EditorWindowFrameTransferRequests&& transferRequests) {
m_workspaceCoordinator->HandleWindowFrameTransferRequests(
sourceWindow,
std::move(transferRequests));
}
bool EditorWindowManager::HandleGlobalTabDragPointerMove(HWND hwnd) {
return m_workspaceCoordinator->HandleGlobalTabDragPointerMove(hwnd);
}
bool EditorWindowManager::HandleGlobalTabDragPointerButtonUp(HWND hwnd) {
return m_workspaceCoordinator->HandleGlobalTabDragPointerButtonUp(hwnd);
}
} // namespace XCEngine::UI::Editor::App
namespace XCEngine::UI::Editor::App::Internal {