use super::*; use crate::{UIRegion, Vec2, WidgetArrLike, WidgetFn, WidgetLike}; pub trait WidgetUtil { fn pad(self, padding: impl Into) -> impl WidgetLike; fn center(self, size: impl Into) -> impl WidgetLike; } impl WidgetUtil for W { fn pad(self, padding: impl Into) -> impl WidgetLike { WidgetFn(|ui| Regioned { region: padding.into().region(), inner: self.add(ui).erase_type(), }) } fn center(self, size: impl Into) -> impl WidgetLike { WidgetFn(|ui| Regioned { region: UIRegion::center(size.into()), inner: self.add(ui).erase_type(), }) } } pub trait WidgetArrUtil { fn span(self, dir: Dir, lengths: [impl Into; LEN]) -> impl WidgetLike; } impl> WidgetArrUtil for Wa { fn span(self, dir: Dir, lengths: [impl Into; LEN]) -> impl WidgetLike { let lengths = lengths.map(Into::into); WidgetFn(move |ui| Span { dir, children: self.ui(ui).arr.into_iter().zip(lengths).collect(), }) } }