refactor(new_editor/app): reorganize host structure and add smoke test

This commit is contained in:
2026-04-15 08:24:06 +08:00
parent 3617b4840b
commit 9e5954cf0a
235 changed files with 11157 additions and 10028 deletions

View File

@@ -0,0 +1,60 @@
#include "HierarchyPanelSupport.h"
namespace XCEngine::UI::Editor::App {
using namespace HierarchyPanelSupport;
void HierarchyPanel::Append(UIDrawList& drawList) const {
if (!m_visible ||
m_treeFrame.layout.bounds.width <= 0.0f ||
m_treeFrame.layout.bounds.height <= 0.0f) {
return;
}
const Widgets::UIEditorTreeViewPalette palette = BuildEditorTreeViewPalette();
const Widgets::UIEditorTreeViewMetrics metrics = BuildEditorTreeViewMetrics();
AppendUIEditorTreeViewBackground(
drawList,
m_treeFrame.layout,
m_treeItems,
m_selection,
m_treeInteractionState.treeViewState,
palette,
metrics);
AppendUIEditorTreeViewForeground(
drawList,
m_treeFrame.layout,
m_treeItems,
palette,
metrics);
if (!m_dragState.dragging || !m_dragState.validDropTarget) {
return;
}
if (m_dragState.dropToRoot) {
drawList.AddRectOutline(
m_treeFrame.layout.bounds,
kDragPreviewColor,
1.0f,
0.0f);
return;
}
const std::size_t visibleIndex = FindVisibleIndexForItemId(
m_treeFrame.layout,
m_treeItems,
m_dragState.dropTargetItemId);
if (visibleIndex == UIEditorTreeViewInvalidIndex ||
visibleIndex >= m_treeFrame.layout.rowRects.size()) {
return;
}
drawList.AddRectOutline(
m_treeFrame.layout.rowRects[visibleIndex],
kDragPreviewColor,
1.0f,
0.0f);
}
} // namespace XCEngine::UI::Editor::App