#pragma once #include #include namespace XCEngine::UI::Editor::Internal { struct DockHostNodeMeasureResult { bool visible = false; ::XCEngine::UI::UISize minimumSize = {}; }; float ClampNonNegative(float value); ::XCEngine::UI::Layout::UILayoutAxis ToUILayoutAxis(UIEditorWorkspaceSplitAxis axis); float GetMainExtent( const ::XCEngine::UI::UISize& size, UIEditorWorkspaceSplitAxis axis); float GetMainExtent( const ::XCEngine::UI::UIRect& rect, UIEditorWorkspaceSplitAxis axis); bool IsWorkspacePanelOpenAndVisible( const UIEditorWorkspaceSession& session, std::string_view panelId); Widgets::UIEditorPanelFrameMetrics BuildDockTabContentFrameMetrics( const Widgets::UIEditorDockHostMetrics& metrics); ::XCEngine::UI::UISize MeasureDockTabContentMinimumSize( const Widgets::UIEditorDockHostMetrics& metrics); DockHostNodeMeasureResult MeasureDockHostNode( const UIEditorWorkspaceNode& node, const UIEditorPanelRegistry& panelRegistry, const UIEditorWorkspaceSession& session, const Widgets::UIEditorDockHostMetrics& metrics, const UIEditorTextMeasurer* textMeasurer = nullptr); } // namespace XCEngine::UI::Editor::Internal