From 9bcd15e49d2339de76c85fa4b57a2b4a71a365f7 Mon Sep 17 00:00:00 2001 From: Raphael Coeffic Date: Fri, 23 Apr 2021 23:07:40 +0200 Subject: [PATCH] Finished moving color table and added INVERS --- radio/src/gui/colorlcd/CMakeLists.txt | 1 + radio/src/gui/colorlcd/colors.cpp | 1 + radio/src/lua/api_colorlcd.cpp | 15 ++++++++------- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/radio/src/gui/colorlcd/CMakeLists.txt b/radio/src/gui/colorlcd/CMakeLists.txt index 783b68cf9..19957a284 100644 --- a/radio/src/gui/colorlcd/CMakeLists.txt +++ b/radio/src/gui/colorlcd/CMakeLists.txt @@ -11,6 +11,7 @@ file(GLOB WIDGETS_SRC RELATIVE ${RADIO_SRC_DIR}/gui/colorlcd ${RADIO_SRC_DIR}/gu set(GUI_SRC ${GUI_SRC} + colors.cpp lcd.cpp splash.cpp fonts.cpp diff --git a/radio/src/gui/colorlcd/colors.cpp b/radio/src/gui/colorlcd/colors.cpp index 301cc9063..8724e3c17 100644 --- a/radio/src/gui/colorlcd/colors.cpp +++ b/radio/src/gui/colorlcd/colors.cpp @@ -20,4 +20,5 @@ #include "colors.h" +uint16_t lcdColorTable[LCD_COLOR_COUNT]; diff --git a/radio/src/lua/api_colorlcd.cpp b/radio/src/lua/api_colorlcd.cpp index a8f03edf4..3e5397fc1 100644 --- a/radio/src/lua/api_colorlcd.cpp +++ b/radio/src/lua/api_colorlcd.cpp @@ -203,7 +203,7 @@ static int luaLcdDrawText(lua_State *L) const char * s = luaL_checkstring(L, 3); unsigned int att = luaL_optunsigned(L, 4, 0); - bool invers = att & INVERS; + bool invers = (att & INVERS) && !(); bool blink = att & INVERS; bool shadowed = att & SHADOWED; @@ -217,14 +217,15 @@ static int luaLcdDrawText(lua_State *L) if (invers) { int height = getFontHeight(att & 0xFFFF); - luaLcdBuffer->drawSolidFilledRect(x - INVERT_BOX_MARGIN, - y - INVERT_BOX_MARGIN, - end_pos - x + 2 * INVERT_BOX_MARGIN, - height + 2 * INVERT_BOX_MARGIN, - ); + int width = getTextWidth(s, 255, att); + luaLcdBuffer->drawSolidFilledRect( + x - INVERT_BOX_MARGIN, y - INVERT_BOX_MARGIN, + width + 2 * INVERT_BOX_MARGIN, height + 2 * INVERT_BOX_MARGIN, + FOCUS_BGCOLOR); + att = (att & 0xFFFF) | FOCUS_COLOR; } - coord_t end_pos = luaLcdBuffer->drawText(x, y, s, att); + luaLcdBuffer->drawText(x, y, s, att); return 0; }