diff --git a/Marlin/src/lcd/tft/themes/theme_ANET_BLACK.h b/Marlin/src/lcd/tft/themes/theme_ANET_BLACK.h index d6a7bab671..67db585435 100644 --- a/Marlin/src/lcd/tft/themes/theme_ANET_BLACK.h +++ b/Marlin/src/lcd/tft/themes/theme_ANET_BLACK.h @@ -47,6 +47,7 @@ #define COLOR_SD_DISABLED COLOR_CONTROL_DISABLED #define COLOR_MENU_TEXT COLOR_WHITE #define COLOR_MENU_STATIC_TEXT COLOR_WHITE +#define COLOR_MENU_INVERT_TEXT COLOR_YELLOW #define COLOR_MENU_BACK_TEXT COLOR_YELLOW #define COLOR_MENU_EDIT_TEXT COLOR_LIME2 #define COLOR_MENU_VALUE_FONT COLOR_ORANGE2 diff --git a/Marlin/src/lcd/tft/themes/theme_BLUE_MARLIN.h b/Marlin/src/lcd/tft/themes/theme_BLUE_MARLIN.h index 7414a7f250..bbc3b6671f 100644 --- a/Marlin/src/lcd/tft/themes/theme_BLUE_MARLIN.h +++ b/Marlin/src/lcd/tft/themes/theme_BLUE_MARLIN.h @@ -106,9 +106,12 @@ #ifndef COLOR_MENU_TEXT #define COLOR_MENU_TEXT COLOR_YELLOW #endif -#ifndef COLOR_MENU_TEXT +#ifndef COLOR_MENU_STATIC_TEXT #define COLOR_MENU_STATIC_TEXT COLOR_SILVER #endif +#ifndef COLOR_MENU_INVERT_TEXT + #define COLOR_MENU_INVERT_TEXT COLOR_WHITE +#endif #ifndef COLOR_MENU_BACK_TEXT #define COLOR_MENU_BACK_TEXT COLOR_CYAN #endif diff --git a/Marlin/src/lcd/tft/themes/theme_default.h b/Marlin/src/lcd/tft/themes/theme_default.h index 17790c7557..6b7e789216 100644 --- a/Marlin/src/lcd/tft/themes/theme_default.h +++ b/Marlin/src/lcd/tft/themes/theme_default.h @@ -107,6 +107,9 @@ #ifndef COLOR_MENU_STATIC_TEXT #define COLOR_MENU_STATIC_TEXT COLOR_SILVER #endif +#ifndef COLOR_MENU_INVERT_TEXT + #define COLOR_MENU_INVERT_TEXT COLOR_WHITE +#endif #ifndef COLOR_MENU_BACK_TEXT #define COLOR_MENU_BACK_TEXT COLOR_WHITE #endif diff --git a/Marlin/src/lcd/tft/ui_common.cpp b/Marlin/src/lcd/tft/ui_common.cpp index 6d59e0ce8b..b16b3e80a0 100644 --- a/Marlin/src/lcd/tft/ui_common.cpp +++ b/Marlin/src/lcd/tft/ui_common.cpp @@ -390,10 +390,12 @@ void MenuItem_static::draw(const uint8_t row, FSTR_P const ftpl, const uint8_t s else tft_string.set(); + const uint16_t color = (style & SS_INVERT) ? COLOR_MENU_INVERT_TEXT : COLOR_MENU_STATIC_TEXT; + const bool center = bool(style & SS_CENTER), full = bool(style & SS_FULL); if (!full || !vstr) { if (vstr) tft_string.add(vstr); - tft.add_text(center ? tft_string.center(TFT_WIDTH) : 0, MENU_TEXT_Y, COLOR_MENU_STATIC_TEXT, tft_string); + tft.add_text(center ? tft_string.center(TFT_WIDTH) : 0, MENU_TEXT_Y, color, tft_string); return; } @@ -401,12 +403,12 @@ void MenuItem_static::draw(const uint8_t row, FSTR_P const ftpl, const uint8_t s if (*vstr == ':') { tft_string.add(':'); vstr++; } // Left-justified label - tft.add_text(0, MENU_TEXT_Y, COLOR_MENU_STATIC_TEXT, tft_string); + tft.add_text(0, MENU_TEXT_Y, color, tft_string); // Right-justified value, after spaces while (*vstr == ' ') vstr++; tft_string.set(vstr); - tft.add_text(TFT_WIDTH - 1 - tft_string.width(), MENU_TEXT_Y, COLOR_MENU_STATIC_TEXT, tft_string); + tft.add_text(TFT_WIDTH - 1 - tft_string.width(), MENU_TEXT_Y, color, tft_string); } #if HAS_MEDIA