Module workflow_nw::tray

source ·
Expand description

Builder for the application system Tray menu.

§Synopsis

use workflow_nw::prelude::*;
use workflow_nw::result::Result;
use workflow_nw::tray::TrayMenuBuilder;
use workflow_dom::utils::window;
use wasm_bindgen::JsValue;

// create Tray icon menu without submenus
TrayMenuBuilder::new()
    .icon("resources/icons/tray-icon@2x.png")
    .icons_are_templates(false)
    .callback(|_|{
        window().alert_with_message("Tray menu click")?;
        Ok(())
    })
    .build()?;

// create Tray menu icon with submenus
let submenu_1 = MenuItemBuilder::new()
    .label("Say hi")
    .key("6")
    .modifiers("ctrl")
    .callback(move |_|->std::result::Result<(), JsValue>{
        window().alert_with_message("hi")?;
        Ok(())
    }).build()?;
     
let exit_menu = MenuItemBuilder::new()
    .label("Exit")
    .callback(move |_|->std::result::Result<(), JsValue>{
        nw_sys::app::close_all_windows();
        Ok(())
    }).build()?;
     
let _tray = TrayMenuBuilder::new()
    .icon("resources/icons/tray-icon@2x.png")
    .icons_are_templates(false)
    .submenus(vec![submenu_1, menu_separator(), exit_menu])
    .build()?;

Structs§

  • Provides a builder pattern for constructing a system tray menu for the application.