🐛 兼容Windows/Linux的引入

This commit is contained in:
Tw93
2023-04-06 09:45:13 +08:00
parent 3b8bd14fb6
commit 9cc7d2ece4
3 changed files with 19 additions and 10 deletions

View File

@@ -2,6 +2,9 @@
use tauri::MenuItem; use tauri::MenuItem;
use tauri::{CustomMenuItem, Menu, Submenu, WindowMenuEvent}; use tauri::{CustomMenuItem, Menu, Submenu, WindowMenuEvent};
#[cfg(any(target_os = "linux", target_os = "windows"))]
use tauri::{Manager, SystemTray, SystemTrayMenu, WindowBuilder, WindowUrl};
pub fn get_menu() -> Menu { pub fn get_menu() -> Menu {
// first menu // first menu
let hide = CustomMenuItem::new("hide", "Hide"); let hide = CustomMenuItem::new("hide", "Hide");

View File

@@ -1,6 +1,9 @@
use crate::app::config::PakeConfig; use crate::app::config::PakeConfig;
use std::path::PathBuf; use std::path::PathBuf;
use tauri::{App, TitleBarStyle, Window, WindowBuilder, WindowUrl}; use tauri::{App, Window, WindowBuilder, WindowUrl};
#[cfg(target_os = "macos")]
use tauri::TitleBarStyle;
pub fn get_window(app: &mut App, config: PakeConfig, _data_dir: PathBuf) -> Window { pub fn get_window(app: &mut App, config: PakeConfig, _data_dir: PathBuf) -> Window {
let window_config = config let window_config = config
@@ -21,22 +24,25 @@ pub fn get_window(app: &mut App, config: PakeConfig, _data_dir: PathBuf) -> Wind
_ => panic!("url type only can be web or local"), _ => panic!("url type only can be web or local"),
}; };
let title_bar_style = if window_config.transparent { let mut window_builder = WindowBuilder::new(app, "pake", url)
TitleBarStyle::Overlay
} else {
TitleBarStyle::Visible
};
let window_builder = WindowBuilder::new(app, "pake", url)
.title("") .title("")
.user_agent(user_agent) .user_agent(user_agent)
.resizable(window_config.resizable) .resizable(window_config.resizable)
.fullscreen(window_config.fullscreen) .fullscreen(window_config.fullscreen)
.title_bar_style(title_bar_style)
.inner_size(window_config.width, window_config.height) .inner_size(window_config.width, window_config.height)
.initialization_script(include_str!("../inject/style.js")) .initialization_script(include_str!("../inject/style.js"))
.initialization_script(include_str!("../inject/index.js")); .initialization_script(include_str!("../inject/index.js"));
#[cfg(target_os = "macos")]
{
let title_bar_style = if window_config.transparent {
TitleBarStyle::Overlay
} else {
TitleBarStyle::Visible
};
window_builder = window_builder.title_bar_style(title_bar_style)
}
#[cfg(not(target_os = "macos"))] #[cfg(not(target_os = "macos"))]
{ {
window_builder = window_builder.data_directory(_data_dir); window_builder = window_builder.data_directory(_data_dir);

View File

@@ -26,7 +26,7 @@ pub fn run_app() {
#[cfg(not(target_os = "macos"))] #[cfg(not(target_os = "macos"))]
{ {
use pake::{get_system_tray, system_tray_handle}; use menu::{get_system_tray, system_tray_handle};
let show_system_tray = pake_config.show_system_tray(); let show_system_tray = pake_config.show_system_tray();
let system_tray = get_system_tray(show_menu); let system_tray = get_system_tray(show_menu);