Moved corner radius property to be separate from the rect struct

This commit is contained in:
Adalyn Black
2024-07-23 22:28:40 -07:00
committed by galister
parent f27c320231
commit 32e0e7656a
7 changed files with 198 additions and 114 deletions

View File

@@ -53,18 +53,21 @@ pub struct OverlayListTemplate {
#[serde(tag = "type")]
pub enum ModularElement {
Panel {
rect: [f32; 5],
rect: [f32; 4],
corner_radius: f32,
bg_color: Arc<str>,
},
Label {
rect: [f32; 5],
rect: [f32; 4],
corner_radius: f32,
font_size: isize,
fg_color: Arc<str>,
#[serde(flatten)]
data: LabelContent,
},
CenteredLabel {
rect: [f32; 5],
rect: [f32; 4],
corner_radius: f32,
font_size: isize,
fg_color: Arc<str>,
#[serde(flatten)]
@@ -76,7 +79,8 @@ pub enum ModularElement {
sprite_st: Option<[f32; 4]>,
},
Button {
rect: [f32; 5],
rect: [f32; 4],
corner_radius: f32,
font_size: isize,
fg_color: Arc<str>,
bg_color: Arc<str>,
@@ -86,7 +90,8 @@ pub enum ModularElement {
},
/// Convenience type to save you from having to create a bunch of labels
BatteryList {
rect: [f32; 5],
rect: [f32; 4],
corner_radius: f32,
font_size: isize,
fg_color: Arc<str>,
fg_color_low: Arc<str>,
@@ -96,7 +101,8 @@ pub enum ModularElement {
layout: ListLayout,
},
OverlayList {
rect: [f32; 5],
rect: [f32; 4],
corner_radius: f32,
font_size: isize,
fg_color: Arc<str>,
bg_color: Arc<str>,
@@ -139,32 +145,35 @@ pub fn modular_canvas(
for elem in elements.iter() {
match elem {
ModularElement::Panel {
rect: [x, y, w, h, r],
rect: [x, y, w, h],
corner_radius,
bg_color,
} => {
canvas.bg_color = color_parse(bg_color).unwrap_or(*FALLBACK_COLOR);
canvas.panel(*x, *y, *w, *h, *r);
canvas.panel(*x, *y, *w, *h, *corner_radius);
}
ModularElement::Label {
rect: [x, y, w, h, r],
rect: [x, y, w, h],
corner_radius,
font_size,
fg_color,
data,
} => {
canvas.font_size = *font_size;
canvas.fg_color = color_parse(fg_color).unwrap_or(*FALLBACK_COLOR);
let label = canvas.label(*x, *y, *w, *h, *r, empty_str.clone());
let label = canvas.label(*x, *y, *w, *h, *corner_radius, empty_str.clone());
modular_label_init(label, data);
}
ModularElement::CenteredLabel {
rect: [x, y, w, h, r],
rect: [x, y, w, h],
corner_radius,
font_size,
fg_color,
data,
} => {
canvas.font_size = *font_size;
canvas.fg_color = color_parse(fg_color).unwrap_or(*FALLBACK_COLOR);
let label = canvas.label_centered(*x, *y, *w, *h, *r, empty_str.clone());
let label = canvas.label_centered(*x, *y, *w, *h, *corner_radius, empty_str.clone());
modular_label_init(label, data);
}
ModularElement::Sprite {
@@ -187,7 +196,8 @@ pub fn modular_canvas(
}
},
ModularElement::Button {
rect: [x, y, w, h, r],
rect: [x, y, w, h],
corner_radius,
font_size,
bg_color,
fg_color,
@@ -197,11 +207,12 @@ pub fn modular_canvas(
canvas.bg_color = color_parse(bg_color).unwrap_or(*FALLBACK_COLOR);
canvas.fg_color = color_parse(fg_color).unwrap_or(*FALLBACK_COLOR);
canvas.font_size = *font_size;
let button = canvas.button(*x, *y, *w, *h, *r, text.clone());
let button = canvas.button(*x, *y, *w, *h, *corner_radius, text.clone());
modular_button_init(button, data);
}
ModularElement::BatteryList {
rect: [x, y, w, h, r],
rect: [x, y, w, h],
corner_radius,
font_size,
fg_color,
fg_color_low,
@@ -229,7 +240,7 @@ pub fn modular_canvas(
button_y + 2.,
button_w - 4.,
button_h - 4.,
*r,
*corner_radius,
empty_str.clone(),
);
modular_label_init(
@@ -253,7 +264,8 @@ pub fn modular_canvas(
}
}
ModularElement::OverlayList {
rect: [x, y, w, h, r],
rect: [x, y, w, h],
corner_radius,
font_size,
fg_color,
bg_color,
@@ -278,7 +290,7 @@ pub fn modular_canvas(
button_y + 2.,
button_w - 4.,
button_h - 4.,
*r,
*corner_radius,
screen.name.clone(),
);