use druid::widget::{Flex, Padding, Radio, RadioGroup, SizedBox};
use druid::{AppLauncher, Data, Widget, WindowDesc};
#[derive(Clone, PartialEq, Data)]
enum Choice {
A,
B,
C,
D,
}
fn build_widget() -> impl Widget<Choice> {
Flex::column()
.with_child(
Padding::new(5.0, Radio::new("First choice", Choice::A)),
0.0,
)
.with_child(
Padding::new(5.0, Radio::new("Second choice", Choice::B)),
0.0,
)
.with_child(
Padding::new(5.0, Radio::new("Worst choice", Choice::C)),
0.0,
)
.with_child(Padding::new(5.0, Radio::new("Best choice", Choice::D)), 0.0)
.with_child(SizedBox::empty(), 1.0)
.with_child(
RadioGroup::new(vec![
("Good times", Choice::A),
("Ergonomics", Choice::B),
("No fourth choice!", Choice::C),
]),
0.0,
)
}
fn main() {
let window = WindowDesc::new(build_widget);
AppLauncher::with_window(window)
.use_simple_logger()
.launch(Choice::A)
.expect("launch failed");
}