diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt index 8bc82a1..46b1dfc 100644 --- a/main/CMakeLists.txt +++ b/main/CMakeLists.txt @@ -199,6 +199,7 @@ set(headers webserver_settings.h webserver_stringsettings.h widgets/doubleprogressbar.h + widgets/menudisplaywithtime.h wifi_bobbycar.h wifitexthelpers.h ) @@ -405,6 +406,7 @@ set(sources webserver_settings.cpp webserver_stringsettings.cpp widgets/doubleprogressbar.cpp + widgets/menudisplaywithtime.cpp wifi_bobbycar.cpp wifitexthelpers.cpp ) diff --git a/main/displays/menus/mainmenu.cpp b/main/displays/menus/mainmenu.cpp index 453b2b8..259f234 100644 --- a/main/displays/menus/mainmenu.cpp +++ b/main/displays/menus/mainmenu.cpp @@ -110,16 +110,3 @@ void MainMenu::back() { switchScreen(); } - -void MainMenu::start() -{ - Base::start(); - m_label_currentTime.start(); -} - -void MainMenu::redraw() -{ - Base::redraw(); - tft.setTextFont(2); - m_label_currentTime.redraw(fmt::format("&7Time: {}", local_clock_string())); -} diff --git a/main/displays/menus/mainmenu.h b/main/displays/menus/mainmenu.h index 0a6338e..5499ca0 100644 --- a/main/displays/menus/mainmenu.h +++ b/main/displays/menus/mainmenu.h @@ -1,11 +1,11 @@ #pragma once // 3rdparty lib includes -#include "menudisplay.h" #include "menuitem.h" // local includes #include "texts.h" +#include "widgets/menudisplaywithtime.h" #ifdef MAINMENU_PLUGIN #include MAINMENU_PLUGIN #endif @@ -22,15 +22,11 @@ namespace { } // namespace class MainMenu : - public espgui::MenuDisplay, + public bobbygui::MenuDisplayWithTime, public espgui::StaticText { using Base = espgui::MenuDisplay; public: MainMenu(); - void back() override; - void start() override; - void redraw() override; - espgui::Label m_label_currentTime{145, 6}; }; diff --git a/main/widgets/menudisplaywithtime.cpp b/main/widgets/menudisplaywithtime.cpp new file mode 100644 index 0000000..337f6cf --- /dev/null +++ b/main/widgets/menudisplaywithtime.cpp @@ -0,0 +1,21 @@ +#include "menudisplaywithtime.h" +#include "tftinstance.h" +#include "utils.h" + +using namespace espgui; + +namespace bobbygui { +void MenuDisplayWithTime::start() +{ + Base::start(); + m_label_currentTime.start(); +} + +void MenuDisplayWithTime::redraw() +{ + Base::redraw(); + tft.setTextFont(2); + m_label_currentTime.redraw(fmt::format("&7Time: {}", local_clock_string())); +} + +} // namespace diff --git a/main/widgets/menudisplaywithtime.h b/main/widgets/menudisplaywithtime.h new file mode 100644 index 0000000..2f809d6 --- /dev/null +++ b/main/widgets/menudisplaywithtime.h @@ -0,0 +1,15 @@ +#pragma once + +#include + +namespace bobbygui { +class MenuDisplayWithTime : + public espgui::MenuDisplay +{ + using Base = espgui::MenuDisplay; +public: + void start() override; + void redraw() override; + espgui::Label m_label_currentTime{145, 6}; +}; +} // namespace