Refactor new editor boundaries and test ownership
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user