From 99018ce72643a27fec6aa56b67c4de673da99287 Mon Sep 17 00:00:00 2001 From: Raphael Coeffic Date: Sun, 11 Apr 2021 12:47:56 +0200 Subject: [PATCH] Dynamic zones working --- radio/src/gui/colorlcd/layout.cpp | 5 ++++- radio/src/gui/colorlcd/widgets_container.h | 9 +++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/radio/src/gui/colorlcd/layout.cpp b/radio/src/gui/colorlcd/layout.cpp index 855e6c28d..3cdcda72e 100644 --- a/radio/src/gui/colorlcd/layout.cpp +++ b/radio/src/gui/colorlcd/layout.cpp @@ -124,7 +124,10 @@ void Layout::decorate() // Re-compute positions viewMain->adjustDecoration(); - viewMain->invalidate(); + + // and update relevant windows + updateZones(); + invalidate(); } rect_t Layout::getMainZone() const diff --git a/radio/src/gui/colorlcd/widgets_container.h b/radio/src/gui/colorlcd/widgets_container.h index 44302ba57..3ef16b8c6 100644 --- a/radio/src/gui/colorlcd/widgets_container.h +++ b/radio/src/gui/colorlcd/widgets_container.h @@ -122,6 +122,15 @@ class WidgetsContainer: public FormGroup, public WidgetsContainerInterface } } + void updateZones() + { + for (int i = 0; i < N; i++) { + if (widgets[i]) { + widgets[i]->setRect(getZone(i)); + } + } + } + protected: PersistentData * persistentData; Widget * widgets[N] = {};