Skip to main content

Menu

Struct Menu 

Source
pub struct Menu { /* private fields */ }
Expand description

A list of commands that pops up: open it with Ui::open_popup (a context menu) or from a MenuBar.

The pointer highlights entries and a release on a command chooses it; a submenu opens beside its entry when the pointer comes over it. Up and Down move the highlight, Enter or Space chooses, Right opens a submenu and Left or Escape closes one; a key the menu does not use goes on to what opened it (Left and Right switch a menu bar’s menus). Choosing a command reports ActionKind::Command and closes every menu.

Implementations§

Source§

impl Menu

Source

pub fn new(items: impl IntoIterator<Item = MenuItem>) -> Self

A menu of items.

Source

pub fn style() -> Style

The style to open a menu with: it sizes itself.

Source

pub fn highlighting_first(self) -> Self

The menu with its first available entry highlighted, as when opened from the keyboard.

Source

pub fn highlighted(&self) -> Option<usize>

The entry highlighted, by index.

Trait Implementations§

Source§

impl Debug for Menu

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Widget for Menu

Source§

fn accepts_focus(&self) -> bool

A menu takes the keyboard when it opens, except a submenu opened by hovering, which takes it when the pointer comes over it (the parent keeps it meanwhile).

Source§

fn measure(&mut self, cx: &mut LayoutCx<'_>, _: Constraints) -> Size

The size the widget wants within constraints, for a widget without children (one with children is sized by its style and its children). Physical pixels.
Source§

fn paint(&mut self, cx: &PaintCx<'_>, canvas: &mut Canvas<'_>)

Paints the widget below its children.
Source§

fn event(&mut self, cx: &mut EventCx<'_>, event: &Event<'_>) -> Handled

Handles event. An event the widget does not handle goes on to its parent.
Source§

fn accessibility(&self, cx: &PaintCx<'_>, node: &mut AccessNode)

Describes the widget to assistive technology: fills node, which starts as a Role::Group with the widget’s rectangle. Called only while assistive technology is listening; it may allocate.
Source§

fn access_action( &mut self, cx: &mut EventCx<'_>, request: &AccessRequest<'_>, ) -> Handled

Does what assistive technology asks (only actions the widget’s node lists are asked of it). Focus and scrolling into view are done for every widget; a request the widget does not handle goes on to its parent if it is a scroll.
Source§

fn layout(&mut self, cx: &mut LayoutCx<'_>, size: Size)

Layout decided the widget’s size: re-wrap text or recompute anything that depends on it. Called after every layout pass that changed the size.
Source§

fn paint_over(&mut self, cx: &PaintCx<'_>, canvas: &mut Canvas<'_>)

Paints the widget over its children: scroll bars, focus rings, overlays.
Source§

fn focus_on_press(&self) -> bool

Whether a press on the widget, or on a widget inside it that takes no focus, focuses it (if it accepts focus). A container reachable by Tab, such as a dock’s tab list, says no, so clicks on its contents do not focus it; it can still ask for focus itself.

Auto Trait Implementations§

§

impl !RefUnwindSafe for Menu

§

impl !UnwindSafe for Menu

§

impl Freeze for Menu

§

impl Send for Menu

§

impl Sync for Menu

§

impl Unpin for Menu

§

impl UnsafeUnpin for Menu

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.