From a55ade674183cbeaa4892c94ff3232732f4a7253 Mon Sep 17 00:00:00 2001 From: galister <22305755+galister@users.noreply.github.com> Date: Wed, 6 Mar 2024 18:45:14 +0100 Subject: [PATCH] modular-ui: use boxes where it makes sense --- src/gui/modular/button.rs | 2 +- src/gui/modular/label.rs | 4 ++-- src/gui/modular/mod.rs | 8 ++++---- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/gui/modular/button.rs b/src/gui/modular/button.rs index dccde8b..0fdf4ec 100644 --- a/src/gui/modular/button.rs +++ b/src/gui/modular/button.rs @@ -172,7 +172,7 @@ pub struct ButtonData { } pub fn modular_button_init(button: &mut ModularControl, data: &ButtonData) { - button.state = Some(ModularData::Button(data.clone())); + button.state = Some(ModularData::Button(Box::new(data.clone()))); button.on_press = Some(modular_button_dn); button.on_release = Some(modular_button_up); button.on_scroll = Some(modular_button_scroll); diff --git a/src/gui/modular/label.rs b/src/gui/modular/label.rs index e7b03e0..1c97fd6 100644 --- a/src/gui/modular/label.rs +++ b/src/gui/modular/label.rs @@ -98,7 +98,7 @@ pub fn modular_label_init(label: &mut ModularControl, content: &LabelContent) { }; if let Some(state) = state { - label.state = Some(ModularData::Label(state)); + label.state = Some(ModularData::Label(Box::new(state))); label.on_update = Some(label_update); } } @@ -107,7 +107,7 @@ pub(super) fn label_update(control: &mut ModularControl, _: &mut (), app: &mut A let ModularData::Label(data) = control.state.as_mut().unwrap() else { panic!("Label control has no state"); }; - match data { + match data.as_mut() { LabelData::Battery { device, low_threshold, diff --git a/src/gui/modular/mod.rs b/src/gui/modular/mod.rs index dd63c87..c10dbeb 100644 --- a/src/gui/modular/mod.rs +++ b/src/gui/modular/mod.rs @@ -70,7 +70,7 @@ pub enum ModularElement { bg_color: Arc, text: Arc, #[serde(flatten)] - data: ButtonData, + data: Box, }, /// Convenience type to save you from having to create a bunch of labels BatteryList { @@ -90,7 +90,7 @@ pub enum ModularElement { bg_color: Arc, layout: ListLayout, #[serde(flatten)] - template: OverlayListTemplate, + template: Box, }, } @@ -107,8 +107,8 @@ pub enum ListLayout { } pub enum ModularData { - Label(LabelData), - Button(ButtonData), + Label(Box), + Button(Box), } pub fn modular_canvas(