diff --git a/radio/src/gui/colorlcd/fullscreen_dialog.cpp b/radio/src/gui/colorlcd/fullscreen_dialog.cpp index f700d1e69..b7f91a4f5 100644 --- a/radio/src/gui/colorlcd/fullscreen_dialog.cpp +++ b/radio/src/gui/colorlcd/fullscreen_dialog.cpp @@ -23,7 +23,7 @@ #include "opentx.h" FullScreenDialog::FullScreenDialog(uint8_t type, std::string title, std::string message, std::string action, const std::function & confirmHandler): - FormGroup(&mainWindow, {0, 0, LCD_W, LCD_H}, OPAQUE), + FormGroup(MainWindow::instance(), {0, 0, LCD_W, LCD_H}, OPAQUE), type(type), title(std::move(title)), message(std::move(message)), @@ -145,7 +145,7 @@ void FullScreenDialog::runForever() WDG_RESET(); RTOS_WAIT_MS(20); - mainWindow.run(false); + MainWindow::instance()->run(false); } Window::deleteLater(); diff --git a/radio/src/gui/colorlcd/libopenui.h b/radio/src/gui/colorlcd/libopenui.h index b9be46e9a..dff106be4 100644 --- a/radio/src/gui/colorlcd/libopenui.h +++ b/radio/src/gui/colorlcd/libopenui.h @@ -58,19 +58,19 @@ inline MessageDialog * createPopupInformation(const char * message) { - return new MessageDialog(&mainWindow, "Message", message); + return new MessageDialog(MainWindow::instance(), "Message", message); } inline MessageDialog * createPopupWarning(const char * message) { - return new MessageDialog(&mainWindow, "Warning", message); + return new MessageDialog(MainWindow::instance(), "Warning", message); } inline void POPUP_INFORMATION(const char * message) { auto popup = createPopupInformation(message); while (popup->getParent()) { - mainWindow.run(false); + MainWindow::instance()->run(false); } } @@ -81,7 +81,7 @@ inline void POPUP_WARNING(const char * message, const char * info = nullptr) popup->setInfoText(std::string(info)); } while (popup->getParent()) { - mainWindow.run(false); + MainWindow::instance()->run(false); } } diff --git a/radio/src/gui/colorlcd/page.cpp b/radio/src/gui/colorlcd/page.cpp index 8f827f962..a042e9d80 100644 --- a/radio/src/gui/colorlcd/page.cpp +++ b/radio/src/gui/colorlcd/page.cpp @@ -42,7 +42,7 @@ void PageHeader::paint(BitmapBuffer * dc) } Page::Page(unsigned icon): - Window(&mainWindow, {0, 0, LCD_W, LCD_H}, OPAQUE), + Window(MainWindow::instance(), {0, 0, LCD_W, LCD_H}, OPAQUE), header(this, icon), body(this, { 0, MENU_HEADER_HEIGHT, LCD_W, LCD_H - MENU_HEADER_HEIGHT }, FORM_FORWARD_FOCUS) { diff --git a/radio/src/gui/colorlcd/radio_sdmanager.cpp b/radio/src/gui/colorlcd/radio_sdmanager.cpp index f92f60f7a..6a99ead4d 100644 --- a/radio/src/gui/colorlcd/radio_sdmanager.cpp +++ b/radio/src/gui/colorlcd/radio_sdmanager.cpp @@ -113,7 +113,7 @@ class FlashDialog: public FullScreenDialog device.flashFirmware(filename, [=](const char * title, const char * message, int count, int total) -> void { setMessage(message); progress.setValue(total > 0 ? count * 100 / total : 0); - mainWindow.run(false); + MainWindow::instance()->run(false); }); deleteLater(); } diff --git a/radio/src/gui/colorlcd/tabsgroup.cpp b/radio/src/gui/colorlcd/tabsgroup.cpp index d554e1a51..98134ca32 100644 --- a/radio/src/gui/colorlcd/tabsgroup.cpp +++ b/radio/src/gui/colorlcd/tabsgroup.cpp @@ -74,7 +74,7 @@ bool TabsCarousel::onTouchEnd(coord_t x, coord_t y) #endif TabsGroup::TabsGroup(uint8_t icon): - Window(&mainWindow, { 0, 0, LCD_W, LCD_H }, OPAQUE), + Window(MainWindow::instance(), { 0, 0, LCD_W, LCD_H }, OPAQUE), header(this, icon), body(this, { 0, MENU_BODY_TOP, LCD_W, MENU_BODY_HEIGHT }, FORM_FORWARD_FOCUS) { diff --git a/radio/src/gui/colorlcd/view_main.cpp b/radio/src/gui/colorlcd/view_main.cpp index 25b438b6c..66b913b98 100644 --- a/radio/src/gui/colorlcd/view_main.cpp +++ b/radio/src/gui/colorlcd/view_main.cpp @@ -59,7 +59,7 @@ int getMainViewsCount() ViewMain * ViewMain::instance = nullptr; ViewMain::ViewMain(bool icons): - FormWindow(&mainWindow, { 0, 0, LCD_W, LCD_H }) + FormWindow(MainWindow::instance(), { 0, 0, LCD_W, LCD_H }) { instance = this; diff --git a/radio/src/main.cpp b/radio/src/main.cpp index ebf0bad8d..7ea282eac 100644 --- a/radio/src/main.cpp +++ b/radio/src/main.cpp @@ -36,7 +36,7 @@ void openUsbMenu() static Menu * menu = nullptr; if (menu) return; - menu = new Menu(&mainWindow); + menu = new Menu(MainWindow::instance()); menu->setCloseHandler([]() { menu = nullptr; }); @@ -329,7 +329,7 @@ void guiMain(event_t evt) bool screenshotRequested = (mainRequestFlags & (1u << REQUEST_SCREENSHOT)); #if defined(LIBOPENUI) - mainWindow.run(); + MainWindow::instance()->run(); #else if (!refreshNeeded) { DEBUG_TIMER_START(debugTimerMenus); diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index e81f1b66d..ddbb224aa 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -1902,6 +1902,7 @@ void opentxInit() TRACE("opentxInit"); #if defined(LIBOPENUI) + new MainWindow(); new ViewMain(); #elif defined(GUI) // TODO add a function for this (duplicated) @@ -2260,7 +2261,7 @@ uint32_t pwrCheck() else { #if defined(COLORLCD) if (pwr_press_time != 0) - mainWindow.invalidate(); + MainWindow::instance()->invalidate(); #endif pwr_check_state = PWR_CHECK_ON; pwr_press_time = 0; diff --git a/radio/src/thirdparty/libopenui b/radio/src/thirdparty/libopenui index d7001e768..f84ff2649 160000 --- a/radio/src/thirdparty/libopenui +++ b/radio/src/thirdparty/libopenui @@ -1 +1 @@ -Subproject commit d7001e7687bee12a89032fa4c03c095510fe6fae +Subproject commit f84ff264973379e537f6546b9b65d1f96100f8be