pub mod clipboard;
pub mod tray;
pub mod window;
pub use tray::{Tray, TrayCtx, TrayMenuItem};
use super::{AppHandler, WindowConfig};
pub(crate) fn run(cfg: WindowConfig, mut handler: Box<dyn AppHandler>, waker: Option<std::sync::Arc<crate::sync::WakerShared>>) {
let os_default = if cfg.screenshot.is_some() { true } else { os_animations_enabled() };
crate::anim::set_enabled(cfg.animations.unwrap_or(os_default));
if let Some(path) = cfg.screenshot.clone() {
super::run_offscreen(&cfg, &mut handler, &path);
return;
}
window::run_windowed(cfg, handler, waker);
}
fn os_animations_enabled() -> bool {
true
}
pub fn open_url(url: &str) {
use objc2_app_kit::NSWorkspace;
use objc2_foundation::{NSString, NSURL};
let ns = NSString::from_str(url);
if let Some(nsurl) = NSURL::URLWithString(&ns) {
let _ = NSWorkspace::sharedWorkspace().openURL(&nsurl);
}
}