Files
Lumotia/src-tauri/src/commands/windows.rs
2026-03-21 10:28:24 +00:00

59 lines
1.5 KiB
Rust

use tauri::{Emitter, Manager, WebviewUrl, WebviewWindowBuilder};
/// Open a floating always-on-top task window.
#[tauri::command]
pub async fn open_task_window(
app: tauri::AppHandle,
) -> Result<(), String> {
if let Some(window) = app.get_webview_window("tasks-float") {
window.show().map_err(|e| e.to_string())?;
window.set_focus().map_err(|e| e.to_string())?;
app.emit("task-window-focus", ())
.map_err(|e| e.to_string())?;
return Ok(());
}
WebviewWindowBuilder::new(
&app,
"tasks-float",
WebviewUrl::App("/float".into()),
)
.title("Kon Tasks")
.inner_size(480.0, 520.0)
.min_inner_size(400.0, 400.0)
.always_on_top(true)
.decorations(false)
.resizable(true)
.build()
.map_err(|e| e.to_string())?;
Ok(())
}
/// Open the transcript viewer window.
#[tauri::command]
pub async fn open_viewer_window(
app: tauri::AppHandle,
) -> Result<(), String> {
if let Some(window) = app.get_webview_window("transcript-viewer") {
window.show().map_err(|e| e.to_string())?;
window.set_focus().map_err(|e| e.to_string())?;
return Ok(());
}
WebviewWindowBuilder::new(
&app,
"transcript-viewer",
WebviewUrl::App("/viewer".into()),
)
.title("Kon - Viewer")
.inner_size(600.0, 700.0)
.min_inner_size(450.0, 500.0)
.decorations(false)
.resizable(true)
.build()
.map_err(|e| e.to_string())?;
Ok(())
}