From e3b1a8434317dda0d684ca24ed1d5746391e7f49 Mon Sep 17 00:00:00 2001 From: Raphael Coeffic Date: Fri, 16 Apr 2021 20:30:00 +0200 Subject: [PATCH] Topbar visibility works now on start as well (no matter the configured screens) --- radio/src/gui/colorlcd/layout.cpp | 6 +++++- radio/src/gui/colorlcd/view_main.cpp | 12 +++++++----- radio/src/gui/colorlcd/view_main.h | 10 +++++----- 3 files changed, 17 insertions(+), 11 deletions(-) diff --git a/radio/src/gui/colorlcd/layout.cpp b/radio/src/gui/colorlcd/layout.cpp index bd2c4c4e5..925bc2419 100644 --- a/radio/src/gui/colorlcd/layout.cpp +++ b/radio/src/gui/colorlcd/layout.cpp @@ -106,6 +106,8 @@ void loadDefaultLayout() void loadCustomScreens() { unsigned i = 0; + auto viewMain = ViewMain::instance(); + while (i < MAX_CUSTOM_SCREENS) { auto& screen = customScreens[i]; @@ -118,12 +120,14 @@ void loadCustomScreens() } // layout is ok, let's add it - auto viewMain = ViewMain::instance(); screen->attach(viewMain); viewMain->setMainViewsCount(i + 1); screen->setLeft(viewMain->getMainViewLeftPos(i)); i++; } + + viewMain->setCurrentMainView(0); + viewMain->setTopbarVisible(customScreens[0]->hasTopbar()); } // diff --git a/radio/src/gui/colorlcd/view_main.cpp b/radio/src/gui/colorlcd/view_main.cpp index 71c4dd069..c5c8043c7 100644 --- a/radio/src/gui/colorlcd/view_main.cpp +++ b/radio/src/gui/colorlcd/view_main.cpp @@ -145,11 +145,13 @@ void ViewMain::setScrollPositionX(coord_t value) auto pageIdx = getPageIndex(); if (pageIdx != g_model.view) { g_model.view = pageIdx; - // crude on/off for now - setTopbarVisible(customScreens[pageIdx]->hasTopbar()); - customScreens[pageIdx]->decorate(); - //TODO: compute topbar visibility - //auto relativeScrollPosition = getScrollPositionX() % pageWidth; + if (customScreens[pageIdx]) { + // crude on/off for now + setTopbarVisible(customScreens[pageIdx]->hasTopbar()); + customScreens[pageIdx]->decorate(); + //TODO: compute topbar visibility + //auto relativeScrollPosition = getScrollPositionX() % pageWidth; + } } } diff --git a/radio/src/gui/colorlcd/view_main.h b/radio/src/gui/colorlcd/view_main.h index 2de2dca53..ea0b23748 100644 --- a/radio/src/gui/colorlcd/view_main.h +++ b/radio/src/gui/colorlcd/view_main.h @@ -62,6 +62,11 @@ class ViewMain: public Window coord_t getMainViewLeftPos(unsigned view) const; + unsigned getCurrentMainView() const; + void setCurrentMainView(unsigned view); + void nextMainView(); + void previousMainView(); + protected: static ViewMain * _instance; @@ -70,11 +75,6 @@ class ViewMain: public Window friend class SetupWidgetsPage; - unsigned getCurrentMainView() const; - void setCurrentMainView(unsigned view); - void nextMainView(); - void previousMainView(); - void setScrollPositionX(coord_t value) override; void setScrollPositionY(coord_t value) override;