mod patch; mod titlebar; mod boxes; use titlebar::CustomTitleBar; use boxes::*; use std::path::PathBuf; use std::rc::Rc; use gtk4::prelude::*; use gtk4::{ gdk::{ Display }, Application, ApplicationWindow, StyleContext, }; fn main() { let app = Application::new(Some("com.wyattjmiller.snespatcher"), Default::default()); app.connect_activate(build_ui); app.run(); } // fn build_ui(app: &Application) { // let resources_bytes = include_bytes!("../resources/resources.gresource"); // let resource_data = glib::Bytes::from(&resources_bytes[..]); // let res = gio::Resource::from_data(&resource_data).unwrap(); // gio::resources_register(&res); // let provider = gtk4::CssProvider::new(); // provider.load_from_resource("/com/wyattjmiller/snespatcher/style.css"); // StyleContext::add_provider_for_display( // &Display::default().expect("Error initializing CSS provider!"), // &provider, // gtk4::STYLE_PROVIDER_PRIORITY_APPLICATION, // ); // let builder = Builder::from_resource("/com/wyattjmiller/snespatcher/snespatcher.ui"); // let window: ApplicationWindow = builder.object("app_window").expect("Failure to load window!"); // let run_btn: Button = builder.object("run_btn").unwrap(); // window.set_application(Some(app)); // window.set_show_menubar(false); // println!("{:?}", window.shows_menubar()); // run_btn.connect_clicked( move |_| { // patch::apply_ips(PathBuf::from("/home/wyatt/Downloads/smw-widescreen.bps"), PathBuf::from("/home/wyatt/Downloads/smw-widescreen.bps")); // }); // window.show(); // } // fn build_ui(app: &Application) { // let resources_bytes = include_bytes!("../resources/resources.gresource"); // let resource_data = glib::Bytes::from(&resources_bytes[..]); // let res = gio::Resource::from_data(&resource_data).unwrap(); // gio::resources_register(&res); // let provider = gtk4::CssProvider::new(); // provider.load_from_resource("/com/wyattjmiller/snespatcher/style.css"); // StyleContext::add_provider_for_display( // &Display::default().expect("Error initializing CSS provider!"), // &provider, // gtk4::STYLE_PROVIDER_PRIORITY_APPLICATION, // ); // let run_btn = Button::builder() // .label("Apply Patch") // .css_name("run_btn") // .build(); // let headerbar_ctr: HeaderBar = HeaderBar::builder() // .visible(true) // .can_focus(false) // .title_widget(&run_btn) // .build(); // let patch_btn: Button = Button::builder() // .label("Open Patch") // .build(); // let patch_lbl: Label = Label::builder() // .label("Patch") // .visible(true) // .can_focus(false) // .build(); // let patch_box: Box = Box::builder() // .visible(true) // .can_focus(false) // .margin_start(20) // .margin_end(20) // .margin_top(20) // .homogeneous(true) // .child::