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
22pub 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, 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}