#pragma once #include "Rendering/Viewport/ViewportHostService.h" #include #include #include #include #include #include #include namespace XCEngine::UI { struct UIInputEvent; } // namespace XCEngine::UI namespace XCEngine::UI::Editor::App { struct EditorShellInteractionEngineContext { UIEditorShellInteractionState& shellInteractionState; UIEditorShellInteractionFrame& shellFrame; UIEditorWorkspaceSplitterDragCorrectionState& splitterDragCorrectionState; UIEditorWorkspaceController& workspaceController; const ::XCEngine::UI::UIRect& bounds; const std::vector<::XCEngine::UI::UIInputEvent>& inputEvents; const UIEditorShellInteractionServices& shellServices; std::function buildDefinition; bool hostedContentCaptureActive = false; bool useDetachedTitleBarTabStrip = false; float detachedTitleBarTabHeight = 0.0f; float detachedWindowChromeHeight = 0.0f; ViewportHostService& viewportHostService; }; class EditorShellInteractionEngine final { public: void Update(const EditorShellInteractionEngineContext& context) const; }; } // namespace XCEngine::UI::Editor::App