new_editor: remove tree panel behavior layer

This commit is contained in:
2026-04-22 18:37:05 +08:00
parent 6d97f4fc3a
commit c1e7a0d49f
12 changed files with 567 additions and 398 deletions

View File

@@ -13,6 +13,12 @@
namespace XCEngine::UI::Editor {
struct UIEditorHostedTreeViewInputOptions {
bool allowInteraction = false;
bool hasInputFocus = false;
bool captureActive = false;
};
struct UIEditorTreeViewInteractionState {
Widgets::UIEditorTreeViewState treeViewState = {};
UIEditorScrollViewInteractionState scrollViewInteractionState = {};
@@ -42,6 +48,13 @@ struct UIEditorTreeViewInteractionFrame {
UIEditorTreeViewInteractionResult result = {};
};
std::vector<::XCEngine::UI::UIInputEvent> BuildUIEditorHostedTreeViewInputEvents(
const ::XCEngine::UI::UIRect& bounds,
const std::vector<::XCEngine::UI::UIInputEvent>& inputEvents,
const UIEditorHostedTreeViewInputOptions& options,
bool synthesizeFocusGained = false,
bool synthesizeFocusLost = false);
UIEditorTreeViewInteractionFrame UpdateUIEditorTreeViewInteraction(
UIEditorTreeViewInteractionState& state,
::XCEngine::UI::Widgets::UISelectionModel& selectionModel,