#pragma once #include #include #include namespace XCEngine::UI::Editor { struct UIEditorObjectFieldInteractionState { Widgets::UIEditorObjectFieldState fieldState = {}; ::XCEngine::UI::UIPoint pointerPosition = {}; bool hasPointerPosition = false; }; struct UIEditorObjectFieldInteractionResult { bool consumed = false; bool focusChanged = false; bool activateRequested = false; bool clearRequested = false; Widgets::UIEditorObjectFieldHitTarget hitTarget = {}; }; struct UIEditorObjectFieldInteractionFrame { Widgets::UIEditorObjectFieldLayout layout = {}; UIEditorObjectFieldInteractionResult result = {}; }; UIEditorObjectFieldInteractionFrame UpdateUIEditorObjectFieldInteraction( UIEditorObjectFieldInteractionState& state, const Widgets::UIEditorObjectFieldSpec& spec, const ::XCEngine::UI::UIRect& bounds, const std::vector<::XCEngine::UI::UIInputEvent>& inputEvents, const Widgets::UIEditorObjectFieldMetrics& metrics = {}); } // namespace XCEngine::UI::Editor