Open 3D Engine LyShine Gem API Reference 23.10.0
O3DE is an open-source, fully-featured, high-fidelity, modular 3D engine for building games and simulations, available to every industry.
UiInteractableComponent Class Reference

Inherits AZ::Component, UiInteractableBus::Handler, UiCanvasUpdateNotificationBus::Handler, UiElementNotificationBus::Handler, and UiInteractableActionsBus::Handler.

Inherited by UiButtonComponent, UiCheckboxComponent, UiDraggableComponent, UiDropdownComponent, UiMarkupButtonComponent, UiRadioButtonComponent, UiScrollBarComponent, UiScrollBoxComponent, UiSliderComponent, and UiTextInputComponent.

Public Member Functions

 AZ_RTTI (UiInteractableComponent, "{A42EB486-1C89-434C-AD22-A3FC6CEEC46F}", AZ::Component)
 
bool CanHandleEvent (AZ::Vector2 point) override
 
bool HandlePressed (AZ::Vector2 point, bool &shouldStayActive) override
 
bool HandleReleased (AZ::Vector2 point) override
 
bool HandleMultiTouchPressed (AZ::Vector2 point, int multiTouchIndex) override
 
bool HandleMultiTouchReleased (AZ::Vector2 point, int multiTouchIndex) override
 
bool HandleEnterPressed (bool &shouldStayActive) override
 
bool HandleEnterReleased () override
 
void InputPositionUpdate (AZ::Vector2 point) override
 
void MultiTouchPositionUpdate (AZ::Vector2 point, int multiTouchIndex) override
 
void LostActiveStatus () override
 
void HandleHoverStart () override
 
void HandleHoverEnd () override
 
void HandleReceivedHoverByNavigatingFromDescendant (AZ::EntityId descendantEntityId) override
 
bool IsPressed () override
 
bool IsHandlingEvents () override
 
void SetIsHandlingEvents (bool isHandlingEvents) override
 
bool IsHandlingMultiTouchEvents () override
 
void SetIsHandlingMultiTouchEvents (bool isHandlingMultiTouchEvents) override
 
bool GetIsAutoActivationEnabled () override
 
void SetIsAutoActivationEnabled (bool isEnabled) override
 
void Update (float deltaTime) override
 
void OnUiElementFixup (AZ::EntityId canvasEntityId, AZ::EntityId parentEntityId) override
 
void OnUiElementAndAncestorsEnabledChanged (bool areElementAndAncestorsEnabled) override
 
const LyShine::ActionNameGetHoverStartActionName () override
 
void SetHoverStartActionName (const LyShine::ActionName &actionName) override
 
const LyShine::ActionNameGetHoverEndActionName () override
 
void SetHoverEndActionName (const LyShine::ActionName &actionName) override
 
const LyShine::ActionNameGetPressedActionName () override
 
void SetPressedActionName (const LyShine::ActionName &actionName) override
 
const LyShine::ActionNameGetReleasedActionName () override
 
void SetReleasedActionName (const LyShine::ActionName &actionName) override
 
OnActionCallback GetHoverStartActionCallback () override
 
void SetHoverStartActionCallback (OnActionCallback onActionCallback) override
 
OnActionCallback GetHoverEndActionCallback () override
 
void SetHoverEndActionCallback (OnActionCallback onActionCallback) override
 
OnActionCallback GetPressedActionCallback () override
 
void SetPressedActionCallback (OnActionCallback onActionCallback) override
 
OnActionCallback GetReleasedActionCallback () override
 
void SetReleasedActionCallback (OnActionCallback onActionCallback) override
 

Static Public Member Functions

static void Reflect (AZ::ReflectContext *context)
 

Protected Types

using StateActions = AZStd::vector< UiInteractableStateAction * >
 

Protected Member Functions

void Init () override
 
void Activate () override
 
void Deactivate () override
 
virtual UiInteractableStatesInterface::State ComputeInteractableState ()
 Compute the current Interactable state based on internal state flags.
 
void OnHoverStateActionsChanged ()
 
void OnPressedStateActionsChanged ()
 
void OnDisabledStateActionsChanged ()
 
void TriggerHoverStartAction ()
 
void TriggerHoverEndAction ()
 
void TriggerPressedAction ()
 
void TriggerReleasedAction ()
 
void TriggerReceivedHoverByNavigatingFromDescendantAction (AZ::EntityId descendantEntityId)
 
virtual bool IsAutoActivationSupported ()
 

Protected Attributes

StateActions m_hoverStateActions
 Selected/Hover state properties.
 
StateActions m_pressedStateActions
 Pressed state properties.
 
StateActions m_disabledStateActions
 Disabled state properties.
 
LyShine::ActionName m_hoverStartActionName
 Action triggered on hover start.
 
LyShine::ActionName m_hoverEndActionName
 Action triggered on hover end.
 
LyShine::ActionName m_pressedActionName
 Action triggered on pressed.
 
LyShine::ActionName m_releasedActionName
 Action triggered on release.
 
bool m_isAutoActivationEnabled
 
bool m_isHandlingEvents
 True if this interactable is accepting input (i.e. not in disabled state)
 
bool m_isHandlingMultiTouchEvents
 True if this interactable is handling multi-touch input events.
 
bool m_isHover
 True if this interactable is being hovered (can be true at the same time as m_isPressed)
 
bool m_isPressed
 True if the interactable is in the pressed state (which can be true while dragging)
 
AZ::Vector2 m_pressedPoint
 the viewport position at which the press event occured (only valid if m_isPressed is true)
 
UiInteractableStatesInterface::State m_state
 The current interactable state. This is stored so that we can detect state changes.
 
OnActionCallback m_hoverStartActionCallback
 Callback triggered on hover start.
 
OnActionCallback m_hoverEndActionCallback
 Callback triggered on hover end.
 
OnActionCallback m_pressedActionCallback
 Callback triggered on pressed.
 
OnActionCallback m_releasedActionCallback
 Callback triggered on release.
 
UiStateActionManager m_stateActionManager
 
UiNavigationSettings m_navigationSettings
 

Member Function Documentation

◆ ComputeInteractableState()

virtual UiInteractableStatesInterface::State UiInteractableComponent::ComputeInteractableState ( )
protectedvirtual

Compute the current Interactable state based on internal state flags.

Reimplemented in UiDraggableComponent, UiScrollBarComponent, UiScrollBoxComponent, UiSliderComponent, and UiTextInputComponent.

Member Data Documentation

◆ m_isAutoActivationEnabled

bool UiInteractableComponent::m_isAutoActivationEnabled
protected

If true, the interactable automatically becomes active when navigated to via gamepad/keyboard. Otherwise, a key press is needed to put the interactable in an active state


The documentation for this class was generated from the following file: