#pragma once #include #include #include namespace XCEngine::UI::Editor { struct UIEditorBoolFieldInteractionState { Widgets::UIEditorBoolFieldState fieldState = {}; ::XCEngine::UI::UIPoint pointerPosition = {}; bool hasPointerPosition = false; }; struct UIEditorBoolFieldInteractionResult { bool consumed = false; bool valueChanged = false; bool focusedChanged = false; bool newValue = false; Widgets::UIEditorBoolFieldHitTarget hitTarget = {}; }; struct UIEditorBoolFieldInteractionFrame { Widgets::UIEditorBoolFieldLayout layout = {}; UIEditorBoolFieldInteractionResult result = {}; }; UIEditorBoolFieldInteractionFrame UpdateUIEditorBoolFieldInteraction( UIEditorBoolFieldInteractionState& state, bool& value, const ::XCEngine::UI::UIRect& bounds, const Widgets::UIEditorBoolFieldSpec& spec, const std::vector<::XCEngine::UI::UIInputEvent>& inputEvents, const Widgets::UIEditorBoolFieldMetrics& metrics = {}); } // namespace XCEngine::UI::Editor