tauri_winutils/
lib.rs

1#![cfg_attr(
2    all(not(debug_assertions), target_os = "windows"),
3    windows_subsystem = "windows"
4)]
5
6pub mod window_manager;
7pub mod workspace;
8pub mod layout;
9pub mod config;
10pub mod commands;
11pub mod system_window;
12
13pub use window_manager::{WindowManager, ManagedWindow, WindowPosition, WindowSize, WindowState};
14pub use workspace::Workspace;
15pub use layout::LayoutType;
16pub use config::{Config, KeyBindings};
17pub use commands::*;
18pub use system_window::{SystemWindow, SystemWindowManager, PlatformWindowManager};
19
20use tauri::{Manager, plugin::TauriPlugin};
21
22/// Plugin init function (what consumers call from their Tauri app)
23pub fn init<R: tauri::Runtime>() -> TauriPlugin<R> {
24    tauri::plugin::Builder::new("window-manager")
25        .invoke_handler(tauri::generate_handler![
26            get_windows,
27            create_workspace,
28            switch_workspace,
29            get_workspaces,
30            arrange_windows,
31            close_window,
32            minimize_window,
33            maximize_window,
34            focus_window,
35            get_config,
36            update_config,
37            add_window_to_manager,    // now takes (handle: u64, title, app_name)
38            remove_window_from_manager,
39            get_system_windows,
40            move_system_window,
41            resize_system_window,
42            set_system_window_bounds,
43            minimize_system_window,
44            maximize_system_window,
45            restore_system_window,
46            close_system_window,
47            focus_system_window,
48            hide_system_window,
49            show_system_window,
50            arrange_system_windows
51        ])
52        .setup(|app_handle, _| {
53            app_handle.manage(WindowManager::new());
54            Ok(())
55        })
56        .build()
57}