use crate::prelude::*; #[derive(Clone, Copy)] pub struct Rect { pub color: UiColor, pub radius: f32, pub thickness: f32, pub inner_radius: f32, } impl Rect { pub fn new(color: UiColor) -> Self { Self { color, radius: 0.0, inner_radius: 0.0, thickness: 0.0, } } pub fn color(mut self, color: UiColor) -> Self { self.color = color; self } pub fn radius(mut self, radius: impl UiNum) -> Self { self.radius = radius.to_f32(); self } } impl Widget for Rect { fn draw(&mut self, painter: &mut Painter) { painter.primitive(RectPrimitive { color: self.color, radius: self.radius, thickness: self.thickness, inner_radius: self.inner_radius, }); } fn desired_width(&mut self, _: &mut SizeCtx) -> Len { Len::rest(1) } fn desired_height(&mut self, _: &mut SizeCtx) -> Len { Len::rest(1) } } pub fn rect(color: UiColor) -> Rect { Rect::new(color) }