diff --git a/src/main.rs b/src/main.rs index d2bdf56..8d1ec03 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,11 +1,21 @@ mod patch; +mod titlebar; +mod boxes; + +use titlebar::CustomTitleBar; +use boxes::*; + +use std::path::PathBuf; +use std::rc::Rc; use gtk4::prelude::*; use gtk4::{ - Align, + gdk::{ + Display + }, Application, ApplicationWindow, - Button + StyleContext, }; fn main() { @@ -14,28 +24,165 @@ fn main() { 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::