mirror of
https://github.com/infinilabs/coco-app.git
synced 2025-12-29 00:24:46 +01:00
feat: support system tray (#35)
This commit is contained in:
@@ -18,7 +18,7 @@ crate-type = ["staticlib", "cdylib", "rlib"]
|
||||
tauri-build = { version = "2.0.0", features = [] }
|
||||
|
||||
[dependencies]
|
||||
tauri = { version = "2.0.0", features = ["macos-private-api"] }
|
||||
tauri = { version = "2.0.0", features = ["macos-private-api", "tray-icon"] }
|
||||
tauri-plugin-shell = "2.0.0"
|
||||
serde = { version = "1", features = ["derive"] }
|
||||
serde_json = "1"
|
||||
|
||||
@@ -63,6 +63,7 @@ pub fn run() {
|
||||
|
||||
enable_autostart(app);
|
||||
enable_shortcut(app);
|
||||
enable_tray(app);
|
||||
|
||||
Ok(())
|
||||
})
|
||||
@@ -218,3 +219,27 @@ fn remove_shortcut<R: Runtime>(app: &tauri::AppHandle<R>) -> Result<(), String>
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn enable_tray(app: &mut tauri::App) {
|
||||
use tauri::{
|
||||
menu::{Menu, MenuItem},
|
||||
tray::TrayIconBuilder,
|
||||
};
|
||||
|
||||
let quit_i = MenuItem::with_id(app, "quit", "Quit", true, None::<&str>).unwrap();
|
||||
let menu = Menu::with_items(app, &[&quit_i]).unwrap();
|
||||
let _tray = TrayIconBuilder::new()
|
||||
.icon(app.default_window_icon().unwrap().clone())
|
||||
.menu(&menu)
|
||||
.on_menu_event(|app, event| match event.id.as_ref() {
|
||||
"quit" => {
|
||||
println!("quit menu item was clicked");
|
||||
app.exit(0);
|
||||
}
|
||||
_ => {
|
||||
println!("menu item {:?} not handled", event.id);
|
||||
}
|
||||
})
|
||||
.build(app)
|
||||
.unwrap();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user