use druid::widget::{Align, Flex, Label, Padding, Parse, TextBox};
use druid::{AppLauncher, Widget, WindowDesc};
fn main() {
let main_window = WindowDesc::new(ui_builder);
let data = Some(0);
AppLauncher::with_window(main_window)
.use_simple_logger()
.launch(data)
.expect("launch failed");
}
fn ui_builder() -> impl Widget<Option<u32>> {
let label = Label::new(|data: &Option<u32>, _env: &_| {
data.map_or_else(|| "Invalid input".into(), |x| x.to_string())
});
let input = Parse::new(TextBox::new());
let mut col = Flex::column();
col.add_child(Align::centered(Padding::new(5.0, label)), 1.0);
col.add_child(Padding::new(5.0, input), 1.0);
col
}