#pragma once #include #include #include namespace XCEngine { namespace UI { namespace Widgets { enum class UIEditorCollectionPrimitiveKind : std::uint8_t { None = 0, ScrollView, TreeView, TreeItem, ListView, ListItem, PropertySection, FieldRow }; UIEditorCollectionPrimitiveKind ClassifyUIEditorCollectionPrimitive(std::string_view tagName); bool IsUIEditorCollectionPrimitiveContainer(UIEditorCollectionPrimitiveKind kind); bool UsesUIEditorCollectionPrimitiveColumnLayout(UIEditorCollectionPrimitiveKind kind); bool IsUIEditorCollectionPrimitiveHoverable(UIEditorCollectionPrimitiveKind kind); bool DoesUIEditorCollectionPrimitiveClipChildren(UIEditorCollectionPrimitiveKind kind); float ResolveUIEditorCollectionPrimitivePadding( UIEditorCollectionPrimitiveKind kind, const Style::UITheme& theme); float ResolveUIEditorCollectionPrimitiveDefaultHeight( UIEditorCollectionPrimitiveKind kind, const Style::UITheme& theme); float ResolveUIEditorCollectionPrimitiveIndent( UIEditorCollectionPrimitiveKind kind, const Style::UITheme& theme, float indentLevel); } // namespace Widgets } // namespace UI } // namespace XCEngine