From 60f8da8e8304d9e8769e1c8c3f8fea9a84d76378 Mon Sep 17 00:00:00 2001 From: Tlntin Date: Wed, 28 Dec 2022 11:00:42 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=80=E5=90=AFLinux/Windows=E4=B8=8B?= =?UTF-8?q?=E7=9A=84=E8=8F=9C=E5=8D=95=E6=A0=8F=EF=BC=8C=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=89=98=E7=9B=98=E6=8C=89=E9=92=AE=E6=8E=A7=E5=88=B6=E8=8F=9C?= =?UTF-8?q?=E5=8D=95=E6=A0=8F=E5=BC=80=E5=90=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src-tauri/src/lib.rs | 30 ++++++++++++++++++++++++------ src-tauri/src/main.rs | 21 ++++++++------------- 2 files changed, 32 insertions(+), 19 deletions(-) diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index d02af6a..ad8c381 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -179,13 +179,17 @@ pub fn get_pake_config() -> (PakeConfig, Config) { } pub fn get_system_tray() -> SystemTray { - let hide = CustomMenuItem::new("hide".to_string(), "Hide"); - let show = CustomMenuItem::new("show".to_string(), "Show"); + let hide_app = CustomMenuItem::new("hide_app".to_string(), "Hide App"); + let show_app = CustomMenuItem::new("show_app".to_string(), "Show App"); + let hide_menu = CustomMenuItem::new("hide_menu".to_string(), "Hide Menu"); + let show_menu = CustomMenuItem::new("show_menu".to_string(), "Show Menu"); let quit = CustomMenuItem::new("quit".to_string(), "Quit"); let about = CustomMenuItem::new("about".to_string(), "About"); let tray_menu = SystemTrayMenu::new() - .add_item(hide) - .add_item(show) + .add_item(hide_app) + .add_item(show_app) + .add_item(hide_menu) + .add_item(show_menu) .add_item(quit) .add_item(about); SystemTray::new().with_menu(tray_menu) @@ -194,12 +198,26 @@ pub fn get_system_tray() -> SystemTray { pub fn system_tray_handle(app: &tauri::AppHandle, event: tauri::SystemTrayEvent) { if let SystemTrayEvent::MenuItemClick { tray_id: _, id, .. } = event { match id.as_str() { - "hide" => { + "hide_app" => { app.get_window("pake").unwrap().hide().unwrap(); } - "show" => { + "show_app" => { app.get_window("pake").unwrap().show().unwrap(); } + "hide_menu" => { + app.get_window("pake") + .unwrap() + .menu_handle() + .hide() + .unwrap(); + } + "show_menu" => { + app.get_window("pake") + .unwrap() + .menu_handle() + .show() + .unwrap(); + } "quit" => { std::process::exit(0); } diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 2fce32d..8e7eea4 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -3,24 +3,19 @@ windows_subsystem = "windows" )] -use app::{get_data_dir, get_pake_config, get_system_tray, get_window, system_tray_handle}; -#[cfg(target_os = "macos")] -use app::{get_menu, menu_event_handle}; +use app::{ + get_data_dir, get_menu, get_pake_config, get_system_tray, get_window, menu_event_handle, + system_tray_handle, +}; pub fn run_app() { let system_tray = get_system_tray(); let (pake_config, tauri_config) = get_pake_config(); let data_dir = get_data_dir(tauri_config); - #[cfg(target_os = "macos")] - let tauri_app = { - let menu = get_menu(); - tauri::Builder::default() - .menu(menu) - .on_menu_event(menu_event_handle) - }; - #[cfg(any(target_os = "linux", target_os = "windows"))] - let tauri_app = tauri::Builder::default(); - tauri_app + let menu = get_menu(); + tauri::Builder::default() + .menu(menu) + .on_menu_event(menu_event_handle) .system_tray(system_tray) .on_system_tray_event(system_tray_handle) .plugin(tauri_plugin_window_state::Builder::default().build())