use gtk::prelude::*; use gio::prelude::*; use maraiah::durandal::err::*; // TODO: add detached draw area mode, make everything detachable const RESOURCE: &'static [u8] = include_bytes!(concat!(env!("CARGO_MANIFEST_DIR"), "/data/tycho.res")); const XML: &'static str = include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/data/tycho.xml")); fn run_app(app: >k::Application) { let b = gtk::Builder::new_from_string(XML); let win: gtk::Window = b.get_object("win_tycho").unwrap(); let abt: gtk::AboutDialog = b.get_object("win_about").unwrap(); let bt_abt: gtk::MenuItem = b.get_object("btn_about").unwrap(); abt.set_authors(&env!("CARGO_PKG_AUTHORS").split(';').collect::>()); abt.set_version(env!("CARGO_PKG_VERSION")); abt.set_website(env!("CARGO_PKG_HOMEPAGE")); { let abt = abt.clone(); bt_abt.connect_activate(move |_| { abt.run(); abt.hide(); }); } win.set_application(app); win.show_all(); } fn main() -> ResultS<()> { let rsrc = glib::Bytes::from(&RESOURCE[..]); let rsrc = gio::Resource::new_from_data(&rsrc)?; gio::resources_register(&rsrc); let app = gtk::Application::new("net.greyserv.maraiah.tycho", gio::ApplicationFlags::empty())?; app.connect_activate(run_app); if app.run(&[]) == 0 { Ok(()) } else { Err(err_msg("bad return")) } } // EOF