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§
Trait Implementations§
Source§impl Widget for MenuBar
impl Widget for MenuBar
Source§fn paint(&mut self, painter: &mut Painter<'_>, theme: &Theme)
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)
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)
fn event(&mut self, event: &Event, ctx: &mut EventCtx)
Handle a typed input event. Default: ignore.
Source§fn captures_pointer(&self) -> bool
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
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)
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>
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
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)
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
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 moreSource§fn wants_ticks(&self) -> bool
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§
impl Freeze for MenuBar
impl !RefUnwindSafe for MenuBar
impl !Send for MenuBar
impl !Sync for MenuBar
impl Unpin for MenuBar
impl UnsafeUnpin for MenuBar
impl !UnwindSafe for MenuBar
Blanket Implementations§
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
Mutably borrows from an owned value. Read more
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
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>
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)
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)
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.