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
|
||||
}
|
||||
|
||||
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());
|
||||
match *self.children.last_mut().unwrap() {
|
||||
MenuItem::Subtree(_, ref mut tree) => tree,
|
||||
MenuItem::Subtree(_, ref mut tree) => &mut *tree,
|
||||
_ => panic!("??"),
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user