use gio::prelude::*; use glib::clone; use std::cell::RefCell; mod window; use window::Window; fn main() { let bytes = glib::Bytes::from(include_bytes!("../res/resources.gresource").as_ref()); let resource = gio::Resource::from_data(&bytes).expect("Failed to load resources!"); gio::resources_register(&resource); let app = gtk::Application::new( Some("de.johrpan.musicus_desktop"), gio::ApplicationFlags::empty(), ) .expect("Failed to initialize GTK application!"); let window = RefCell::new(None::); app.connect_activate(clone!(@strong app => move |_| { let mut window = window.borrow_mut(); if window.is_none() { window.replace(Window::new(&app)); } window.as_ref().unwrap().present(); })); let args = std::env::args().collect::>(); app.run(&args); }