use druid::widget::{Checkbox, Either, Flex, Label, Slider, WidgetExt};
use druid::{AppLauncher, Data, Lens, Widget, WindowDesc};
#[derive(Clone, Default, Data, Lens)]
struct AppState {
which: bool,
value: f64,
}
fn main() {
let main_window = WindowDesc::new(ui_builder);
let data = AppState::default();
AppLauncher::with_window(main_window)
.use_simple_logger()
.launch(data)
.expect("launch failed");
}
fn ui_builder() -> impl Widget<AppState> {
let label = Label::new("Click to reveal slider");
let mut col = Flex::column();
col.add_child(Checkbox::new().lens(AppState::which).padding(5.0), 0.0);
let either = Either::new(
|data, _env| data.which,
Slider::new().lens(AppState::value).padding(5.0),
label.padding(5.0),
);
col.add_child(either, 0.0);
col
}