Skip to main content

MenuBar

Struct MenuBar 

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

A classic Win 3.1 menu bar.

MenuBar::new takes the bounding rect for the bar itself. The bar paints in the normal pass; any open drop-down is rendered in the overlay pass so it floats over every sibling widget.

Labels may include an & immediately before a character to declare a mnemonic: &File displays “File” with F underlined and binds Alt+F (top-level) or just F (when the menu is already open) to that entry. Escape closes the open menu.

Implementations§

Source§

impl MenuBar

Source

pub fn new(rect: Rect) -> Self

Source

pub fn add_menu(self, menu: Menu) -> Self

Source

pub fn push_menu(&mut self, menu: Menu)

Source

pub fn open(&mut self, index: usize)

Programmatically open the menu at index — useful for tests and for hooking up custom keyboard shortcuts at the application level.

Trait Implementations§

Source§

impl Widget for MenuBar

Source§

fn bounds(&self) -> Rect

Logical bounds relative to the window root, in saudade pixels.
Source§

fn paint(&mut self, painter: &mut Painter<'_>, theme: &Theme)

Render the widget in the normal pass.
Source§

fn paint_overlay(&mut self, painter: &mut Painter<'_>, theme: &Theme)

Render anything that needs to float on top of every sibling — open menu popups, tooltips, drag previews. Runs after every widget’s regular paint is finished. Default: no-op.
Source§

fn event(&mut self, event: &Event, ctx: &mut EventCtx)

Handle a typed input event. Default: ignore.
Source§

fn captures_pointer(&self) -> bool

Internal hook for capture-on-press dispatch. Default: never captured. Implementations like Button override this so pointer events keep flowing to them while a press is in progress, even if the cursor leaves the widget’s bounds.
Source§

fn accepts_accelerators(&self) -> bool

true if this widget should receive every keyboard event regardless of focus. Used by menu bars so that Alt+letter accelerators reach them even while a sibling (e.g., a text editor) holds focus.
Source§

fn layout(&mut self, bounds: Rect)

Position the widget inside the rectangle the parent has allocated. Read more
Source§

fn popup_request(&self) -> Option<PopupRequest>

Ask the runtime to host a popup window for this widget. Returning Some makes the runtime open (or move) a borderless top-level window at the indicated logical-coord rect so the popup can extend past the main window’s edges. Container widgets propagate this from their children. Default: no popup.
Source§

fn focusable(&self) -> bool

true if this widget accepts keyboard focus. The parent container remembers the last focusable widget the user clicked, and routes keyboard events only there.
Source§

fn set_focused(&mut self, _focused: bool)

Inform the widget that it has gained or lost keyboard focus. Default: ignore. Editing widgets override this to show/hide their cursor or to commit pending input.
Source§

fn focus_first(&mut self) -> bool

Try to give keyboard focus to this widget or one of its descendants. Returns true if a focusable target was located and now holds focus. Read more
Source§

fn wants_ticks(&self) -> bool

true if this widget needs periodic Event::Tick events to drive an animation. The runtime polls this after every dispatch and, while any widget in the tree wants ticks, fires Tick at roughly 60 Hz. Container widgets propagate from children. Default: no animation.

Auto Trait Implementations§

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> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

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.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

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.
Source§

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.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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 = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.
Source§

impl<T> WithSubscriber for T

Source§

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
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more