remove the need for wrapped option

This commit is contained in:
griffi-gh 2024-02-20 20:06:13 +01:00
parent 385d7edb6a
commit 8f6a15e244
4 changed files with 11 additions and 9 deletions

View file

@ -118,12 +118,12 @@ fn main() {
left: 30., left: 30.,
right: 40., right: 40.,
}, },
corner_radius: Some(Corners { corner_radius: Corners {
top_left: 0., top_left: 0.,
top_right: 30., top_right: 30.,
bottom_left: 0., bottom_left: 0.,
bottom_right: 0., bottom_right: 0.,
}), },
elements: vec![ elements: vec![
Box::new(Rect { Box::new(Rect {
size: (UiSize::Static(50.), UiSize::Static(50.)), size: (UiSize::Static(50.), UiSize::Static(50.)),

View file

@ -56,7 +56,7 @@ fn main() {
padding: Sides::all(10.), padding: Sides::all(10.),
size: (UiSize::Static(450.), UiSize::Auto), size: (UiSize::Static(450.), UiSize::Auto),
background: Some(vec4(0.2, 0.2, 0.5, 1.)), background: Some(vec4(0.2, 0.2, 0.5, 1.)),
corner_radius: Some(Corners::all(8.)), corner_radius: Corners::all(8.),
elements: elements(|el| { elements: elements(|el| {
if instant.elapsed().as_secs_f32() < 5. { if instant.elapsed().as_secs_f32() < 5. {
el.add(Text { el.add(Text {

View file

@ -44,12 +44,12 @@ fn main() {
align: Alignment::Center.into(), align: Alignment::Center.into(),
size: (UiSize::Fraction(0.5), UiSize::Fraction(0.5)), size: (UiSize::Fraction(0.5), UiSize::Fraction(0.5)),
background: Some(vec4(1., 0., 0., 1.)), background: Some(vec4(1., 0., 0., 1.)),
corner_radius: Some(Corners { corner_radius: Corners {
top_left: 10., top_left: 10.,
top_right: 20., top_right: 20.,
bottom_left: 50., bottom_left: 50.,
bottom_right: 80. bottom_right: 80.
}), },
elements: vec![ elements: vec![
Box::new(Container { Box::new(Container {
padding: Sides::all(20.), padding: Sides::all(20.),
@ -57,7 +57,7 @@ fn main() {
align: Alignment::Center.into(), align: Alignment::Center.into(),
size: (UiSize::Auto, UiSize::Auto), size: (UiSize::Auto, UiSize::Auto),
background: Some(vec4(0.1, 0.1, 0.1, 0.5)), background: Some(vec4(0.1, 0.1, 0.1, 0.5)),
corner_radius: Some(Corners::all(8.)), corner_radius: Corners::all(8.),
elements: vec![ elements: vec![
Box::new(Text { Box::new(Text {
text: "Corners".into(), text: "Corners".into(),

View file

@ -20,7 +20,7 @@ pub struct Container {
pub align: Alignment2d, pub align: Alignment2d,
pub background: Option<Vec4>, pub background: Option<Vec4>,
pub borders: Sides<Option<Border>>, pub borders: Sides<Option<Border>>,
pub corner_radius: Option<Corners<f32>>, pub corner_radius: Corners<f32>,
//pub clip: bool, //TODO clip children //pub clip: bool, //TODO clip children
pub elements: Vec<Box<dyn UiElement>>, pub elements: Vec<Box<dyn UiElement>>,
} }
@ -39,7 +39,7 @@ impl Default for Container {
background: Default::default(), background: Default::default(),
borders: Default::default(), borders: Default::default(),
elements: Vec::new(), elements: Vec::new(),
corner_radius: None, corner_radius: Corners::all(0.),
} }
} }
} }
@ -130,7 +130,9 @@ impl UiElement for Container {
position, position,
size: ctx.measure.size, size: ctx.measure.size,
color, color,
rounded_corners: self.corner_radius.map(RoundedCorners::from_radius), rounded_corners: (self.corner_radius.max_f32() > 0.).then_some({
RoundedCorners::from_radius(self.corner_radius)
}),
}); });
} }