use gtk::prelude::*; use gtk::{self, glib, Application}; mod graph_widget; const APP_ID: &str = "com.chloechristine.ftt2midi"; fn main() -> glib::ExitCode { // Create a new application let app = Application::builder().application_id(APP_ID).build(); // Connect to the "activate" signal of 'ftt2midi' app.connect_activate(build_ui); // Run the application app.run() } fn build_ui(app: &Application) { let ui_src = include_str!("resources/main_window.ui"); println!("{}", ui_src); let builder = gtk::Builder::from_string(ui_src); // Bind to UI elements defined in template let window = builder .object::("main_window") .expect("Couldn't bind to window :("); let main_grid = builder .object::("main_grid") .expect("Couldn't bind to main_grid"); let input_selector = builder .object::("input_selector") .expect("Couldn't bind to input_selector"); let midi_device_selector = builder .object::("midi_device_selector") .expect("Couldn't bind to midi_device_selector"); let start_button = builder .object::("start_button") .expect("Couldn't bind to start_button"); let fft_graph = graph_widget::GraphWidget::new(); fft_graph.set_height_request(500); fft_graph.set_width_request(500); main_grid.attach(&fft_graph, 0, 0, 1, 1); //main_grid.attach_next_to(&fft_graph, Some(&control_deck), gtk::PositionType::Top, 1, 0); //start_button.connect_clicked() window.set_application(Some(app)); // Present the window window.present(); }