use cushy::figures::units::Lp; use cushy::figures::Size; use cushy::value::{Dynamic, MapEach}; use cushy::widget::MakeWidget; use cushy::widgets::progress::Progressable; use cushy::widgets::slider::Slidable; use cushy::Run; fn main() -> cushy::Result { let indeterminant = Dynamic::new(false); let value = Dynamic::new(0_u8); let progress = (&indeterminant, &value) .map_each(|(&indeterminant, &value)| (!indeterminant).then_some(value)); value .clone() .slider() .and( progress .clone() .progress_bar() .expand() .and(progress.clone().progress_bar().spinner()) .into_columns(), ) .and("Indeterminant".into_checkbox(indeterminant)) .into_rows() .fit_horizontally() .expand() .and(value.slider()) .and(progress.progress_bar()) .into_columns() .pad() .size(Size::squared(Lp::inches(3))) .centered() .run() }