extern crate cursive;
use cursive::Cursive;
use cursive::views::{Dialog, DummyView, LinearLayout, RadioGroup};
fn main() {
let mut siv = Cursive::new();
let mut color_group: RadioGroup<String> = RadioGroup::new();
let mut size_group: RadioGroup<u32> = RadioGroup::new();
siv.add_layer(Dialog::new()
.title("Make your selection")
.content(LinearLayout::horizontal()
.child(LinearLayout::vertical()
.child(color_group.button_str("Red"))
.child(color_group.button_str("Green"))
.child(color_group.button_str("Blue")))
.child(DummyView)
.child(LinearLayout::vertical()
.child(size_group.button(5, "Small"))
.child(size_group.button(15, "Medium").selected())
.child(size_group.button(25, "Large").disabled())))
.button("Ok", move |s| {
let color = color_group.selection();
let size = size_group.selection();
s.pop_layer();
s.add_layer(Dialog::text(format!("Color: {}\nSize: {}cm",
color,
size))
.button("Ok", |s| s.quit()));
}));
siv.run();
}