use crate::svg::{Rectangle, rectangle};
#[derive(Copy, Clone, Debug)]
pub struct VerticalLayout {
pub x: f32,
pub y: f32,
pub start_y: f32,
pub width: f32,
}
impl VerticalLayout {
pub fn new(x: f32, y: f32, width: f32) -> Self {
VerticalLayout {
x,
y,
start_y: y,
width,
}
}
pub fn advance(&mut self, by: f32) {
self.y += by;
}
pub fn push_rectangle(&mut self, height: f32) -> Rectangle {
let rect = rectangle(self.x, self.y, self.width, height);
self.y += height;
rect
}
pub fn total_rectangle(&self) -> Rectangle {
rectangle(
self.x, self.start_y,
self.width, self.y,
)
}
pub fn start_here(&mut self) {
self.start_y = self.y;
}
}