Converted literal colors to indices that can be used everywhere.
Also modified lcd.setColor function so it accepts either RGB or index color as new color. That way, literal colors work as before.
This commit is contained in:
committed by
Raphael Coeffic
parent
8fb260d2b2
commit
d0e4b767d3
@@ -43,6 +43,24 @@ enum LcdColorIndex
|
||||
COLOR_THEME_DISABLED_INDEX,
|
||||
CUSTOM_COLOR_INDEX,
|
||||
|
||||
// Literal colors
|
||||
COLOR_BLACK_INDEX,
|
||||
COLOR_WHITE_INDEX,
|
||||
COLOR_LIGHTWHITE_INDEX,
|
||||
COLOR_YELLOW_INDEX,
|
||||
COLOR_BLUE_INDEX,
|
||||
COLOR_DARKBLUE_INDEX,
|
||||
COLOR_GREY_INDEX,
|
||||
COLOR_DARKGREY_INDEX,
|
||||
COLOR_LIGHTGREY_INDEX,
|
||||
COLOR_RED_INDEX,
|
||||
COLOR_DARKRED_INDEX,
|
||||
COLOR_GREEN_INDEX,
|
||||
COLOR_LIGHTBROWN_INDEX,
|
||||
COLOR_DARKBROWN_INDEX,
|
||||
COLOR_BRIGHTGREEN_INDEX,
|
||||
COLOR_ORANGE_INDEX,
|
||||
|
||||
// this one MUST be last
|
||||
LCD_COLOR_COUNT,
|
||||
};
|
||||
|
||||
@@ -54,6 +54,24 @@ class Theme480: public OpenTxTheme
|
||||
lcdColorTable[COLOR_THEME_ACTIVE_INDEX] = RGB(255, 222, 0);
|
||||
lcdColorTable[COLOR_THEME_WARNING_INDEX] = RGB(224, 0, 0);
|
||||
lcdColorTable[COLOR_THEME_DISABLED_INDEX] = RGB(140, 140, 140);
|
||||
|
||||
// Literal colors
|
||||
lcdColorTable[COLOR_BLACK_INDEX] = BLACK;
|
||||
lcdColorTable[COLOR_WHITE_INDEX] = WHITE;
|
||||
lcdColorTable[COLOR_LIGHTWHITE_INDEX] = LIGHTWHITE;
|
||||
lcdColorTable[COLOR_YELLOW_INDEX] = YELLOW;
|
||||
lcdColorTable[COLOR_BLUE_INDEX] = BLUE;
|
||||
lcdColorTable[COLOR_DARKBLUE_INDEX] = DARKBLUE;
|
||||
lcdColorTable[COLOR_GREY_INDEX] = GREY;
|
||||
lcdColorTable[COLOR_DARKGREY_INDEX] = DARKGREY;
|
||||
lcdColorTable[COLOR_LIGHTGREY_INDEX] = LIGHTGREY;
|
||||
lcdColorTable[COLOR_RED_INDEX] = RED;
|
||||
lcdColorTable[COLOR_DARKRED_INDEX] = DARKRED;
|
||||
lcdColorTable[COLOR_GREEN_INDEX] = GREEN;
|
||||
lcdColorTable[COLOR_LIGHTBROWN_INDEX] = LIGHTBROWN;
|
||||
lcdColorTable[COLOR_DARKBROWN_INDEX] = DARKBROWN;
|
||||
lcdColorTable[COLOR_BRIGHTGREEN_INDEX] = BRIGHTGREEN;
|
||||
lcdColorTable[COLOR_ORANGE_INDEX] = ORANGE;
|
||||
}
|
||||
|
||||
void loadMenuIcon(uint8_t index, const uint8_t * lbm) const
|
||||
|
||||
@@ -53,6 +53,24 @@ class FlyskyTheme: public OpenTxTheme
|
||||
lcdColorTable[COLOR_THEME_ACTIVE_INDEX] = RGB(255, 222, 0);
|
||||
lcdColorTable[COLOR_THEME_WARNING_INDEX] = RGB(224, 0, 0);
|
||||
lcdColorTable[COLOR_THEME_DISABLED_INDEX] = RGB(140, 140, 140);
|
||||
|
||||
// Literal colors
|
||||
lcdColorTable[COLOR_BLACK_INDEX] = BLACK;
|
||||
lcdColorTable[COLOR_WHITE_INDEX] = WHITE;
|
||||
lcdColorTable[COLOR_LIGHTWHITE_INDEX] = LIGHTWHITE;
|
||||
lcdColorTable[COLOR_YELLOW_INDEX] = YELLOW;
|
||||
lcdColorTable[COLOR_BLUE_INDEX] = BLUE;
|
||||
lcdColorTable[COLOR_DARKBLUE_INDEX] = DARKBLUE;
|
||||
lcdColorTable[COLOR_GREY_INDEX] = GREY;
|
||||
lcdColorTable[COLOR_DARKGREY_INDEX] = DARKGREY;
|
||||
lcdColorTable[COLOR_LIGHTGREY_INDEX] = LIGHTGREY;
|
||||
lcdColorTable[COLOR_RED_INDEX] = RED;
|
||||
lcdColorTable[COLOR_DARKRED_INDEX] = DARKRED;
|
||||
lcdColorTable[COLOR_GREEN_INDEX] = GREEN;
|
||||
lcdColorTable[COLOR_LIGHTBROWN_INDEX] = LIGHTBROWN;
|
||||
lcdColorTable[COLOR_DARKBROWN_INDEX] = DARKBROWN;
|
||||
lcdColorTable[COLOR_BRIGHTGREEN_INDEX] = BRIGHTGREEN;
|
||||
lcdColorTable[COLOR_ORANGE_INDEX] = ORANGE;
|
||||
}
|
||||
|
||||
void loadMenuIcon(uint8_t index, const char * filename, uint32_t color=COLOR_THEME_SECONDARY1) const
|
||||
|
||||
@@ -769,16 +769,23 @@ Set a color for specific area
|
||||
* `COLOR_THEME_DISABLED`
|
||||
* `CUSTOM_COLOR`
|
||||
|
||||
@param color (number) color in 5/6/5 rgb format. The following prefined colors are available
|
||||
* `WHITE`
|
||||
* `GREY`
|
||||
* `LIGHTGREY`
|
||||
* `DARKGREY`
|
||||
* `BLACK`
|
||||
* `YELLOW`
|
||||
* `BLUE`
|
||||
* `RED`
|
||||
* `DARKRED`
|
||||
@param color (number) color in 5/6/5 rgb format (see lcd.RGB function). The following prefined colors are also available:
|
||||
* `BLACK`
|
||||
* `WHITE`
|
||||
* `LIGHTWHITE`
|
||||
* `YELLOW`
|
||||
* `BLUE`
|
||||
* `DARKBLUE`
|
||||
* `GREY`
|
||||
* `DARKGREY`
|
||||
* `LIGHTGREY`
|
||||
* `RED`
|
||||
* `DARKRED`
|
||||
* `GREEN`
|
||||
* `LIGHTBROWN`
|
||||
* `DARKBROWN`
|
||||
* `BRIGHTGREEN`
|
||||
* `ORANGE`
|
||||
|
||||
@notice Only available on Colorlcd radios
|
||||
|
||||
@@ -789,7 +796,15 @@ static int luaLcdSetColor(lua_State *L)
|
||||
unsigned int index = COLOR_VAL(luaL_checkunsigned(L, 1));
|
||||
unsigned int color = luaL_checkunsigned(L, 2);
|
||||
|
||||
if (index < LCD_COLOR_COUNT)
|
||||
// Boundary check - also, do not change literal colors
|
||||
if (index >= COLOR_BLACK_INDEX)
|
||||
return 0;
|
||||
|
||||
// RGB value or color flag?
|
||||
unsigned int idx = COLOR_VAL(color);
|
||||
if (idx > DEFAULT_COLOR_INDEX && idx < LCD_COLOR_COUNT)
|
||||
lcdColorTable[index] = lcdColorTable[idx];
|
||||
else
|
||||
lcdColorTable[index] = color;
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -1950,15 +1950,22 @@ const luaR_value_entry opentxConstants[] = {
|
||||
{ "WARNING_COLOR", COLOR2FLAGS(COLOR_THEME_WARNING_INDEX) },
|
||||
|
||||
// Literal colors
|
||||
{ "WHITE", (double)WHITE },
|
||||
{ "GREY", (double)GREY },
|
||||
{ "DARKGREY", (double)DARKGREY },
|
||||
{ "BLACK", (double)BLACK },
|
||||
{ "YELLOW", (double)YELLOW },
|
||||
{ "BLUE", (double)BLUE },
|
||||
{ "LIGHTGREY", (double)LIGHTGREY },
|
||||
{ "RED", (double)RED },
|
||||
{ "DARKRED", (double)DARKRED },
|
||||
{ "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) },
|
||||
#else
|
||||
{ "FIXEDWIDTH", FIXEDWIDTH },
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user