pub struct Menu { /* private fields */ }Expand description
A vertical list of buttons, one per entry, as a popup menu shows them.
A click on an entry calls on_activate with its
id, then closes the popups it is in. A click on an entry with a
submenu calls on_open_submenu and opens the
submenu as a popup next to it, with the same styles and handlers.
Disabled entries ignore clicks. Each style takes a value or a closure.
use crabshell_ui::{Menu, MenuEntry, PopupWindow};
let quit = MenuEntry {
id: 1,
label: "Quit".into(),
separator: false,
enabled: true,
toggle: None,
checked: false,
submenu: false,
children: Vec::new(),
};
let popup = PopupWindow::new().child(
Menu::new(vec![quit]).on_activate(|_cx, id| println!("clicked {id}")),
);Implementations§
Source§impl Menu
impl Menu
Sourcepub fn new(entries: impl IntoProp<Vec<MenuEntry>>) -> Menu
pub fn new(entries: impl IntoProp<Vec<MenuEntry>>) -> Menu
A menu of entries: a list, or a closure that returns one.
Sourcepub fn style(self, style: impl IntoProp<Style>) -> Menu
pub fn style(self, style: impl IntoProp<Style>) -> Menu
Sets the style of the menu’s box: its background, border and padding.
Sourcepub fn item_style(self, style: impl IntoProp<Style>) -> Menu
pub fn item_style(self, style: impl IntoProp<Style>) -> Menu
Sets each entry’s style. The default pads the text 4 px above and below and 12 px left and right.
Sourcepub fn hover_style(self, style: impl IntoProp<Style>) -> Menu
pub fn hover_style(self, style: impl IntoProp<Style>) -> Menu
Sets the style laid over an entry under the pointer. The default is a faint gray background.
Sourcepub fn separator_style(self, style: impl IntoProp<Style>) -> Menu
pub fn separator_style(self, style: impl IntoProp<Style>) -> Menu
Sets a separator’s style. A separator is as tall as the style’s vertical padding twice; the default is a 2 px gray line.
Sourcepub fn on_activate(self, handler: impl Fn(&Cx, i32) + 'static) -> Menu
pub fn on_activate(self, handler: impl Fn(&Cx, i32) + 'static) -> Menu
Runs handler with an entry’s id when that entry is clicked.
Runs handler with an entry’s id when its submenu opens, as a tray
menu tells its app with open_submenu.