Files
XCEngine/new_editor/app/Composition/EditorShellInteractionEngine.h

45 lines
1.4 KiB
C++

#pragma once
#include "Rendering/Viewport/ViewportHostService.h"
#include <XCEditor/Shell/UIEditorShellInteraction.h>
#include <XCEditor/Workspace/UIEditorWorkspaceController.h>
#include <XCEditor/Workspace/UIEditorWorkspaceLayoutPersistence.h>
#include <XCEditor/Workspace/UIEditorWorkspaceSplitterDragCorrection.h>
#include <XCEngine/UI/Types.h>
#include <functional>
#include <vector>
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<UIEditorShellInteractionDefinition()> 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