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>>,
single: Option<crate::single_instance::SingleInstance>,
) {
let _ = single;
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);
}
}