diff options
| author | Nathan Reiner <nathan@nathanreiner.xyz> | 2023-07-26 09:42:17 +0200 |
|---|---|---|
| committer | Nathan Reiner <nathan@nathanreiner.xyz> | 2023-07-26 09:42:17 +0200 |
| commit | 7679fcc3a0c4fadea00a1a320938851b1518028d (patch) | |
| tree | ede3c597dbef79f282e7465aeb8652f20bc0515a /src/gui/welcome.rs | |
| parent | e1cb45be6575c805e3b0ab1e2d03d4047acf88d1 (diff) | |
add viewmanager
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()) } + } +} |