mirror of
https://github.com/FliegendeWurst/cursive.git
synced 2024-11-23 17:35:00 +00:00
Add menubar example
Not working yet, but at least it shows how the API should be used.
This commit is contained in:
parent
d02c30ae9f
commit
d0d4380d5a
24
examples/menubar.rs
Normal file
24
examples/menubar.rs
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
extern crate cursive;
|
||||||
|
|
||||||
|
use cursive::Cursive;
|
||||||
|
use cursive::view::Dialog;
|
||||||
|
use cursive::event::Key;
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
|
||||||
|
let mut siv = Cursive::new();
|
||||||
|
|
||||||
|
siv.menu()
|
||||||
|
.new_subtree("File")
|
||||||
|
.leaf("New", |s| s.add_layer(Dialog::info("New file!")))
|
||||||
|
.leaf("Quit", |s| s.quit());
|
||||||
|
|
||||||
|
siv.menu()
|
||||||
|
.new_subtree("Help")
|
||||||
|
.leaf("Help", |s| s.add_layer(Dialog::info("Help message!")))
|
||||||
|
.leaf("About", |s| s.add_layer(Dialog::info("Cursive v0.0.0")));
|
||||||
|
|
||||||
|
siv.add_global_callback(Key::F(10), |s| s.select_menu());
|
||||||
|
|
||||||
|
siv.run();
|
||||||
|
}
|
@ -48,10 +48,10 @@ impl MenuTree {
|
|||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn new_subtree(&mut self, title: &str) -> &mut Box<MenuTree> {
|
pub fn new_subtree(&mut self, title: &str) -> &mut MenuTree {
|
||||||
self.add_subtree(title, MenuTree::new());
|
self.add_subtree(title, MenuTree::new());
|
||||||
match *self.children.last_mut().unwrap() {
|
match *self.children.last_mut().unwrap() {
|
||||||
MenuItem::Subtree(_, ref mut tree) => tree,
|
MenuItem::Subtree(_, ref mut tree) => &mut *tree,
|
||||||
_ => panic!("??"),
|
_ => panic!("??"),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user