app menu window
This commit is contained in:
40
src-tauri/src/system_tray.rs
Normal file
40
src-tauri/src/system_tray.rs
Normal file
@@ -0,0 +1,40 @@
|
||||
use tauri::{
|
||||
menu::{Menu, MenuItem},
|
||||
tray::TrayIconBuilder,
|
||||
};
|
||||
use tracing::error;
|
||||
|
||||
use crate::{get_app_handle, services::app_menu::open_app_menu_window};
|
||||
|
||||
pub fn init_system_tray() {
|
||||
let app = get_app_handle();
|
||||
|
||||
let quit_i = MenuItem::with_id(app, "quit", "Quit", true, None::<&str>).unwrap();
|
||||
let open_app_menu_i =
|
||||
MenuItem::with_id(app, "open-app-menu", "Open App Menu", true, None::<&str>).unwrap();
|
||||
|
||||
let menu = match Menu::with_items(app, &[&open_app_menu_i, &quit_i]) {
|
||||
Ok(it) => it,
|
||||
Err(err) => todo!("Handle error: {}", err),
|
||||
};
|
||||
|
||||
match TrayIconBuilder::new()
|
||||
.menu(&menu)
|
||||
.on_menu_event(|app, event| match event.id.as_ref() {
|
||||
"quit" => {
|
||||
app.exit(0);
|
||||
}
|
||||
"open-app-menu" => {
|
||||
open_app_menu_window();
|
||||
}
|
||||
_ => {
|
||||
error!("menu item {:?} not handled", event.id);
|
||||
}
|
||||
})
|
||||
.icon(app.default_window_icon().unwrap().clone())
|
||||
.build(app)
|
||||
{
|
||||
Ok(it) => it,
|
||||
Err(err) => todo!("Handle error: {}", err),
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user