use crate::{Painter, UiColor, UiNum, Widget, render::RectPrimitive}; #[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(&self, painter: &mut Painter) { painter.write(RectPrimitive { color: self.color, radius: self.radius, thickness: self.thickness, inner_radius: self.inner_radius, }); } }