Module workflow_nw::menu
source · Expand description
Builder for application menus.
use workflow_nw::prelude::*;
use workflow_nw::result::Result;
use workflow_dom::utils::window;
use wasm_bindgen::JsValue;
// create Application instance
let app = Application::new()?;
// create context menu
let item_1 = MenuItemBuilder::new()
.label("Sub Menu 1")
.callback(move |_|->std::result::Result<(), JsValue>{
window().alert_with_message("Context menu 1 clicked")?;
Ok(())
}).build()?;
let item_2 = MenuItemBuilder::new()
.label("Sub Menu 2")
.callback(move |_|->std::result::Result<(), JsValue>{
window().alert_with_message("Context menu 2 clicked")?;
Ok(())
}).build()?;
app.create_context_menu(vec![item_1, item_2])?;
// create menubar
let submenu_1 = MenuItemBuilder::new()
.label("Menu A")
.key("8")
.modifiers("ctrl")
.callback(move |_|->std::result::Result<(), JsValue>{
//log_trace!("Create window : menu clicked");
window().alert_with_message("Menu A clicked")?;
Ok(())
}).build()?;
let submenu_2 = MenuItemBuilder::new()
.label("Say hello")
.key("9")
.modifiers("ctrl")
.callback(move |_|->std::result::Result<(), JsValue>{
window().alert_with_message("Hello")?;
Ok(())
}).build()?;
let item = MenuItemBuilder::new()
.label("Top Menu")
.submenus(vec![submenu_1, menu_separator(), submenu_2])
.build()?;
MenubarBuilder::new("Example App", false)
//.mac_hide_edit(true)
.mac_hide_window(true)
.append(item)
.build(true)?;
Structs§
- MenuItem Builder
- Provides a builder pattern for building application menus.
Functions§
- create a Separator
MenuItem