Struct bevy_ui_navigation::prelude::Focusable
source · [−]pub struct Focusable { /* private fields */ }Expand description
An [Entity] that can be navigated to, using the cursor navigation system.
It is in one of multiple FocusState,
you can check its state with the Focusable::state method.
A Focusable can execute a variety of FocusAction
when receiving NavRequest::Action,
the default one is FocusAction::Normal.
Note: You should avoid updating manually the state of Focusables.
You should instead use NavRequest to manipulate and change focus.
Implementations
sourceimpl Focusable
impl Focusable
sourcepub fn state(&self) -> FocusState
pub fn state(&self) -> FocusState
The FocusState of this Focusable.
sourcepub fn action(&self) -> FocusAction
pub fn action(&self) -> FocusAction
The FocusAction of this Focusable.
sourcepub fn cancel() -> Self
pub fn cancel() -> Self
A “cancel” focusable, see FocusAction::Cancel.
sourcepub fn lock() -> Self
pub fn lock() -> Self
A “lock” focusable, see FocusAction::Lock.
sourcepub fn prioritized(self) -> Self
pub fn prioritized(self) -> Self
A focusable that will get highlighted in priority when none are set yet.
WARNING: Only use this when creating the UI. Any of the following state is unspecified and will likely result in broken behavior:
- Having multiple prioritized
Focusables in the same menu. - Updating an already existing
Focusablewith this.
Example
fn setup(mut commands: Commands) {
commands.spawn_bundle(FocusableButtonBundle {
focus: Focusable::new().prioritized(),
..default()
});
}sourcepub fn blocked(self) -> Self
pub fn blocked(self) -> Self
A FocusState::Blocked focusable.
This focusable will not be able to take focus until
Focusable::unblock is called on it.
Example
fn setup(mut commands: Commands) {
commands.spawn_bundle(FocusableButtonBundle {
focus: Focusable::new().blocked(),
..default()
});
}sourcepub fn block(&mut self) -> bool
pub fn block(&mut self) -> bool
Prevent this Focusable from gaining focus until it is unblocked.
Note: Due to the way focus is handled, this does nothing
when the Focusable::state is FocusState::Active
or FocusState::Focused.
Returns true if self has succesfully been blocked
(its Focusable::state was either Inert or Prioritized).
Limitations
- If all the children of a menu are blocked, when activating the menu’s parent, the block state of the last active focusable will be ignored.
- When
FocusOnto an focusable in a menu reachable from an blocked focusable, its block state will be ignored.
sourcepub fn unblock(&mut self) -> bool
pub fn unblock(&mut self) -> bool
Allow this Focusable to gain focus again,
setting it to FocusState::Inert.
Returns true if self’s state was FocusState::Blocked.
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for Focusable
impl Send for Focusable
impl Sync for Focusable
impl Unpin for Focusable
impl UnwindSafe for Focusable
Blanket Implementations
impl<T, U> AsBindGroupShaderType<U> for T where
U: ShaderType,
&'a T: for<'a> Into<U>,
impl<T, U> AsBindGroupShaderType<U> for T where
U: ShaderType,
&'a T: for<'a> Into<U>,
fn as_bind_group_shader_type(
&self,
_images: &HashMap<Handle<Image>, <Image as RenderAsset>::PreparedAsset, RandomState, Global>
) -> U
fn as_bind_group_shader_type(
&self,
_images: &HashMap<Handle<Image>, <Image as RenderAsset>::PreparedAsset, RandomState, Global>
) -> U
Return the T [ShaderType] for self. When used in [AsBindGroup]
derives, it is safe to assume that all images in self exist. Read more
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<T> Downcast for T where
T: Any,
impl<T> Downcast for T where
T: Any,
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
Convert 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. Read more
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait. Read more
fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s. Read more
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s. Read more
impl<T> FromWorld for T where
T: Default,
impl<T> FromWorld for T where
T: Default,
fn from_world(_world: &mut World) -> T
fn from_world(_world: &mut World) -> T
Creates Self using data from the given [World]
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<T> TypeData for T where
T: 'static + Send + Sync + Clone,
impl<T> TypeData for T where
T: 'static + Send + Sync + Clone,
fn clone_type_data(&self) -> Box<dyn TypeData + 'static, Global>
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber to this type, returning a
WithDispatch wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber to this type, returning a
WithDispatch wrapper. Read more