Enum bevy_ui_navigation::events::NavEvent
source · pub enum NavEvent {
InitiallyFocused(Entity),
FocusChanged {
to: NonEmpty<Entity>,
from: NonEmpty<Entity>,
},
NoChanges {
from: NonEmpty<Entity>,
request: NavRequest,
},
Locked(LockReason),
Unlocked(LockReason),
}Expand description
Events emitted by the navigation system.
Useful if you want to react to NavEvent::NoChanges event, for example
when a “start game” button is focused and the NavRequest::Action is
pressed.
Variants§
InitiallyFocused(Entity)
Tells the app which element is the first one to be focused.
This will be sent whenever the number of focused elements go from 0 to 1.
Meaning: whenever you spawn a new UI with Focusable elements.
The order of selection when no Focusable is focused yet is as follow:
- The prioritized
Focusableof the root menu - Any prioritized
Focusable - Any
Focusablein the root menu - Any
Focusable
FocusChanged
Fields
Focus changed.
Notes
Both to and from are ascending, meaning that the focused and newly
focused elements are the first of their respective vectors.
NonEmpty enables you to safely check to.first() or from.first()
without returning an option. It is guaranteed that there is at least
one element.
NoChanges
Fields
from: NonEmpty<Entity>The active elements from the focused one to the last active which is affected by the focus change.
request: NavRequestThe NavRequest that didn’t do anything.
The NavRequest didn’t lead to any change in focus.
Locked(LockReason)
The navigation lock has been enabled.
Either by a lock focusable or NavRequest::Lock.
Once the navigation plugin enters a locked state, the only way to exit
it is to send a NavRequest::Unlock.
Unlocked(LockReason)
The navigation lock has been released.
The navigation system was in a locked state triggered [Entity],
is now unlocked, and receiving events again.
Implementations§
sourcepub fn is_activated(&self, entity: Entity) -> bool
pub fn is_activated(&self, entity: Entity) -> bool
Whether this event is a NavEvent::NoChanges
triggered by a NavRequest::Action
if entity is the currently focused element.
Trait Implementations§
Auto Trait Implementations§
Blanket Implementations§
§impl<T, U> AsBindGroupShaderType<U> for T
impl<T, U> AsBindGroupShaderType<U> for T
§fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U
fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U
T [ShaderType] for self. When used in [AsBindGroup]
derives, it is safe to assume that all images in self exist.source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.