From fd276bb2fc169733a36a2f62488de8e99bc2c2d2 Mon Sep 17 00:00:00 2001 From: "kkoenig1@optonline.com" Date: Sat, 8 Jan 2022 04:25:48 -0500 Subject: [PATCH] 1. Included mroe fonts 2. change order of initialization. Lvgl has to be before ViewMain 3. Basic support for layers, but they are still broken when Menu's are used 4. Register input driver in lvglwrapper --- radio/src/gui/colorlcd/LvglWrapper.cpp | 5 ++--- radio/src/gui/colorlcd/fullscreen_dialog.cpp | 2 +- radio/src/gui/colorlcd/page.cpp | 2 +- radio/src/gui/colorlcd/screen_setup.cpp | 2 +- radio/src/gui/colorlcd/topbar.cpp | 2 +- radio/src/gui/colorlcd/view_main_menu.cpp | 2 +- radio/src/lv_conf.h | 8 ++++---- radio/src/opentx.cpp | 2 +- radio/src/thirdparty/libopenui | 2 +- 9 files changed, 13 insertions(+), 14 deletions(-) diff --git a/radio/src/gui/colorlcd/LvglWrapper.cpp b/radio/src/gui/colorlcd/LvglWrapper.cpp index 1f863ba04..daff5293d 100644 --- a/radio/src/gui/colorlcd/LvglWrapper.cpp +++ b/radio/src/gui/colorlcd/LvglWrapper.cpp @@ -27,7 +27,6 @@ LvglWrapper* LvglWrapper::_instance = nullptr; static lv_disp_drv_t disp_drv; /*A variable to hold the drivers. Must be static or global.*/ lv_disp_t * disp; - static lv_disp_draw_buf_t disp_buf; static lv_indev_drv_t indev_drv; @@ -268,14 +267,14 @@ LvglWrapper::LvglWrapper() disp_drv.sw_rotate = 1; lv_indev_drv_init(&indev_drv); /*Basic initialization*/ - indev_drv.type =LV_INDEV_TYPE_POINTER; /*See below.*/ + indev_drv.type = LV_INDEV_TYPE_POINTER; /*See below.*/ indev_drv.read_cb = my_input_read; /*See below.*/ /*Register the driver in LVGL and save the created input device object*/ disp = lv_disp_drv_register(&disp_drv); /*Register the driver and save the created display objects*/ lv_example_canvas_2(); - + lv_indev_t * my_indev = lv_indev_drv_register(&indev_drv); #if 0 /*lv_indev_t * my_indev = */lv_indev_drv_register(&indev_drv); diff --git a/radio/src/gui/colorlcd/fullscreen_dialog.cpp b/radio/src/gui/colorlcd/fullscreen_dialog.cpp index a1ece90a5..4a32f447d 100644 --- a/radio/src/gui/colorlcd/fullscreen_dialog.cpp +++ b/radio/src/gui/colorlcd/fullscreen_dialog.cpp @@ -28,7 +28,7 @@ FullScreenDialog::FullScreenDialog( uint8_t type, std::string title, std::string message, std::string action, const std::function& confirmHandler) : - FormGroup(MainWindow::instance(), {0, 0, LCD_W, LCD_H}, OPAQUE), + FormGroup(MainWindow::instance(), {0, 0, LCD_W, LCD_H}, OPAQUE, true), type(type), title(std::move(title)), message(std::move(message)), diff --git a/radio/src/gui/colorlcd/page.cpp b/radio/src/gui/colorlcd/page.cpp index 6ecd88624..3057f4805 100644 --- a/radio/src/gui/colorlcd/page.cpp +++ b/radio/src/gui/colorlcd/page.cpp @@ -45,7 +45,7 @@ void PageHeader::paint(BitmapBuffer * dc) } Page::Page(unsigned icon): - Window(MainWindow::instance(), {0, 0, LCD_W, LCD_H}, OPAQUE), + Window(MainWindow::instance(), {0, 0, LCD_W, LCD_H}, OPAQUE, true), 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/screen_setup.cpp b/radio/src/gui/colorlcd/screen_setup.cpp index 1137caa3e..5a9e49dfb 100644 --- a/radio/src/gui/colorlcd/screen_setup.cpp +++ b/radio/src/gui/colorlcd/screen_setup.cpp @@ -161,7 +161,7 @@ class SetupWidgetsPage: public FormWindow { public: SetupWidgetsPage(ScreenMenu* menu, uint8_t customScreenIdx): - FormWindow(ViewMain::instance(), {0, 0, 0, 0}, FORM_FORWARD_FOCUS), + FormWindow(ViewMain::instance(), {0, 0, 0, 0}, FORM_FORWARD_FOCUS,true), menu(menu), customScreenIdx(customScreenIdx) { diff --git a/radio/src/gui/colorlcd/topbar.cpp b/radio/src/gui/colorlcd/topbar.cpp index 63497bc53..03b263203 100644 --- a/radio/src/gui/colorlcd/topbar.cpp +++ b/radio/src/gui/colorlcd/topbar.cpp @@ -34,7 +34,7 @@ Topbar * TopbarFactory::create(Window * parent) } SetupTopBarWidgetsPage::SetupTopBarWidgetsPage(ScreenMenu* menu): - FormWindow(ViewMain::instance(), {0, 0, 0, 0}, FORM_FORWARD_FOCUS), + FormWindow(ViewMain::instance(), {0, 0, 0, 0}, FORM_FORWARD_FOCUS, true), menu(menu) { // remember focus diff --git a/radio/src/gui/colorlcd/view_main_menu.cpp b/radio/src/gui/colorlcd/view_main_menu.cpp index 22a86d03d..25b80f7c0 100644 --- a/radio/src/gui/colorlcd/view_main_menu.cpp +++ b/radio/src/gui/colorlcd/view_main_menu.cpp @@ -34,7 +34,7 @@ #include "view_text.h" ViewMainMenu::ViewMainMenu(Window* parent) : - Window(parent->getFullScreenWindow(), {}) + Window(parent->getFullScreenWindow(), {}, 0, 0, true) { // Save focus Layer::push(this); diff --git a/radio/src/lv_conf.h b/radio/src/lv_conf.h index 2a5e86935..911436060 100644 --- a/radio/src/lv_conf.h +++ b/radio/src/lv_conf.h @@ -310,11 +310,11 @@ e.g. "stm32f769xx.h" or "stm32f429xx.h"*/ /*Montserrat fonts with ASCII range and some symbols using bpp = 4 *https://fonts.google.com/specimen/Montserrat*/ -#define LV_FONT_MONTSERRAT_8 0 -#define LV_FONT_MONTSERRAT_10 0 -#define LV_FONT_MONTSERRAT_12 0 +#define LV_FONT_MONTSERRAT_8 1 +#define LV_FONT_MONTSERRAT_10 1 +#define LV_FONT_MONTSERRAT_12 1 #define LV_FONT_MONTSERRAT_14 1 -#define LV_FONT_MONTSERRAT_16 0 +#define LV_FONT_MONTSERRAT_16 1 #define LV_FONT_MONTSERRAT_18 0 #define LV_FONT_MONTSERRAT_20 0 #define LV_FONT_MONTSERRAT_22 0 diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index 2ea6364c0..d357b341c 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -1770,8 +1770,8 @@ void opentxInit() TRACE("opentxInit"); #if defined(LIBOPENUI) // create ViewMain - ViewMain::instance(); LvglWrapper::instance(); + ViewMain::instance(); #elif defined(GUI) // TODO add a function for this (duplicated) menuHandlers[0] = menuMainView; diff --git a/radio/src/thirdparty/libopenui b/radio/src/thirdparty/libopenui index daeb3f133..e3f5b978d 160000 --- a/radio/src/thirdparty/libopenui +++ b/radio/src/thirdparty/libopenui @@ -1 +1 @@ -Subproject commit daeb3f1330ad6bac33738419ec9c582b79c2e781 +Subproject commit e3f5b978d06ea5b6ad85fd558404c1c925c52673