Improved color handling in Lua

LCD flags can now hold either a theme color index or a RGB value. Hence, values from lcd.RGB() and literal colors like e.g. RED, WHITE etc. can be used interchangeably with theme colors and CUSTOM_COLOR.
Also redesigned drawText, drawNumber and drawTimer, so they now use a common function to implement the party tricks with BLINK and INVERS flags.
This commit is contained in:
jfrickmann
2021-08-22 19:39:50 +02:00
committed by Raphael Coeffic
parent 57e455d343
commit 9d878b71ce
6 changed files with 155 additions and 237 deletions
+18 -16
View File
@@ -1950,22 +1950,24 @@ const luaR_value_entry opentxConstants[] = {
{ "WARNING_COLOR", COLOR2FLAGS(COLOR_THEME_WARNING_INDEX) },
// Literal colors
{ "BLACK", COLOR2FLAGS(COLOR_BLACK_INDEX) },
{ "WHITE", COLOR2FLAGS(COLOR_WHITE_INDEX) },
{ "LIGHTWHITE", COLOR2FLAGS(COLOR_LIGHTWHITE_INDEX) },
{ "YELLOW", COLOR2FLAGS(COLOR_YELLOW_INDEX) },
{ "BLUE", COLOR2FLAGS(COLOR_BLUE_INDEX) },
{ "DARKBLUE", COLOR2FLAGS(COLOR_DARKBLUE_INDEX) },
{ "GREY", COLOR2FLAGS(COLOR_GREY_INDEX) },
{ "DARKGREY", COLOR2FLAGS(COLOR_DARKGREY_INDEX) },
{ "LIGHTGREY", COLOR2FLAGS(COLOR_LIGHTGREY_INDEX) },
{ "RED", COLOR2FLAGS(COLOR_RED_INDEX) },
{ "DARKRED", COLOR2FLAGS(COLOR_DARKRED_INDEX) },
{ "GREEN", COLOR2FLAGS(COLOR_GREEN_INDEX) },
{ "LIGHTBROWN", COLOR2FLAGS(COLOR_LIGHTBROWN_INDEX) },
{ "DARKBROWN", COLOR2FLAGS(COLOR_DARKBROWN_INDEX) },
{ "BRIGHTGREEN", COLOR2FLAGS(COLOR_BRIGHTGREEN_INDEX) },
{ "ORANGE", COLOR2FLAGS(COLOR_ORANGE_INDEX) },
{ "BLACK", RGB2FLAGS(0x00, 0x00, 0x00) },
{ "WHITE", RGB2FLAGS(0xFF, 0xFF, 0xFF) },
{ "LIGHTWHITE", RGB2FLAGS(0xEA, 0xEA, 0xEA) },
{ "YELLOW", RGB2FLAGS(0xFF, 0xFF, 0x00) },
{ "BLUE", RGB2FLAGS(0xFF, 0xFF, 0xFF) },
{ "DARKBLUE", RGB2FLAGS(0x00, 0x00, 0xA0) },
{ "GREY", RGB2FLAGS(0x60, 0x60, 0x60) },
{ "DARKGREY", RGB2FLAGS(0x40, 0x40, 0x40) },
{ "LIGHTGREY", RGB2FLAGS(0xC0, 0xC0, 0xC0) },
{ "RED", RGB2FLAGS(0xFF, 0x00, 0x00) },
{ "DARKRED", RGB2FLAGS(0xA0, 0x00, 0x00) },
{ "GREEN", RGB2FLAGS(0x00, 0xFF, 0x00) },
{ "DARKGREEN", RGB2FLAGS(0x00, 0xA0, 0x00) },
{ "LIGHTBROWN", RGB2FLAGS(0x9C, 0x6D, 0x20) },
{ "DARKBROWN", RGB2FLAGS(0x6A, 0x48, 0x10) },
{ "BRIGHTGREEN", RGB2FLAGS(0x00, 0xB4, 0x3C) },
{ "ORANGE", RGB2FLAGS(0xE5, 0x64, 0x1E) },
#else
{ "FIXEDWIDTH", FIXEDWIDTH },
#endif