aboutsummaryrefslogtreecommitdiff
path: root/src/gui/welcome.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/welcome.rs')
-rw-r--r--src/gui/welcome.rs44
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()) }
+ }
+}