tuple gaming

This commit is contained in:
2025-11-20 15:56:00 -05:00
parent 6251c23d37
commit f6f9ebbe51
2 changed files with 12 additions and 19 deletions

View File

@@ -7,31 +7,20 @@ pub struct Aligned {
impl Widget for Aligned { impl Widget for Aligned {
fn draw(&mut self, painter: &mut Painter) { fn draw(&mut self, painter: &mut Painter) {
let region = match self.align { let region = match self.align.tuple() {
Align { (Some(x), Some(y)) => painter
x: Some(x),
y: Some(y),
} => {
painter
.size(&self.inner) .size(&self.inner)
.to_uivec2() .to_uivec2()
.align(RegionAlign { x, y }) .align(RegionAlign { x, y }),
} (Some(x), None) => {
Align {
x: Some(x),
y: None,
} => {
let x = painter.size_ctx().width(&self.inner).apply_rest().align(x); let x = painter.size_ctx().width(&self.inner).apply_rest().align(x);
UiRegion::new(x, UiSpan::FULL) UiRegion::new(x, UiSpan::FULL)
} }
Align { (None, Some(y)) => {
x: None,
y: Some(y),
} => {
let y = painter.size_ctx().height(&self.inner).apply_rest().align(y); let y = painter.size_ctx().height(&self.inner).apply_rest().align(y);
UiRegion::new(UiSpan::FULL, y) UiRegion::new(UiSpan::FULL, y)
} }
Align { x: None, y: None } => UiRegion::FULL, (None, None) => UiRegion::FULL,
}; };
painter.widget_within(&self.inner, region); painter.widget_within(&self.inner, region);
} }

View File

@@ -24,6 +24,10 @@ impl Align {
pub const TOP: CardinalAlign = CardinalAlign::TOP; pub const TOP: CardinalAlign = CardinalAlign::TOP;
pub const V_CENTER: CardinalAlign = CardinalAlign::V_CENTER; pub const V_CENTER: CardinalAlign = CardinalAlign::V_CENTER;
pub const BOT: CardinalAlign = CardinalAlign::BOT; pub const BOT: CardinalAlign = CardinalAlign::BOT;
pub fn tuple(&self) -> (Option<AxisAlign>, Option<AxisAlign>) {
(self.x, self.y)
}
} }
#[derive(Clone, Copy, PartialEq, Eq)] #[derive(Clone, Copy, PartialEq, Eq)]