layout (no-draw) mode for tui

This commit is contained in:
facile pop culture reference 2026-08-01 21:25:29 +03:00
parent a27dacff93
commit 64c83b5460
4 changed files with 167 additions and 105 deletions

View file

@ -8,7 +8,7 @@ use super::{*, draw::*};
pub fn border (on: bool, style: impl BorderStyle, item: impl Draw<Tui>) -> impl Draw<Tui> {
let content = item.pad_wh(1, 1);
let outline = when(on, draw(move|to: &mut Tui|{
let XYWH(x, y, w, h) = to.1;
let XYWH(x, y, w, h) = to.area();
if w > 0 && h > 0 {
to.blit(&style.border_nw(), x, y, style.style());
to.blit(&style.border_ne(), x + w - 1, y, style.style());
@ -178,7 +178,7 @@ pub trait BorderStyle: Draw<Tui> + Copy {
self.draw_v(to, None)?;
self.draw_c(to, None)?;
}
Ok(to.1)
Ok(to.area())
}
#[inline] fn draw_h (self, to: &mut Tui, style: Option<Style>) -> Usually<XYWH<u16>> {
let style = style.or_else(||self.style_horizontal());
@ -191,7 +191,7 @@ pub trait BorderStyle: Draw<Tui> + Copy {
Ok(to.xywh())
}
#[inline] fn draw_v (self, to: &mut Tui, style: Option<Style>) -> Usually<XYWH<u16>> {
let area = to.1;
let area = to.area();
let style = style.or_else(||self.style_vertical());
let [x, x2, y, y2] = area.lrtb();
let h = y2 - y;
@ -207,7 +207,7 @@ pub trait BorderStyle: Draw<Tui> + Copy {
Ok(area)
}
#[inline] fn draw_c (self, to: &mut Tui, style: Option<Style>) -> Usually<XYWH<u16>> {
let area = to.1;
let area = to.area();
let style = style.or_else(||self.style_corners());
let XYWH(x, y, w, h) = area;
if w > 1 && h > 1 {