Refactor XCEditor into library-style layout

This commit is contained in:
2026-04-06 20:02:34 +08:00
parent f16620afc6
commit 2a61f0b20a
60 changed files with 524 additions and 502 deletions

View File

@@ -1,18 +1,16 @@
#include <XCNewEditor/Widgets/UIEditorCollectionPrimitives.h>
#include <XCEditor/Widgets/UIEditorCollectionPrimitives.h>
namespace XCEngine {
namespace UI {
namespace Widgets {
namespace XCEngine::UI::Editor::Widgets {
namespace {
float ResolveFloatToken(
const Style::UITheme& theme,
const ::XCEngine::UI::Style::UITheme& theme,
const char* tokenName,
float fallbackValue) {
const Style::UITokenResolveResult result =
theme.ResolveToken(tokenName, Style::UIStyleValueType::Float);
if (result.status != Style::UITokenResolveStatus::Resolved) {
const ::XCEngine::UI::Style::UITokenResolveResult result =
theme.ResolveToken(tokenName, ::XCEngine::UI::Style::UIStyleValueType::Float);
if (result.status != ::XCEngine::UI::Style::UITokenResolveStatus::Resolved) {
return fallbackValue;
}
@@ -76,7 +74,7 @@ bool DoesUIEditorCollectionPrimitiveClipChildren(UIEditorCollectionPrimitiveKind
float ResolveUIEditorCollectionPrimitivePadding(
UIEditorCollectionPrimitiveKind kind,
const Style::UITheme& theme) {
const ::XCEngine::UI::Style::UITheme& theme) {
return kind == UIEditorCollectionPrimitiveKind::TreeView ||
kind == UIEditorCollectionPrimitiveKind::ListView ||
kind == UIEditorCollectionPrimitiveKind::PropertySection
@@ -86,7 +84,7 @@ float ResolveUIEditorCollectionPrimitivePadding(
float ResolveUIEditorCollectionPrimitiveDefaultHeight(
UIEditorCollectionPrimitiveKind kind,
const Style::UITheme& theme) {
const ::XCEngine::UI::Style::UITheme& theme) {
switch (kind) {
case UIEditorCollectionPrimitiveKind::TreeItem:
return ResolveFloatToken(theme, "size.treeItemHeight", 28.0f);
@@ -103,13 +101,11 @@ float ResolveUIEditorCollectionPrimitiveDefaultHeight(
float ResolveUIEditorCollectionPrimitiveIndent(
UIEditorCollectionPrimitiveKind kind,
const Style::UITheme& theme,
const ::XCEngine::UI::Style::UITheme& theme,
float indentLevel) {
return kind == UIEditorCollectionPrimitiveKind::TreeItem
? indentLevel * ResolveFloatToken(theme, "size.treeIndent", 18.0f)
: 0.0f;
}
} // namespace Widgets
} // namespace UI
} // namespace XCEngine
} // namespace XCEngine::UI::Editor::Widgets