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§

Functions§