Align SRP boundaries and editor windowing
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
#include "Windowing/EditorWindowShared.h"
|
||||
#include "Windowing/Frame/EditorWindowTransferRequests.h"
|
||||
#include "Windowing/Host/EditorWindowHostTypes.h"
|
||||
#include "Windowing/Host/EditorWindowPointerCapture.h"
|
||||
#include "Windowing/Host/EditorWindowTypes.h"
|
||||
@@ -8,6 +9,7 @@
|
||||
#include <XCEditor/Windowing/Presentation/EditorWorkspaceWindowProjection.h>
|
||||
|
||||
#include <memory>
|
||||
#include <filesystem>
|
||||
#include <string>
|
||||
#include <string_view>
|
||||
#include <vector>
|
||||
@@ -27,8 +29,14 @@ struct UIEditorDockHostTabDropTarget;
|
||||
namespace XCEngine::UI::Editor::App {
|
||||
|
||||
class EditorWindowHostCoordinator;
|
||||
class EditorWindowContentController;
|
||||
class EditorWindowDockHostBinding;
|
||||
class EditorWindowRuntimeController;
|
||||
|
||||
struct EditorHostWindowRuntimeInitializationParams {
|
||||
std::filesystem::path repoRoot = {};
|
||||
std::filesystem::path captureRoot = {};
|
||||
bool autoCaptureOnStartup = false;
|
||||
};
|
||||
|
||||
class EditorHostWindow {
|
||||
public:
|
||||
@@ -67,6 +75,13 @@ public:
|
||||
virtual void MarkClosing() = 0;
|
||||
virtual void MarkDestroyed() = 0;
|
||||
virtual bool IsRenderReady() const = 0;
|
||||
virtual bool InitializeRuntime(
|
||||
const EditorHostWindowRuntimeInitializationParams& params) = 0;
|
||||
virtual EditorWindowFrameTransferRequests RenderHostFrame(
|
||||
bool globalTabDragActive) = 0;
|
||||
virtual void ValidateHostFrame() const = 0;
|
||||
virtual void RequestSkipNextSteadyStateFrame() = 0;
|
||||
virtual bool ConsumeSkipNextSteadyStateFrame() = 0;
|
||||
virtual void Shutdown() = 0;
|
||||
virtual bool TryGetHostScreenRect(EditorWindowScreenRect& outRect) const = 0;
|
||||
virtual void SetHostScreenPosition(const EditorWindowScreenPoint& screenPoint) = 0;
|
||||
@@ -80,7 +95,7 @@ public:
|
||||
virtual ~EditorWindowHost() = default;
|
||||
|
||||
virtual EditorHostWindow* CreateHostWindow(
|
||||
std::unique_ptr<EditorWindowContentController> contentController,
|
||||
std::unique_ptr<EditorWindowRuntimeController> runtimeController,
|
||||
const EditorWindowCreateParams& params) = 0;
|
||||
virtual EditorHostWindow* FindWindowById(std::string_view windowId) = 0;
|
||||
virtual const EditorHostWindow* FindWindowById(std::string_view windowId) const = 0;
|
||||
@@ -106,7 +121,6 @@ public:
|
||||
virtual ~EditorWindowHostRuntimeServices() = default;
|
||||
|
||||
virtual void BindHostCoordinator(EditorWindowHostCoordinator& hostCoordinator) = 0;
|
||||
virtual void RenderAllWindows() = 0;
|
||||
};
|
||||
|
||||
} // namespace XCEngine::UI::Editor::App
|
||||
|
||||
Reference in New Issue
Block a user