use cushy::figures::units::Lp; use cushy::value::{Dynamic, Source}; use cushy::widget::MakeWidget; use cushy::widgets::input::InputValue; use cushy::widgets::slider::Slidable; use cushy::widgets::Custom; use cushy::Run; fn main() -> cushy::Result { let allow_blur = Dynamic::new(true); "Input Field" .and(Dynamic::::default().into_input()) .and("Range Slider") .and(Dynamic::::default().slider_between(0_u8, 100_u8)) .and("Range Slider") .and(Dynamic::new(10..=30).slider_between(0_u8, 100_u8)) .and("Allow Custom Widget to Lose Focus".into_checkbox(allow_blur.clone())) .and( Custom::empty() .on_accept_focus(|context| context.enabled()) .on_redraw(|context| { context.fill(context.theme().secondary.color); if context.focused(true) { context.draw_focus_ring(); } }) .on_allow_blur(move |_| allow_blur.get()) .height(Lp::inches(1)), ) .into_rows() .run() }