use crate::window::create_float_list_window::create_float_list_window_impl; use crate::window::create_main_window::create_main_window_impl; use crate::window::create_popup_window::create_popup_window_impl; use crate::window::derive::TargetLocation; use tauri::{AppHandle, Window}; /// 创建悬浮列表窗口 #[tauri::command] pub async fn create_float_list_window(app: AppHandle) -> Result { create_float_list_window_impl(std::sync::Arc::new(app)).await.map(|_| "success".to_string()) } /// 创建弹出框窗口 #[tauri::command] pub async fn create_popup_window(app: AppHandle, window: Window) -> Result { let current_position_physical = window.outer_position().map_err(|e| format!("获取窗口位置失败: {}", e))?; let current_size_physical = window.outer_size().map_err(|e| format!("获取窗口大小失败: {}", e))?; // 获取缩放因子 let scale_factor = window.scale_factor().map_err(|e| format!("获取缩放因子失败: {}", e))?; // 转换为逻辑位置和大小 let current_position = current_position_physical.to_logical::(scale_factor); let current_size = current_size_physical.to_logical::(scale_factor); let target = TargetLocation { x: current_position.x, y: current_position.y, width: current_size.width as u32, height: current_size.height as u32, }; create_popup_window_impl(&app, &target, "auto").await.map(|_| "success".to_string()) } #[tauri::command] pub async fn create_main_window(app: AppHandle) -> Result { create_main_window_impl(&app).await.map(|_| "success".to_string()) }