diff options
Diffstat (limited to 'src/gui/welcome.rs')
| -rw-r--r-- | src/gui/welcome.rs | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/gui/welcome.rs b/src/gui/welcome.rs new file mode 100644 index 0000000..3dac0dd --- /dev/null +++ b/src/gui/welcome.rs @@ -0,0 +1,44 @@ +use gtk::prelude::*; +use super::state::{View, ViewManager}; +use std::rc::Rc; + +pub struct Welcome { + vm : Rc<ViewManager> +} + +impl View for Welcome { + fn name(&self) -> &str { + "welcome" + } + + fn set_vm(&mut self, vm : Rc<ViewManager>) { + self.vm = vm + } + + fn make_current(&self) -> gtk::Box { + let center = gtk::Box::new(gtk::Orientation::Vertical, 10); + let main = gtk::Box::new(gtk::Orientation::Horizontal, 10); + let gen_button = gtk::Button::with_label("Generate"); + let merge_button = gtk::Button::with_label("Merge"); + let load_button = gtk::Button::with_label("Load"); + + main.pack_start(&gen_button, true, false, 10); + main.pack_start(&merge_button, true, false, 10); + main.pack_start(&load_button, true, false, 10); + + center.pack_start(&main, true, false, 0); + + let vm = Rc::clone(&self.vm); + gen_button.connect_clicked(move |_| { + vm.set_current_view("generate"); + }); + + center + } +} + +impl Welcome { + pub fn new() -> Self { + Self { vm : Rc::new(ViewManager::empty()) } + } +} |