Files
fft2midi-rs/src/main.rs
2024-11-15 01:59:13 -06:00

57 lines
1.6 KiB
Rust

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::<gtk::ApplicationWindow>("main_window")
.expect("Couldn't bind to window :(");
let main_grid = builder
.object::<gtk::Grid>("main_grid")
.expect("Couldn't bind to main_grid");
let input_selector = builder
.object::<gtk::MenuButton>("input_selector")
.expect("Couldn't bind to input_selector");
let midi_device_selector = builder
.object::<gtk::MenuButton>("midi_device_selector")
.expect("Couldn't bind to midi_device_selector");
let start_button = builder
.object::<gtk::Button>("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();
}