tuple gaming
This commit is contained in:
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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)]
|
||||||
|
|||||||
Reference in New Issue
Block a user