Files
XCEngine/editor/src/Docking/DockHostMeasureInternal.h

37 lines
1.2 KiB
C
Raw Normal View History

#pragma once
#include <XCEditor/Docking/UIEditorDockHost.h>
#include <string_view>
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