use crate::ui::{ display::{self, Color}, geometry::Rect, }; pub struct Pad { pub area: Rect, color: Color, clear: bool, } impl Pad { pub fn with_background(color: Color) -> Self { Self { color, area: Rect::zero(), clear: false, } } pub fn place(&mut self, area: Rect) { self.area = area; } pub fn clear(&mut self) { self.clear = true; } pub fn cancel_clear(&mut self) { self.clear = false; } pub fn will_paint(&self) -> Option<(Rect, Color)> { if self.clear { Some((self.area, self.color)) } else { None } } pub fn paint(&mut self) { if self.clear { self.clear = false; display::rect_fill(self.area, self.color); } } }