Struct bevy_ui_navigation::menu::MenuSetting
source · [−]Expand description
A menu that isolate children Focusables from other focusables
and specify navigation method within itself.
Usage
A MenuSetting can be used to:
- Prevent navigation from one specific submenu to another
- Specify if 2d navigation wraps around the screen,
see
MenuSetting::wrapping. - Specify “scope menus” such that sending a
NavRequest::ScopeMovewhen the focused element is aFocusablenested within thisMenuSettingwill move cursor within this menu. SeeMenuSetting::scope. - Specify submenus and specify from where those submenus are reachable.
- Specify which entity will be the parents of this
MenuSetting. SeeMenuBuilder.
If you want to specify which Focusable should be focused first
when entering a menu,
you should mark one of the children of this menu with Focusable::prioritized.
Invariants
You need to follow those rules (invariants) to avoid panics:
- A
MenuSettingmust have at least oneFocusablechild in the UI hierarchy. - There must not be a menu loop. i.e.: a way to go from menu A to menu B and then from menu B to menu A while never going back.
Panics
Thankfully, programming errors are caught early and you’ll probably get a panic fairly quickly if you don’t follow the invariants.
- Invariant (1) panics as soon as you add the menu without focusable children.
- Invariant (2) panics if the focus goes into a menu loop.
Fields
wrapping: boolWhether to wrap navigation.
When the player moves to a direction where there aren’t any focusables, if this is true, the focus will “wrap” to the other direction of the screen.
scope: boolWhether this is a scope menu.
A scope menu is controlled with NavRequest::ScopeMove
even when the focused element is not in this menu, but in a submenu
reachable from this one.
Implementations
Trait Implementations
sourceimpl Clone for MenuSetting
impl Clone for MenuSetting
sourcefn clone(&self) -> MenuSetting
fn clone(&self) -> MenuSetting
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source. Read more
sourceimpl Component for MenuSetting where
Self: Send + Sync + 'static,
impl Component for MenuSetting where
Self: Send + Sync + 'static,
type Storage = TableStorage
sourceimpl Debug for MenuSetting
impl Debug for MenuSetting
sourceimpl Default for MenuSetting
impl Default for MenuSetting
sourcefn default() -> MenuSetting
fn default() -> MenuSetting
Returns the “default value” for a type. Read more
sourceimpl PartialEq<MenuSetting> for MenuSetting
impl PartialEq<MenuSetting> for MenuSetting
sourcefn eq(&self, other: &MenuSetting) -> bool
fn eq(&self, other: &MenuSetting) -> bool
This method tests for self and other values to be equal, and is used
by ==. Read more
sourcefn ne(&self, other: &MenuSetting) -> bool
fn ne(&self, other: &MenuSetting) -> bool
This method tests for !=.
impl Copy for MenuSetting
impl StructuralPartialEq for MenuSetting
Auto Trait Implementations
impl RefUnwindSafe for MenuSetting
impl Send for MenuSetting
impl Sync for MenuSetting
impl Unpin for MenuSetting
impl UnwindSafe for MenuSetting
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