Refine editor window host structure and utility chrome
This commit is contained in:
79
editor/app/Windowing/Frame/EditorWindowFrameOrchestrator.h
Normal file
79
editor/app/Windowing/Frame/EditorWindowFrameOrchestrator.h
Normal file
@@ -0,0 +1,79 @@
|
||||
#pragma once
|
||||
|
||||
#include "Windowing/Frame/EditorWindowTransferRequests.h"
|
||||
|
||||
#include <XCEngine/UI/Types.h>
|
||||
|
||||
#include <string>
|
||||
#include <string_view>
|
||||
#include <vector>
|
||||
|
||||
namespace XCEngine::UI {
|
||||
|
||||
class UIDrawList;
|
||||
class UIDrawData;
|
||||
|
||||
struct UIRect;
|
||||
struct UIInputEvent;
|
||||
|
||||
} // namespace XCEngine::UI
|
||||
|
||||
namespace XCEngine::UI::Editor {
|
||||
|
||||
class UIEditorWorkspaceController;
|
||||
|
||||
struct UIEditorDockHostInteractionState;
|
||||
struct UIEditorShellInteractionFrame;
|
||||
struct UIEditorShellInteractionState;
|
||||
|
||||
} // namespace XCEngine::UI::Editor
|
||||
|
||||
namespace XCEngine::UI::Editor::App {
|
||||
|
||||
class EditorContext;
|
||||
class EditorShellRuntime;
|
||||
|
||||
class EditorWindowFrameOrchestrator final {
|
||||
public:
|
||||
EditorWindowFrameOrchestrator() = default;
|
||||
~EditorWindowFrameOrchestrator() = default;
|
||||
|
||||
EditorWindowFrameOrchestrator(const EditorWindowFrameOrchestrator&) = delete;
|
||||
EditorWindowFrameOrchestrator& operator=(const EditorWindowFrameOrchestrator&) = delete;
|
||||
EditorWindowFrameOrchestrator(EditorWindowFrameOrchestrator&&) = delete;
|
||||
EditorWindowFrameOrchestrator& operator=(EditorWindowFrameOrchestrator&&) = delete;
|
||||
|
||||
EditorWindowFrameTransferRequests UpdateAndAppend(
|
||||
EditorContext& editorContext,
|
||||
UIEditorWorkspaceController& workspaceController,
|
||||
EditorShellRuntime& shellRuntime,
|
||||
const ::XCEngine::UI::UIRect& workspaceBounds,
|
||||
const std::vector<::XCEngine::UI::UIInputEvent>& frameEvents,
|
||||
std::string_view captureStatusText,
|
||||
bool primary,
|
||||
bool globalTabDragActive,
|
||||
bool useDetachedTitleBarTabStrip,
|
||||
::XCEngine::UI::UIDrawData& drawData) const;
|
||||
void AppendInvalidFrame(
|
||||
EditorContext& editorContext,
|
||||
::XCEngine::UI::UIDrawList& drawList) const;
|
||||
std::string DescribeInputEvents(
|
||||
const std::vector<::XCEngine::UI::UIInputEvent>& events) const;
|
||||
|
||||
private:
|
||||
void LogInputTrace(
|
||||
EditorContext& editorContext,
|
||||
const UIEditorWorkspaceController& workspaceController,
|
||||
const UIEditorShellInteractionState& shellInteractionState,
|
||||
const std::vector<::XCEngine::UI::UIInputEvent>& frameEvents) const;
|
||||
void LogFrameInteractionTrace(
|
||||
const UIEditorWorkspaceController& workspaceController,
|
||||
const std::vector<::XCEngine::UI::UIInputEvent>& frameEvents,
|
||||
const UIEditorShellInteractionFrame& shellFrame) const;
|
||||
EditorWindowFrameTransferRequests BuildShellTransferRequests(
|
||||
bool globalTabDragActive,
|
||||
const UIEditorDockHostInteractionState& dockHostInteractionState,
|
||||
const UIEditorShellInteractionFrame& shellFrame) const;
|
||||
};
|
||||
|
||||
} // namespace XCEngine::UI::Editor::App
|
||||
Reference in New Issue
Block a user