// Prevents additional console window on Windows in release, DO NOT REMOVE!! #![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] use crossbeam::channel::Sender; use overlay::{Event, LockedOverlaySettings, Overlay}; use simple_logger::SimpleLogger; // use overlay::{Overlay, Manager}; use tauri::Manager; mod overlay; #[tauri::command] fn set_interactable(interactable: bool, state: tauri::State>) { log::info!("set_interactable: {interactable:?}"); if interactable { state .send(Event::State(overlay::State::Interactable{})) .ok(); } else { state.send(Event::Return).ok(); } } #[tauri::command] fn set_auto_hide(auto_hide: bool, state: tauri::State) { log::info!("set_auto_hide: {auto_hide:?}"); if let Ok(mut settings) = state.lock() { settings.auto_hide = auto_hide; } } fn main() { SimpleLogger::new() .with_module_level("underlayer", log::LevelFilter::Info) .with_level(log::LevelFilter::Trace) .init() .expect("Could not init logger"); tauri::Builder::default() .setup(|app| { let tx = Overlay::initialize( app.get_window("Overlay") .expect("Could not get main overlay window"), "Untitled 1 - Mousepad", ); app.manage(tx); Ok(()) }) .invoke_handler(tauri::generate_handler![set_interactable, set_auto_hide]) .run(tauri::generate_context!()) .expect("error while running tauri application"); }