use rae::{compute_shell_layout, Rect};
fn main() {
let viewports = [
("desktop", Rect::new(0.0, 0.0, 1920.0, 1080.0)),
("laptop", Rect::new(0.0, 0.0, 1366.0, 768.0)),
("tablet", Rect::new(0.0, 0.0, 900.0, 720.0)),
("phone", Rect::new(0.0, 0.0, 430.0, 860.0)),
];
for (label, viewport) in viewports {
let layout = compute_shell_layout(viewport);
println!("\n{label} {:?}", rect_tuple(layout.root));
println!(" header {:?}", rect_tuple(layout.header));
println!(" main {:?}", rect_tuple(layout.main));
println!(
" sidebar {:?} collapsed:{}",
rect_tuple(layout.sidebar),
layout.sidebar_collapsed
);
println!(" prompt {:?}", rect_tuple(layout.prompt));
println!(" status {:?}", rect_tuple(layout.status));
}
}
fn rect_tuple(rect: Rect) -> (i32, i32, i32, i32) {
(
rect.x.round() as i32,
rect.y.round() as i32,
rect.width.round() as i32,
rect.height.round() as i32,
)
}