use tauri::menu::{Menu, MenuItem}; use tauri::tray::{MouseButton, MouseButtonState, TrayIconBuilder, TrayIconEvent}; use tauri::{App, Manager}; pub fn setup(app: &mut App) -> tauri::Result<()> { let show = MenuItem::with_id(app, "show", "Mostrar app", true, None::<&str>)?; let record = MenuItem::with_id(app, "record", "Iniciar gravação", true, None::<&str>)?; let quit = MenuItem::with_id(app, "quit", "Sair", true, None::<&str>)?; let menu = Menu::with_items(app, &[&show, &record, &quit])?; TrayIconBuilder::new() .tooltip("Transcript") .menu(&menu) .show_menu_on_left_click(true) .on_menu_event(|app, event| match event.id().as_ref() { "show" | "record" => show_main_window(app), "quit" => app.exit(0), _ => {} }) .on_tray_icon_event(|tray, event| { if let TrayIconEvent::Click { button: MouseButton::Left, button_state: MouseButtonState::Up, .. } = event { show_main_window(tray.app_handle()); } }) .build(app)?; Ok(()) } fn show_main_window(app: &tauri::AppHandle) { if let Some(window) = app.get_webview_window("main") { let _ = window.unminimize(); let _ = window.show(); let _ = window.set_focus(); } }