45 lines
1.4 KiB
C++
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
|