开启Linux/Windows下的菜单栏,增加托盘按钮控制菜单栏开启
This commit is contained in:
@@ -179,13 +179,17 @@ pub fn get_pake_config() -> (PakeConfig, Config) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_system_tray() -> SystemTray {
|
pub fn get_system_tray() -> SystemTray {
|
||||||
let hide = CustomMenuItem::new("hide".to_string(), "Hide");
|
let hide_app = CustomMenuItem::new("hide_app".to_string(), "Hide App");
|
||||||
let show = CustomMenuItem::new("show".to_string(), "Show");
|
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 quit = CustomMenuItem::new("quit".to_string(), "Quit");
|
||||||
let about = CustomMenuItem::new("about".to_string(), "About");
|
let about = CustomMenuItem::new("about".to_string(), "About");
|
||||||
let tray_menu = SystemTrayMenu::new()
|
let tray_menu = SystemTrayMenu::new()
|
||||||
.add_item(hide)
|
.add_item(hide_app)
|
||||||
.add_item(show)
|
.add_item(show_app)
|
||||||
|
.add_item(hide_menu)
|
||||||
|
.add_item(show_menu)
|
||||||
.add_item(quit)
|
.add_item(quit)
|
||||||
.add_item(about);
|
.add_item(about);
|
||||||
SystemTray::new().with_menu(tray_menu)
|
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) {
|
pub fn system_tray_handle(app: &tauri::AppHandle, event: tauri::SystemTrayEvent) {
|
||||||
if let SystemTrayEvent::MenuItemClick { tray_id: _, id, .. } = event {
|
if let SystemTrayEvent::MenuItemClick { tray_id: _, id, .. } = event {
|
||||||
match id.as_str() {
|
match id.as_str() {
|
||||||
"hide" => {
|
"hide_app" => {
|
||||||
app.get_window("pake").unwrap().hide().unwrap();
|
app.get_window("pake").unwrap().hide().unwrap();
|
||||||
}
|
}
|
||||||
"show" => {
|
"show_app" => {
|
||||||
app.get_window("pake").unwrap().show().unwrap();
|
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" => {
|
"quit" => {
|
||||||
std::process::exit(0);
|
std::process::exit(0);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,24 +3,19 @@
|
|||||||
windows_subsystem = "windows"
|
windows_subsystem = "windows"
|
||||||
)]
|
)]
|
||||||
|
|
||||||
use app::{get_data_dir, get_pake_config, get_system_tray, get_window, system_tray_handle};
|
use app::{
|
||||||
#[cfg(target_os = "macos")]
|
get_data_dir, get_menu, get_pake_config, get_system_tray, get_window, menu_event_handle,
|
||||||
use app::{get_menu, menu_event_handle};
|
system_tray_handle,
|
||||||
|
};
|
||||||
|
|
||||||
pub fn run_app() {
|
pub fn run_app() {
|
||||||
let system_tray = get_system_tray();
|
let system_tray = get_system_tray();
|
||||||
let (pake_config, tauri_config) = get_pake_config();
|
let (pake_config, tauri_config) = get_pake_config();
|
||||||
let data_dir = get_data_dir(tauri_config);
|
let data_dir = get_data_dir(tauri_config);
|
||||||
#[cfg(target_os = "macos")]
|
let menu = get_menu();
|
||||||
let tauri_app = {
|
tauri::Builder::default()
|
||||||
let menu = get_menu();
|
.menu(menu)
|
||||||
tauri::Builder::default()
|
.on_menu_event(menu_event_handle)
|
||||||
.menu(menu)
|
|
||||||
.on_menu_event(menu_event_handle)
|
|
||||||
};
|
|
||||||
#[cfg(any(target_os = "linux", target_os = "windows"))]
|
|
||||||
let tauri_app = tauri::Builder::default();
|
|
||||||
tauri_app
|
|
||||||
.system_tray(system_tray)
|
.system_tray(system_tray)
|
||||||
.on_system_tray_event(system_tray_handle)
|
.on_system_tray_event(system_tray_handle)
|
||||||
.plugin(tauri_plugin_window_state::Builder::default().build())
|
.plugin(tauri_plugin_window_state::Builder::default().build())
|
||||||
|
|||||||
Reference in New Issue
Block a user