From 8bd4f0b7de4308d5b5130bb3cd4995af69dcd6bb Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Tue, 22 Oct 2019 10:25:18 +0200 Subject: [PATCH] Fonts refactoring (no more font list in libopenui) --- radio/src/CMakeLists.txt | 6 +- radio/src/gui/colorlcd/curve.cpp | 4 +- radio/src/gui/colorlcd/curves.cpp | 2 +- radio/src/gui/colorlcd/draw_functions.cpp | 20 ++--- radio/src/gui/colorlcd/fonts.cpp | 85 ++++++++----------- radio/src/gui/colorlcd/fullscreen_dialog.cpp | 14 +-- radio/src/gui/colorlcd/layouts/layout1x1.cpp | 4 +- radio/src/gui/colorlcd/layouts/layout2+1.cpp | 4 +- radio/src/gui/colorlcd/layouts/layout2x4.cpp | 4 +- radio/src/gui/colorlcd/lcd.cpp | 6 +- radio/src/gui/colorlcd/material-backup.cpp | 2 +- radio/src/gui/colorlcd/model_gvars.cpp | 6 +- radio/src/gui/colorlcd/model_inputs.cpp | 4 +- .../gui/colorlcd/model_logical_switches.cpp | 2 +- radio/src/gui/colorlcd/model_select.cpp | 6 +- radio/src/gui/colorlcd/model_select_old.cpp | 6 +- radio/src/gui/colorlcd/model_telemetry.cpp | 4 +- radio/src/gui/colorlcd/modelslist.cpp | 2 +- radio/src/gui/colorlcd/radio_hardware.cpp | 16 ++-- radio/src/gui/colorlcd/screens_setup_old.cpp | 2 +- radio/src/gui/colorlcd/special_functions.cpp | 2 +- radio/src/gui/colorlcd/theme.cpp | 10 +-- radio/src/gui/colorlcd/themes/flysky.cpp | 4 +- radio/src/gui/colorlcd/themes/frsky.cpp | 8 +- radio/src/gui/colorlcd/topbar.cpp | 6 +- radio/src/gui/colorlcd/view_channels.cpp | 18 ++-- radio/src/gui/colorlcd/view_statistics.cpp | 22 ++--- radio/src/gui/colorlcd/widgets/gauge.cpp | 4 +- radio/src/gui/colorlcd/widgets/modelbmp.cpp | 2 +- radio/src/gui/colorlcd/widgets/outputs.cpp | 8 +- radio/src/gui/colorlcd/widgets/timer.cpp | 10 +-- radio/src/gui/colorlcd/widgets/value.cpp | 10 +-- radio/src/targets/horus/libopenui_config.h | 18 +++- radio/src/targets/nv14/libopenui_config.h | 18 +++- radio/src/thirdparty/libopenui | 2 +- 35 files changed, 175 insertions(+), 166 deletions(-) diff --git a/radio/src/CMakeLists.txt b/radio/src/CMakeLists.txt index cc42f4238..1e8c2b0e8 100644 --- a/radio/src/CMakeLists.txt +++ b/radio/src/CMakeLists.txt @@ -311,9 +311,9 @@ if(FLYSKY_HALL_STICKS_REVERSE) add_definitions(-DFLYSKY_HALL_STICKS_REVERSE) endif() -if(NOT FONT STREQUAL "") - add_definitions(-DFONT=${DEFAULT_MODE}) -endif() +#if(NOT FONT STREQUAL "") +# add_definitions(-DFONT=${DEFAULT_MODE}) +#endif() if(EEPROM_VARIANT_NEEDED) add_definitions(-DEEPROM_VARIANT=${EEPROM_VARIANT}) diff --git a/radio/src/gui/colorlcd/curve.cpp b/radio/src/gui/colorlcd/curve.cpp index 6047e016f..e9cbe0c84 100644 --- a/radio/src/gui/colorlcd/curve.cpp +++ b/radio/src/gui/colorlcd/curve.cpp @@ -98,8 +98,8 @@ void Curve::drawPosition(BitmapBuffer * dc) char coords[16]; strAppendSigned(strAppend(strAppendSigned(coords, calcRESXto100(valueX)), ","), calcRESXto100(valueY)); - dc->drawSolidFilledRect(10, 11, 1 + getTextWidth(coords, 0, SMLSIZE), 17, CURVE_CURSOR_COLOR); - dc->drawText(11, 10, coords, SMLSIZE|DEFAULT_BGCOLOR); + dc->drawSolidFilledRect(10, 11, 1 + getTextWidth(coords, 0, FONT(XS)), 17, CURVE_CURSOR_COLOR); + dc->drawText(11, 10, coords, FONT(XS)|DEFAULT_BGCOLOR); } void Curve::drawPoint(BitmapBuffer * dc, const CurvePoint & point) diff --git a/radio/src/gui/colorlcd/curves.cpp b/radio/src/gui/colorlcd/curves.cpp index 25a5ad569..50566b039 100644 --- a/radio/src/gui/colorlcd/curves.cpp +++ b/radio/src/gui/colorlcd/curves.cpp @@ -84,7 +84,7 @@ void drawCurveHorizontalScale(BitmapBuffer * dc) void drawCurveCoord(BitmapBuffer * dc, int x, int y, const char * text, bool active) { dc->drawSolidFilledRect(x, y, CURVE_COORD_WIDTH, CURVE_COORD_HEIGHT, CURVE_CURSOR_COLOR); - dc->drawText(x+3+(CURVE_COORD_WIDTH-1-getTextWidth(text, SMLSIZE))/2, y+1, text, LEFT|SMLSIZE|DEFAULT_BGCOLOR); + dc->drawText(x+3+(CURVE_COORD_WIDTH - 1 - getTextWidth(text, 0, FONT(XS))) / 2, y + 1, text, LEFT|FONT(XS)|DEFAULT_BGCOLOR); if (active) { dc->drawBitmapPattern(x, y, LBM_CURVE_COORD_SHADOW, DEFAULT_COLOR); } diff --git a/radio/src/gui/colorlcd/draw_functions.cpp b/radio/src/gui/colorlcd/draw_functions.cpp index 5caea1022..2bf5e54d8 100644 --- a/radio/src/gui/colorlcd/draw_functions.cpp +++ b/radio/src/gui/colorlcd/draw_functions.cpp @@ -108,7 +108,7 @@ void drawVerticalSlider(BitmapBuffer * dc, coord_t x, coord_t y, int len, int va } else if (options & OPTION_SLIDER_NUMBER_BUTTON) { drawTrimSquare(dc, x, y - 2); - // TODO lcdDrawChar(x + 2, y - 1, '0' + val, SMLSIZE | FOCUS_COLOR); + // TODO lcdDrawChar(x + 2, y - 1, '0' + val, FONT(XS) | FOCUS_COLOR); } else { drawTrimSquare(dc, x, y - 2); @@ -159,7 +159,7 @@ void drawHorizontalSlider(BitmapBuffer * dc, coord_t x, coord_t y, int len, int else if (options & OPTION_SLIDER_NUMBER_BUTTON) { drawTrimSquare(dc, x+2, y - 1); char text[] = { (char)('0' + val), '\0' }; - dc->drawText(x + 7, y - 1, text, SMLSIZE | CENTERED | FOCUS_COLOR); + dc->drawText(x + 7, y - 1, text, FONT(XS) | CENTERED | FOCUS_COLOR); } else if (options & OPTION_SLIDER_SQUARE_BUTTON) { drawTrimSquare(dc, x, y - 1); @@ -256,12 +256,12 @@ void drawCurveRef(BitmapBuffer * dc, coord_t x, coord_t y, const CurveRef & curv switch (curve.type) { case CURVE_REF_DIFF: x = dc->drawText(x, y, "D", flags); - drawValueOrGVar(dc, x, y + 2, curve.value, -100, 100, LEFT | SMLSIZE | flags); + drawValueOrGVar(dc, x, y + 2, curve.value, -100, 100, LEFT | FONT(XS) | flags); break; case CURVE_REF_EXPO: x = dc->drawText(x, y, "E", flags); - drawValueOrGVar(dc, x, y + 2, curve.value, -100, 100, LEFT | SMLSIZE | flags); + drawValueOrGVar(dc, x, y + 2, curve.value, -100, 100, LEFT | FONT(XS) | flags); break; case CURVE_REF_FUNC: @@ -332,9 +332,9 @@ void drawTrimMode(BitmapBuffer * dc, coord_t x, coord_t y, uint8_t phase, uint8_ void drawDate(BitmapBuffer * dc, coord_t x, coord_t y, TelemetryItem & telemetryItem, LcdFlags att) { // TODO - if (att & DBLSIZE) { + if (att & FONT(XL)) { x -= 42; - att &= ~FONTSIZE_MASK; + att &= ~FONT_MASK; dc->drawNumber(x, y, telemetryItem.datetime.day, att|LEADING0|LEFT, 2); dc->drawText(lcdNextPos-1, y, "-", att); dc->drawNumber(lcdNextPos-1, y, telemetryItem.datetime.month, att|LEFT, 2); @@ -438,7 +438,7 @@ void drawSensorCustomValue(BitmapBuffer * dc, coord_t x, coord_t y, uint8_t sens if (value & (1 << i)) { char s[] = "CH__ KO"; strAppendUnsigned(&s[2], i+1, 2); - dc->drawText(x, flags & DBLSIZE ? y+1 : y, s, flags & ~DBLSIZE); + dc->drawText(x, flags & FONT(XL) ? y+1 : y, s, flags & ~FONT(XL)); break; } } @@ -446,7 +446,7 @@ void drawSensorCustomValue(BitmapBuffer * dc, coord_t x, coord_t y, uint8_t sens } else { if (value == 0) { - dc->drawText(x, flags & DBLSIZE ? y+1 : y, "Rx OK", flags & ~DBLSIZE); + dc->drawText(x, flags & FONT(XL) ? y+1 : y, "Rx OK", flags & ~FONT(XL)); } else { static const char * const RXS_STATUS[] = { @@ -464,7 +464,7 @@ void drawSensorCustomValue(BitmapBuffer * dc, coord_t x, coord_t y, uint8_t sens }; for (uint8_t i=0; idrawText(x, flags & DBLSIZE ? y+1 : y, RXS_STATUS[i], flags & ~DBLSIZE); + dc->drawText(x, flags & FONT(XL) ? y+1 : y, RXS_STATUS[i], flags & ~FONT(XL)); break; } } @@ -474,7 +474,7 @@ void drawSensorCustomValue(BitmapBuffer * dc, coord_t x, coord_t y, uint8_t sens } } else if (telemetrySensor.unit == UNIT_TEXT) { - dc->drawSizedText(x, flags & DBLSIZE ? y+1 : y, telemetryItem.text, sizeof(telemetryItem.text), flags & ~DBLSIZE); + dc->drawSizedText(x, flags & FONT(XL) ? y+1 : y, telemetryItem.text, sizeof(telemetryItem.text), flags & ~FONT(XL)); } else { if (telemetrySensor.prec > 0) { diff --git a/radio/src/gui/colorlcd/fonts.cpp b/radio/src/gui/colorlcd/fonts.cpp index e5be0aa2c..869d76529 100644 --- a/radio/src/gui/colorlcd/fonts.cpp +++ b/radio/src/gui/colorlcd/fonts.cpp @@ -20,117 +20,110 @@ #include "opentx.h" -const uint16_t font_tinsize_specs[] = { +const uint16_t font_xxs_specs[] = { #include "font_9.specs" }; -const unsigned char font_tinsize[] = { +const unsigned char font_xxs[] = { #include "font_9.lbm" }; #if defined(HARDWARE_TOUCH) -const uint16_t font_stdsize_en_specs[] = { +const uint16_t font_std_en_specs[] = { #include "font_17en.specs" }; -const unsigned char font_stdsize_en[] = { +const unsigned char font_std_en[] = { #include "font_17en.lbm" }; -const uint16_t font_smlsize_specs[] = { +const uint16_t font_xs_specs[] = { #include "font_15.specs" }; -const unsigned char font_smlsize[] = { +const unsigned char font_xs[] = { #include "font_15.lbm" }; -const uint16_t font_stdsize_specs[] = { +const uint16_t font_std_specs[] = { #include "font_17.specs" }; -const unsigned char font_stdsize[] = { +const unsigned char font_std[] = { #include "font_17.lbm" }; -const uint16_t font_stdsizebold_specs[] = { +const uint16_t font_bold_specs[] = { #include "font_bold17.specs" }; -const unsigned char font_stdsizebold[] = { +const unsigned char font_bold[] = { #include "font_bold17.lbm" }; #else -const uint16_t font_stdsize_en_specs[] = { +const uint16_t font_std_en_specs[] = { #include "font_16en.specs" }; -const unsigned char font_stdsize_en[] = { +const unsigned char font_std_en[] = { #include "font_16en.lbm" }; -const uint16_t font_smlsize_specs[] = { +const uint16_t font_xs_specs[] = { #include "font_13.specs" }; -const unsigned char font_smlsize[] = { +const unsigned char font_xs[] = { #include "font_13.lbm" }; -const uint16_t font_stdsize_specs[] = { +const uint16_t font_std_specs[] = { #include "font_16.specs" }; -const unsigned char font_stdsize[] = { +const unsigned char font_std[] = { #include "font_16.lbm" }; -const uint16_t font_stdsizebold_specs[] = { +const uint16_t font_bold_specs[] = { #include "font_bold16.specs" }; -const unsigned char font_stdsizebold[] = { +const unsigned char font_bold[] = { #include "font_bold16.lbm" }; #endif -const uint16_t font_midsize_specs[] = { +const uint16_t font_l_specs[] = { #include "font_24.specs" }; -const unsigned char font_midsize[] = { +const unsigned char font_l[] = { #include "font_24.lbm" }; -const uint16_t font_dblsize_specs[] = { +const uint16_t font_xl_specs[] = { #include "font_32.specs" }; -const unsigned char font_dblsize[] = { +const unsigned char font_xl[] = { #include "font_32.lbm" }; -const uint16_t font_xxlsize_specs[] = { +const uint16_t font_xxl_specs[] = { #include "font_64.specs" }; -const unsigned char font_xxlsize[] = { +const unsigned char font_xxl[] = { #include "font_64.lbm" }; #if defined(BOOT) -const uint16_t * const fontspecsTable[1] = { font_stdsize_en_specs }; -const uint8_t * fontsTable[1] = { font_stdsize_en }; +const uint16_t * const fontspecsTable[FONTS_COUNT] = { font_std_en_specs }; +const uint8_t * fontsTable[FONTS_COUNT] = { font_std_en }; #else -const uint16_t * const fontspecsTable[16] = { - font_stdsize_specs, font_tinsize_specs, font_smlsize_specs, font_midsize_specs, font_dblsize_specs, font_xxlsize_specs, font_stdsize_specs, font_stdsize_specs, - font_stdsizebold_specs, font_tinsize_specs, font_smlsize_specs, font_midsize_specs, font_dblsize_specs, font_xxlsize_specs, font_stdsize_specs, font_stdsize_specs -}; - -const uint8_t * fontsTable[16] = { - font_stdsize, font_tinsize, font_smlsize, font_midsize, font_dblsize, font_xxlsize, font_stdsize, font_stdsize, - font_stdsizebold, font_tinsize, font_smlsize, font_midsize, font_dblsize, font_xxlsize, font_stdsize, font_stdsize -}; +const uint16_t * const fontspecsTable[FONTS_COUNT] = { font_std_specs, font_bold_specs, font_xxs_specs, font_xs_specs, font_l_specs, font_xl_specs, font_xxl_specs }; +const uint8_t * fontsTable[FONTS_COUNT] = { font_std, font_bold, font_xxs, font_xs, font_l, font_xl, font_xxl }; #endif uint8_t * decompressFont(const uint8_t * font) @@ -139,7 +132,7 @@ uint8_t * decompressFont(const uint8_t * font) uint16_t height = *(((uint16_t *)font)+1); size_t font_size = width * height; - uint8_t* dec_buf = (uint8_t*)malloc(font_size + 4); + uint8_t * dec_buf = (uint8_t *)malloc(font_size + 4); // copy width / height memcpy(dec_buf, font,4); @@ -150,21 +143,17 @@ uint8_t * decompressFont(const uint8_t * font) void loadFonts() { - static bool fonts_loaded = false; - if (fonts_loaded) return; + static bool fontsLoaded = false; + if (fontsLoaded) + return; -#if !defined(BOOT) - int i = 0; - for (; i < 9; i++) { +#if defined(BOOT) + fontsTable[0] = decompressFont(fontsTable[0]); +#else + for (int i = 0; i < FONTS_COUNT; i++) { fontsTable[i] = decompressFont(fontsTable[i]); } - for (; i < 16; i++) { - // the next fonts don't exist in BOLD today - fontsTable[i] = fontsTable[i - 9]; - } -#else - fontsTable[0] = decompressFont(fontsTable[0]); #endif - fonts_loaded = true; + fontsLoaded = true; } diff --git a/radio/src/gui/colorlcd/fullscreen_dialog.cpp b/radio/src/gui/colorlcd/fullscreen_dialog.cpp index d871ad7be..6de2ca128 100644 --- a/radio/src/gui/colorlcd/fullscreen_dialog.cpp +++ b/radio/src/gui/colorlcd/fullscreen_dialog.cpp @@ -58,23 +58,23 @@ void FullScreenDialog::paint(BitmapBuffer * dc) if (type == WARNING_TYPE_ALERT) { #if defined(TRANSLATIONS_FR) || defined(TRANSLATIONS_IT) || defined(TRANSLATIONS_CZ) - dc->drawText(ALERT_TITLE_LEFT, ALERT_TITLE_TOP, STR_WARNING, ALARM_COLOR|DBLSIZE); - dc->drawText(ALERT_TITLE_LEFT, ALERT_TITLE_TOP + ALERT_TITLE_LINE_HEIGHT, title, ALARM_COLOR|DBLSIZE); + dc->drawText(ALERT_TITLE_LEFT, ALERT_TITLE_TOP, STR_WARNING, ALARM_COLOR|FONT(XL)); + dc->drawText(ALERT_TITLE_LEFT, ALERT_TITLE_TOP + ALERT_TITLE_LINE_HEIGHT, title, ALARM_COLOR|FONT(XL)); #else - dc->drawText(ALERT_TITLE_LEFT, ALERT_TITLE_TOP, title.c_str(), ALARM_COLOR|DBLSIZE); - dc->drawText(ALERT_TITLE_LEFT, ALERT_TITLE_TOP + ALERT_TITLE_LINE_HEIGHT, STR_WARNING, ALARM_COLOR|DBLSIZE); + dc->drawText(ALERT_TITLE_LEFT, ALERT_TITLE_TOP, title.c_str(), ALARM_COLOR|FONT(XL)); + dc->drawText(ALERT_TITLE_LEFT, ALERT_TITLE_TOP + ALERT_TITLE_LINE_HEIGHT, STR_WARNING, ALARM_COLOR|FONT(XL)); #endif } else if (!title.empty()) { - dc->drawText(ALERT_TITLE_LEFT, ALERT_TITLE_TOP, title.c_str(), ALARM_COLOR|DBLSIZE); + dc->drawText(ALERT_TITLE_LEFT, ALERT_TITLE_TOP, title.c_str(), ALARM_COLOR|FONT(XL)); } if (!message.empty()) { - dc->drawText(ALERT_MESSAGE_LEFT, ALERT_MESSAGE_TOP, message.c_str(), BOLD); + dc->drawText(ALERT_MESSAGE_LEFT, ALERT_MESSAGE_TOP, message.c_str(), FONT(BOLD)); } if (!action.empty()) { - dc->drawText(LCD_W / 2, ALERT_ACTION_TOP, action.c_str(), CENTERED | BOLD); + dc->drawText(LCD_W / 2, ALERT_ACTION_TOP, action.c_str(), CENTERED | FONT(BOLD)); } } diff --git a/radio/src/gui/colorlcd/layouts/layout1x1.cpp b/radio/src/gui/colorlcd/layouts/layout1x1.cpp index 5c10d7fec..b4ce03f9e 100644 --- a/radio/src/gui/colorlcd/layouts/layout1x1.cpp +++ b/radio/src/gui/colorlcd/layouts/layout1x1.cpp @@ -78,10 +78,10 @@ class Layout1x1: public Layout // // if (persistentData->options[1].boolValue) { // // Sliders + Trims + Flight mode -// lcdDrawSizedText(LCD_W / 2 - getTextWidth(g_model.flightModeData[mixerCurrentFlightMode].name, sizeof(g_model.flightModeData[mixerCurrentFlightMode].name), ZCHAR | SMLSIZE) / 2, +// lcdDrawSizedText(LCD_W / 2 - getTextWidth(g_model.flightModeData[mixerCurrentFlightMode].name, sizeof(g_model.flightModeData[mixerCurrentFlightMode].name), ZCHAR | FONT(XS)) / 2, // 232, // g_model.flightModeData[mixerCurrentFlightMode].name, -// sizeof(g_model.flightModeData[mixerCurrentFlightMode].name), ZCHAR | SMLSIZE); +// sizeof(g_model.flightModeData[mixerCurrentFlightMode].name), ZCHAR | FONT(XS)); // drawMainPots(); // drawTrims(mixerCurrentFlightMode); // } diff --git a/radio/src/gui/colorlcd/layouts/layout2+1.cpp b/radio/src/gui/colorlcd/layouts/layout2+1.cpp index 7b58c631d..014eb0e01 100644 --- a/radio/src/gui/colorlcd/layouts/layout2+1.cpp +++ b/radio/src/gui/colorlcd/layouts/layout2+1.cpp @@ -80,10 +80,10 @@ class Layout2P1: public Layout // // Flight mode // lcdDrawSizedText(LCD_W / 2 - getTextWidth(g_model.flightModeData[mixerCurrentFlightMode].name, // sizeof(g_model.flightModeData[mixerCurrentFlightMode].name), -// ZCHAR | SMLSIZE) / 2, +// ZCHAR | FONT(XS)) / 2, // 232, // g_model.flightModeData[mixerCurrentFlightMode].name, -// sizeof(g_model.flightModeData[mixerCurrentFlightMode].name), ZCHAR | SMLSIZE); +// sizeof(g_model.flightModeData[mixerCurrentFlightMode].name), ZCHAR | FONT(XS)); // } // // if (persistentData->options[2].boolValue) { diff --git a/radio/src/gui/colorlcd/layouts/layout2x4.cpp b/radio/src/gui/colorlcd/layouts/layout2x4.cpp index b5ee359cc..322b12c1f 100644 --- a/radio/src/gui/colorlcd/layouts/layout2x4.cpp +++ b/radio/src/gui/colorlcd/layouts/layout2x4.cpp @@ -87,10 +87,10 @@ class Layout2x4: public Layout // // Flight mode // lcdDrawSizedText(LCD_W / 2 - getTextWidth(g_model.flightModeData[mixerCurrentFlightMode].name, // sizeof(g_model.flightModeData[mixerCurrentFlightMode].name), -// ZCHAR | SMLSIZE) / 2, +// ZCHAR | FONT(XS)) / 2, // 232, // g_model.flightModeData[mixerCurrentFlightMode].name, -// sizeof(g_model.flightModeData[mixerCurrentFlightMode].name), ZCHAR | SMLSIZE); +// sizeof(g_model.flightModeData[mixerCurrentFlightMode].name), ZCHAR | FONT(XS)); // } // // if (persistentData->options[2].boolValue) { diff --git a/radio/src/gui/colorlcd/lcd.cpp b/radio/src/gui/colorlcd/lcd.cpp index a281bf3ba..0b433b93b 100644 --- a/radio/src/gui/colorlcd/lcd.cpp +++ b/radio/src/gui/colorlcd/lcd.cpp @@ -93,13 +93,13 @@ int getCharWidth(uint8_t c, const uint16_t * spec) uint8_t getFontHeight(LcdFlags flags) { - uint32_t fontindex = FONTINDEX(flags); + uint32_t fontindex = FONT_INDEX(flags); return fontspecsTable[fontindex][0]; } int getTextWidth(const char * s, int len, LcdFlags flags) { - const uint16_t * specs = fontspecsTable[FONTINDEX(flags)]; + const uint16_t * specs = fontspecsTable[FONT_INDEX(flags)]; int result = 0; for (int i=0; len == 0 || i < len; ++i) { @@ -115,7 +115,7 @@ int getTextWidth(const char * s, int len, LcdFlags flags) c = uint8_t(*s) + ((c & 0x01) << 8) - 1; if (c >= 0x101) c -= 1; - c += 187; + c += CJK_FIRST_LETTER_INDEX; result += getFontPatternWidth(specs, c); } else if (c >= 0x20) { diff --git a/radio/src/gui/colorlcd/material-backup.cpp b/radio/src/gui/colorlcd/material-backup.cpp index 5f9ce80aa..db2afbf8e 100644 --- a/radio/src/gui/colorlcd/material-backup.cpp +++ b/radio/src/gui/colorlcd/material-backup.cpp @@ -97,7 +97,7 @@ template bool Subtitle(W * window, rect_t & rect, const char * label) { rect.h = 14; - drawText(window, rect.x, rect.y, label, BOLD); + drawText(window, rect.x, rect.y, label, FONT(BOLD)); } template diff --git a/radio/src/gui/colorlcd/model_gvars.cpp b/radio/src/gui/colorlcd/model_gvars.cpp index eca3bdbbf..a87889ba0 100644 --- a/radio/src/gui/colorlcd/model_gvars.cpp +++ b/radio/src/gui/colorlcd/model_gvars.cpp @@ -80,7 +80,7 @@ void GVarButton::paint(BitmapBuffer * dc) LcdFlags attr = RIGHT; if (flightMode == currentFlightMode) - attr |= BOLD; + attr |= FONT(BOLD); x += GVAR_NAME_SIZE; if (x > width()) { @@ -100,8 +100,8 @@ void GVarButton::paint(BitmapBuffer * dc) coord_t yval = y + PAGE_LINE_HEIGHT; if (v <= GVAR_MAX && (gvar->prec > 0 || abs(v) >= 1000 || (abs(v) >= 100 && gvar->unit > 0))) { - attr |= SMLSIZE; - attr &= ~BOLD; + attr |= FONT(XS); + attr &= ~FONT(BOLD); yval += 3; } diff --git a/radio/src/gui/colorlcd/model_inputs.cpp b/radio/src/gui/colorlcd/model_inputs.cpp index 04ca5557c..c81f74ef6 100644 --- a/radio/src/gui/colorlcd/model_inputs.cpp +++ b/radio/src/gui/colorlcd/model_inputs.cpp @@ -303,11 +303,11 @@ void CommonInputOrMixButton::drawFlightModes(BitmapBuffer *dc, FlightModesType v char s[] = " "; s[0] = '0' + i; if (value & (1 << i)) { - dc->drawText(x, PAGE_LINE_HEIGHT + FIELD_PADDING_TOP + 2, s, SMLSIZE | TEXT_DISABLE_COLOR); + dc->drawText(x, PAGE_LINE_HEIGHT + FIELD_PADDING_TOP + 2, s, FONT(XS) | TEXT_DISABLE_COLOR); } else { dc->drawSolidFilledRect(x, PAGE_LINE_HEIGHT + FIELD_PADDING_TOP + 2, 8, 3, CHECKBOX_COLOR); - dc->drawText(x, PAGE_LINE_HEIGHT + FIELD_PADDING_TOP + 2, s, SMLSIZE); + dc->drawText(x, PAGE_LINE_HEIGHT + FIELD_PADDING_TOP + 2, s, FONT(XS)); } x += 8; } diff --git a/radio/src/gui/colorlcd/model_logical_switches.cpp b/radio/src/gui/colorlcd/model_logical_switches.cpp index 15199517c..2c40ce78b 100644 --- a/radio/src/gui/colorlcd/model_logical_switches.cpp +++ b/radio/src/gui/colorlcd/model_logical_switches.cpp @@ -64,7 +64,7 @@ class LogicalSwitchEditPage: public Page { { Page::checkEvents(); if (active != isActive()) { - headerSwitchName->setTextFlags(isActive() ? BOLD|HIGHLIGHT_COLOR : MENU_COLOR); + headerSwitchName->setTextFlags(isActive() ? FONT(BOLD) | HIGHLIGHT_COLOR : MENU_COLOR); active = !active; } } diff --git a/radio/src/gui/colorlcd/model_select.cpp b/radio/src/gui/colorlcd/model_select.cpp index ee515f6ae..6f5426a57 100644 --- a/radio/src/gui/colorlcd/model_select.cpp +++ b/radio/src/gui/colorlcd/model_select.cpp @@ -169,13 +169,13 @@ class ModelselectFooter: public Window { dc->drawSolidFilledRect(0, 5, rect.w, 2, CURVE_AXIS_COLOR); dc->drawBitmap(7, 12, modelselSdFreeBitmap); uint32_t size = sdGetSize() / 100; - dc->drawNumber(24, 11, size, PREC1|SMLSIZE, 0, NULL, "GB"); + dc->drawNumber(24, 11, size, PREC1|FONT(XS), 0, NULL, "GB"); dc->drawBitmap(77, 12, modelselModelQtyBitmap); - dc->drawNumber(99, 11, modelslist.getModelsCount(), SMLSIZE); + dc->drawNumber(99, 11, modelslist.getModelsCount(), FONT(XS)); ModelselectButton * selectedModel = dynamic_cast(focusWindow); if (selectedModel) { dc->drawBitmap(7, 37, modelselModelNameBitmap); - dc->drawText(24, 32, selectedModel->modelFilename(), SMLSIZE | DEFAULT_COLOR); + dc->drawText(24, 32, selectedModel->modelFilename(), FONT(XS) | DEFAULT_COLOR); } } }; diff --git a/radio/src/gui/colorlcd/model_select_old.cpp b/radio/src/gui/colorlcd/model_select_old.cpp index cfe82b3ae..ee29fc8bf 100644 --- a/radio/src/gui/colorlcd/model_select_old.cpp +++ b/radio/src/gui/colorlcd/model_select_old.cpp @@ -484,7 +484,7 @@ bool menuModelSelect(event_t event) } if (selected) { lcd->drawBitmap(5, LCD_H-FH, modelselModelNameBitmap); - lcdDrawText(22, LCD_H-FH-1, (*it)->modelFilename, SMLSIZE|DEFAULT_COLOR); + lcdDrawText(22, LCD_H-FH-1, (*it)->modelFilename, FONT(XS)|DEFAULT_COLOR); } } } @@ -511,9 +511,9 @@ bool menuModelSelect(event_t event) // Footer lcd->drawBitmap(5, LCD_H-FH-20, modelselSdFreeBitmap); uint32_t size = sdGetSize() / 100; - lcdDrawNumber(22, LCD_H-FH-21, size, PREC1|SMLSIZE, 0, NULL, "GB"); + lcdDrawNumber(22, LCD_H-FH-21, size, PREC1|FONT(XS), 0, NULL, "GB"); lcd->drawBitmap(70, LCD_H-FH-20, modelselModelQtyBitmap); - lcdDrawNumber(92, LCD_H-FH-21, modelslist.getModelsCount(),SMLSIZE); + lcdDrawNumber(92, LCD_H-FH-21, modelslist.getModelsCount(),FONT(XS)); return true; } diff --git a/radio/src/gui/colorlcd/model_telemetry.cpp b/radio/src/gui/colorlcd/model_telemetry.cpp index 4cdb006f2..57a1092c0 100644 --- a/radio/src/gui/colorlcd/model_telemetry.cpp +++ b/radio/src/gui/colorlcd/model_telemetry.cpp @@ -426,9 +426,9 @@ void ModelTelemetryPage::build(FormWindow * window, int8_t focusSensorIndex) // Sensors columns titles uint8_t sensorsCount = getTelemetrySensorsCount(); if (sensorsCount > 0) { - new StaticText(window, {SENSOR_COL2, grid.getWindowHeight() + 3, SENSOR_COL3 - SENSOR_COL2, PAGE_LINE_HEIGHT}, STR_VALUE, 0, SMLSIZE | TEXT_DISABLE_COLOR); + new StaticText(window, {SENSOR_COL2, grid.getWindowHeight() + 3, SENSOR_COL3 - SENSOR_COL2, PAGE_LINE_HEIGHT}, STR_VALUE, 0, FONT(XS) | TEXT_DISABLE_COLOR); if (!g_model.ignoreSensorIds && !IS_SPEKTRUM_PROTOCOL()) { - new StaticText(window, {SENSOR_COL3, grid.getWindowHeight() + 3, LCD_W - SENSOR_COL3, PAGE_LINE_HEIGHT}, STR_ID, 0, SMLSIZE | TEXT_DISABLE_COLOR); + new StaticText(window, {SENSOR_COL3, grid.getWindowHeight() + 3, LCD_W - SENSOR_COL3, PAGE_LINE_HEIGHT}, STR_ID, 0, FONT(XS) | TEXT_DISABLE_COLOR); } } diff --git a/radio/src/gui/colorlcd/modelslist.cpp b/radio/src/gui/colorlcd/modelslist.cpp index 37e60e7a5..f70bc536e 100644 --- a/radio/src/gui/colorlcd/modelslist.cpp +++ b/radio/src/gui/colorlcd/modelslist.cpp @@ -107,7 +107,7 @@ void ModelCell::loadBitmap() } else { char timer[LEN_TIMER_STRING]; - buffer->drawSizedText(5, 2, modelName, LEN_MODEL_NAME, SMLSIZE|DEFAULT_COLOR); + buffer->drawSizedText(5, 2, modelName, LEN_MODEL_NAME, FONT(XS)|DEFAULT_COLOR); getTimerString(timer, 0); for (uint8_t i = 0; i < MAX_TIMERS; i++) { if (partialmodel.timers[i].mode > 0 && partialmodel.timers[i].persistent) { diff --git a/radio/src/gui/colorlcd/radio_hardware.cpp b/radio/src/gui/colorlcd/radio_hardware.cpp index 211f20e47..1a1888efa 100644 --- a/radio/src/gui/colorlcd/radio_hardware.cpp +++ b/radio/src/gui/colorlcd/radio_hardware.cpp @@ -90,7 +90,7 @@ void RadioHardwarePage::build(FormWindow * window) grid.spacer(6); // Calibration - new StaticText(window, grid.getLabelSlot(), STR_INPUTS, BOLD); + new StaticText(window, grid.getLabelSlot(), STR_INPUTS, 0, FONT(BOLD)); auto calib = new TextButton(window, grid.getFieldSlot(), STR_CALIBRATION); calib->setPressHandler([=]() -> uint8_t { auto calibrationPage = new RadioCalibrationPage(); @@ -104,7 +104,7 @@ void RadioHardwarePage::build(FormWindow * window) // Sticks new Subtitle(window, grid.getLineSlot(), STR_STICKS); grid.nextLine(); - for(int i=0; i < NUM_STICKS; i++){ + for (int i = 0; i < NUM_STICKS; i++) { new StaticText(window, grid.getLabelSlot(true), TEXT_AT_INDEX(STR_VSRCRAW, (i + 1))); new TextEdit(window, grid.getFieldSlot(2,0), g_eeGeneral.anaNames[i], LEN_ANA_NAME); grid.nextLine(); @@ -113,7 +113,7 @@ void RadioHardwarePage::build(FormWindow * window) // Pots new Subtitle(window, grid.getLineSlot(), STR_POTS); grid.nextLine(); - for(int i=0; i < NUM_POTS; i++){ + for (int i = 0; i < NUM_POTS; i++) { new StaticText(window, grid.getLabelSlot(true), TEXT_AT_INDEX(STR_VSRCRAW, (i + NUM_STICKS + 1))); new TextEdit(window, grid.getFieldSlot(2,0), g_eeGeneral.anaNames[i + NUM_STICKS], LEN_ANA_NAME); new Choice(window, grid.getFieldSlot(2,1), STR_POTTYPES, POT_NONE, POT_WITHOUT_DETENT, GET_SET_BF(g_eeGeneral.potsConfig, 2 * i, 2)); @@ -123,17 +123,17 @@ void RadioHardwarePage::build(FormWindow * window) // Switches new Subtitle(window, grid.getLineSlot(), STR_SWITCHES); grid.nextLine(); - for(int i=0; i < NUM_SWITCHES; i++) { + for (int i = 0; i < NUM_SWITCHES; i++) { new SwitchDynamicLabel(window, grid.getLabelSlot(true), i); new TextEdit(window, grid.getFieldSlot(2, 0), g_eeGeneral.switchNames[i], LEN_SWITCH_NAME); new Choice(window, grid.getFieldSlot(2, 1), STR_SWTYPES, SWITCH_NONE, SWITCH_TYPE_MAX(i), [=]() -> int { - return SWITCH_CONFIG(i); + return SWITCH_CONFIG(i); }, [=](int newValue) { - swconfig_t mask = (swconfig_t)0x03 << (2*i); - g_eeGeneral.switchConfig = (g_eeGeneral.switchConfig & ~mask) | ((swconfig_t(newValue) & 0x03) << (2*i)); - SET_DIRTY(); + swconfig_t mask = (swconfig_t) 0x03 << (2 * i); + g_eeGeneral.switchConfig = (g_eeGeneral.switchConfig & ~mask) | ((swconfig_t(newValue) & 0x03) << (2 * i)); + SET_DIRTY(); }); grid.nextLine(); } diff --git a/radio/src/gui/colorlcd/screens_setup_old.cpp b/radio/src/gui/colorlcd/screens_setup_old.cpp index b3431f8cc..cc89330cf 100644 --- a/radio/src/gui/colorlcd/screens_setup_old.cpp +++ b/radio/src/gui/colorlcd/screens_setup_old.cpp @@ -313,7 +313,7 @@ bool menuWidgetChoice(event_t event) lcdDrawBitmapPattern(zone.x+zone.w-9, zone.y+zone.h/2-10, LBM_SWIPE_RIGHT, FOCUS_COLOR); } if (currentWidget) - lcdDrawText(zone.x + zone.w, zone.y-1, currentWidget->getFactory()->getName(), RIGHT | DEFAULT_COLOR | SMLSIZE | INVERS); + lcdDrawText(zone.x + zone.w, zone.y-1, currentWidget->getFactory()->getName(), RIGHT | DEFAULT_COLOR | FONT(XS) | INVERS); return true; } diff --git a/radio/src/gui/colorlcd/special_functions.cpp b/radio/src/gui/colorlcd/special_functions.cpp index a3d2dbb12..25f9445cf 100644 --- a/radio/src/gui/colorlcd/special_functions.cpp +++ b/radio/src/gui/colorlcd/special_functions.cpp @@ -51,7 +51,7 @@ class SpecialFunctionEditPage : public Page { Page::checkEvents(); if (active != isActive()) { invalidate(); - headerSF->setTextFlags(isActive() ? BOLD|HIGHLIGHT_COLOR : MENU_COLOR); + headerSF->setTextFlags(isActive() ? FONT(BOLD) |HIGHLIGHT_COLOR : MENU_COLOR); active = !active; } } diff --git a/radio/src/gui/colorlcd/theme.cpp b/radio/src/gui/colorlcd/theme.cpp index e6ea0031c..efc17a16e 100644 --- a/radio/src/gui/colorlcd/theme.cpp +++ b/radio/src/gui/colorlcd/theme.cpp @@ -120,15 +120,15 @@ void ThemeBase::drawMessageBox(const char * title, const char * text, const char // // if (type == WARNING_TYPE_ALERT) { //#if defined(TRANSLATIONS_FR) || defined(TRANSLATIONS_IT) || defined(TRANSLATIONS_CZ) -// lcdDrawText(WARNING_LINE_X, WARNING_LINE_Y, STR_WARNING, ALARM_COLOR|DBLSIZE); -// lcdDrawText(WARNING_LINE_X, WARNING_LINE_Y+28, title, ALARM_COLOR|DBLSIZE); +// lcdDrawText(WARNING_LINE_X, WARNING_LINE_Y, STR_WARNING, ALARM_COLOR|FONT(XL)); +// lcdDrawText(WARNING_LINE_X, WARNING_LINE_Y+28, title, ALARM_COLOR|FONT(XL)); //#else -// lcdDrawText(WARNING_LINE_X, WARNING_LINE_Y, title, ALARM_COLOR|DBLSIZE); -// lcdDrawText(WARNING_LINE_X, WARNING_LINE_Y+28, STR_WARNING, ALARM_COLOR|DBLSIZE); +// lcdDrawText(WARNING_LINE_X, WARNING_LINE_Y, title, ALARM_COLOR|FONT(XL)); +// lcdDrawText(WARNING_LINE_X, WARNING_LINE_Y+28, STR_WARNING, ALARM_COLOR|FONT(XL)); //#endif // } // else if (title) { -// lcdDrawText(WARNING_LINE_X, WARNING_LINE_Y, title, ALARM_COLOR|DBLSIZE); +// lcdDrawText(WARNING_LINE_X, WARNING_LINE_Y, title, ALARM_COLOR|FONT(XL)); // } // // if (text) { diff --git a/radio/src/gui/colorlcd/themes/flysky.cpp b/radio/src/gui/colorlcd/themes/flysky.cpp index 23607b817..91111e83d 100644 --- a/radio/src/gui/colorlcd/themes/flysky.cpp +++ b/radio/src/gui/colorlcd/themes/flysky.cpp @@ -403,10 +403,10 @@ class FlyskyTheme: public ThemeBase const char * const STR_MONTHS[] = TR_MONTHS; sprintf(str, "%d %s", t.tm_mday, STR_MONTHS[t.tm_mon]); #endif - dc->drawText(DATETIME_MIDDLE, DATETIME_LINE1, str, SMLSIZE|FOCUS_COLOR|CENTERED); + dc->drawText(DATETIME_MIDDLE, DATETIME_LINE1, str, FONT(XS)|FOCUS_COLOR|CENTERED); getTimerString(str, getValue(MIXSRC_TX_TIME)); - dc->drawText(DATETIME_MIDDLE, DATETIME_LINE2, str, SMLSIZE|FOCUS_COLOR|CENTERED); + dc->drawText(DATETIME_MIDDLE, DATETIME_LINE2, str, FONT(XS)|FOCUS_COLOR|CENTERED); } void drawProgressBar(BitmapBuffer * dc, coord_t x, coord_t y, coord_t w, coord_t h, int value) const override diff --git a/radio/src/gui/colorlcd/themes/frsky.cpp b/radio/src/gui/colorlcd/themes/frsky.cpp index 936dd67c9..c9f6dc386 100644 --- a/radio/src/gui/colorlcd/themes/frsky.cpp +++ b/radio/src/gui/colorlcd/themes/frsky.cpp @@ -188,10 +188,10 @@ class FrskyTheme: public ThemeBase delete calibRadioPict; #if defined(PCBX10) if(STICKS_PWM_ENABLED()) { - calibRadioPict = BitmapBuffer::load(getFilePath("X10S.bmp")); + calibRadioPict = BitmapBuffer::loadBitmap(getFilePath("X10S.bmp")); } else { - calibRadioPict = BitmapBuffer::load(getFilePath("X10.bmp")); + calibRadioPict = BitmapBuffer::loadBitmap(getFilePath("X10.bmp")); } #else calibRadioPict = BitmapBuffer::loadBitmap(getFilePath("horus.bmp")); @@ -378,9 +378,9 @@ class FrskyTheme: public ThemeBase const char * const STR_MONTHS[] = TR_MONTHS; sprintf(str, "%d %s", t.tm_mday, STR_MONTHS[t.tm_mon]); #endif - dc->drawText(DATETIME_MIDDLE, DATETIME_LINE1, str, SMLSIZE|FOCUS_COLOR|CENTERED); + dc->drawText(DATETIME_MIDDLE, DATETIME_LINE1, str, FONT(XS)|FOCUS_COLOR|CENTERED); getTimerString(str, getValue(MIXSRC_TX_TIME)); - dc->drawText(DATETIME_MIDDLE, DATETIME_LINE2, str, SMLSIZE|FOCUS_COLOR|CENTERED); + dc->drawText(DATETIME_MIDDLE, DATETIME_LINE2, str, FONT(XS)|FOCUS_COLOR|CENTERED); } void drawProgressBar(BitmapBuffer * dc, coord_t x, coord_t y, coord_t w, coord_t h, int value) const override diff --git a/radio/src/gui/colorlcd/topbar.cpp b/radio/src/gui/colorlcd/topbar.cpp index 27ee6cd3f..eab8ad57e 100644 --- a/radio/src/gui/colorlcd/topbar.cpp +++ b/radio/src/gui/colorlcd/topbar.cpp @@ -85,7 +85,7 @@ void drawTopBar() #if 0 // Radio battery - TODO - // drawValueWithUnit(370, 8, g_vbat100mV, UNIT_VOLTS, PREC1|SMLSIZE|MENU_COLOR); + // drawValueWithUnit(370, 8, g_vbat100mV, UNIT_VOLTS, PREC1|FONT(XS)|MENU_COLOR); // lcdDrawSolidRect(300, 3, 20, 50, MENU_COLOR); // lcdDrawRect(batt_icon_x+FW, BAR_Y+1, 13, 7); // lcdDrawSolidVerticalLine(batt_icon_x+FW+13, BAR_Y+2, 5); @@ -107,7 +107,7 @@ void drawTopBar() att |= (item.isOld() ? ALARM_COLOR : DEFAULT_COLOR); lcdDrawSolidFilledRect(ALTITUDE_X, VOLTS_Y, ALTITUDE_W, ALTITUDE_H, DEFAULT_BGCOLOR); lcdDrawText(ALTITUDE_X+PADDING, VOLTS_Y+2, "Voltage", att); - drawValueWithUnit(ALTITUDE_X+PADDING, VOLTS_Y+12, value, UNIT_VOLTS, DBLSIZE|LEFT|att); + drawValueWithUnit(ALTITUDE_X+PADDING, VOLTS_Y+12, value, UNIT_VOLTS, FONT(XL)|LEFT|att); } } @@ -121,7 +121,7 @@ void drawTopBar() LcdFlags att = (item.isOld() ? ALARM_COLOR : DEFAULT_COLOR); lcdDrawSolidFilledRect(ALTITUDE_X, ALTITUDE_Y, ALTITUDE_W, ALTITUDE_H, DEFAULT_BGCOLOR); lcdDrawText(ALTITUDE_X+PADDING, ALTITUDE_Y+2, "Alt", att); - drawValueWithUnit(ALTITUDE_X+PADDING, ALTITUDE_Y+12, value, UNIT_METERS, DBLSIZE|LEFT|att); + drawValueWithUnit(ALTITUDE_X+PADDING, ALTITUDE_Y+12, value, UNIT_METERS, FONT(XL)|LEFT|att); } } #endif diff --git a/radio/src/gui/colorlcd/view_channels.cpp b/radio/src/gui/colorlcd/view_channels.cpp index d12d0d4b8..019433b5e 100644 --- a/radio/src/gui/colorlcd/view_channels.cpp +++ b/radio/src/gui/colorlcd/view_channels.cpp @@ -79,13 +79,13 @@ void drawSingleMixerBar(coord_t x, coord_t y, coord_t w, coord_t h, uint8_t chan lcdDrawSolidFilledRect(x, y, w, h, BARGRAPH_BGCOLOR); if (chanVal > 0) { lcdDrawSolidFilledRect(x + w / 2, y, divRoundClosest(chanVal * w, VIEW_CHANNELS_LIMIT_PCT * 2), h, BARGRAPH2_COLOR); - lcdDrawNumber(x - 10 + w / 2, y - 2, displayVal, SMLSIZE | DEFAULT_COLOR | RIGHT, 0, NULL, "%"); + lcdDrawNumber(x - 10 + w / 2, y - 2, displayVal, FONT(XS) | DEFAULT_COLOR | RIGHT, 0, NULL, "%"); } else if (chanVal < 0) { const uint16_t endpoint = x + w / 2; const uint16_t size = divRoundClosest(-chanVal * w, VIEW_CHANNELS_LIMIT_PCT * 2); lcdDrawSolidFilledRect(endpoint - size, y, size, h, BARGRAPH2_COLOR); - lcdDrawNumber(x + 10 + w / 2, y - 2, displayVal, SMLSIZE | DEFAULT_COLOR, 0, NULL, "%"); + lcdDrawNumber(x + 10 + w / 2, y - 2, displayVal, FONT(XS) | DEFAULT_COLOR, 0, NULL, "%"); } lcd->drawSolidVerticalLine(x + w / 2, y, h, DEFAULT_COLOR); @@ -101,13 +101,13 @@ void drawSingleOutputBar(coord_t x, coord_t y, coord_t w, coord_t h, uint8_t cha lcdDrawSolidFilledRect(x, y, w, h, BARGRAPH_BGCOLOR); if (chanVal > 0) { lcdDrawSolidFilledRect(x + w / 2, y, divRoundClosest(chanVal * w, VIEW_CHANNELS_LIMIT_PCT * 2), h, BARGRAPH1_COLOR); - lcdDrawNumber(x - 10 + w / 2, y - 2, displayVal, SMLSIZE | DEFAULT_COLOR | RIGHT, 0, NULL, "%"); + lcdDrawNumber(x - 10 + w / 2, y - 2, displayVal, FONT(XS) | DEFAULT_COLOR | RIGHT, 0, NULL, "%"); } else if (chanVal < 0) { uint16_t endpoint = x + w / 2; uint16_t size = divRoundClosest(-chanVal * w, VIEW_CHANNELS_LIMIT_PCT * 2); lcdDrawSolidFilledRect(endpoint - size, y, size, h, BARGRAPH1_COLOR); - lcdDrawNumber(x + 10 + w / 2, y - 2, displayVal, SMLSIZE | DEFAULT_COLOR, 0, NULL, "%"); + lcdDrawNumber(x + 10 + w / 2, y - 2, displayVal, FONT(XS) | DEFAULT_COLOR, 0, NULL, "%"); } lcd->drawSolidVerticalLine(x + w / 2, y, h, DEFAULT_COLOR); @@ -123,10 +123,10 @@ void drawComboOutputBar(coord_t x, coord_t y, coord_t w, coord_t h, uint8_t chan uint16_t valPos; strAppendSigned(&chanString[2], channel + 1, 2); - lcdDrawText(x, y, chanString, SMLSIZE | DEFAULT_COLOR | LEFT); + lcdDrawText(x, y, chanString, FONT(XS) | DEFAULT_COLOR | LEFT); - lcdDrawSizedText(x + 45, y, g_model.limitData[channel].name, sizeof(g_model.limitData[channel].name), SMLSIZE | DEFAULT_COLOR | LEFT | ZCHAR); - lcdDrawNumber(x + w, y, usValue, SMLSIZE | DEFAULT_COLOR | RIGHT, 0, NULL, STR_US); + lcdDrawSizedText(x + 45, y, g_model.limitData[channel].name, sizeof(g_model.limitData[channel].name), FONT(XS) | DEFAULT_COLOR | LEFT | ZCHAR); + lcdDrawNumber(x + w, y, usValue, FONT(XS) | DEFAULT_COLOR | RIGHT, 0, NULL, STR_US); lcdDrawSolidFilledRect(x, y + Y_OUTBAR, w, h, BARGRAPH_BGCOLOR); lcd->drawSolidVerticalLine(x + limPos, y + Y_OUTBAR, h, MAINVIEW_GRAPHICS_COLOR); @@ -156,9 +156,9 @@ void drawComboOutputBar(coord_t x, coord_t y, coord_t w, coord_t h, uint8_t chan #endif lcd->drawSolidVerticalLine(x + w / 2, y + Y_OUTBAR, h, DEFAULT_COLOR); if (chanVal > calcRESXto100((ld && ld->revert) ? -ld->offset : ld->offset)) - lcdDrawNumber(x + limPos, y + h, chanVal, SMLSIZE | DEFAULT_COLOR | RIGHT, 0, NULL, "%"); + lcdDrawNumber(x + limPos, y + h, chanVal, FONT(XS) | DEFAULT_COLOR | RIGHT, 0, NULL, "%"); else - lcdDrawNumber(x + limPos, y + h, chanVal, SMLSIZE | DEFAULT_COLOR, 0, NULL, "%"); + lcdDrawNumber(x + limPos, y + h, chanVal, FONT(XS) | DEFAULT_COLOR, 0, NULL, "%"); } coord_t drawChannelsMonitorLegend(coord_t x, const char * s, int color) diff --git a/radio/src/gui/colorlcd/view_statistics.cpp b/radio/src/gui/colorlcd/view_statistics.cpp index c00f3fb48..378e95223 100644 --- a/radio/src/gui/colorlcd/view_statistics.cpp +++ b/radio/src/gui/colorlcd/view_statistics.cpp @@ -124,18 +124,18 @@ bool menuStatsDebug(event_t event) #if defined(LUA) lcdDrawText(MENUS_MARGIN_LEFT, y, "Lua scripts"); - lcdDrawText(MENU_STATS_COLUMN1, y+1, "[Duration]", HEADER_COLOR|SMLSIZE); + lcdDrawText(MENU_STATS_COLUMN1, y+1, "[Duration]", HEADER_COLOR|FONT(XS)); lcdDrawNumber(lcdNextPos+5, y, 10*maxLuaDuration, LEFT, 0, NULL, "ms"); - lcdDrawText(lcdNextPos+20, y+1, "[Interval]", HEADER_COLOR|SMLSIZE); + lcdDrawText(lcdNextPos+20, y+1, "[Interval]", HEADER_COLOR|FONT(XS)); lcdDrawNumber(lcdNextPos+5, y, 10*maxLuaDuration, LEFT, 0, NULL, "ms"); y += FH; // lcdDrawText(MENUS_MARGIN_LEFT, MENU_CONTENT_TOP+line*FH, "Lua memory"); - lcdDrawText(MENU_STATS_COLUMN1, y+1, "[S]", HEADER_COLOR|SMLSIZE); + lcdDrawText(MENU_STATS_COLUMN1, y+1, "[S]", HEADER_COLOR|FONT(XS)); lcdDrawNumber(lcdNextPos+5, y, luaGetMemUsed(lsScripts), LEFT); - lcdDrawText(lcdNextPos+20, y+1, "[W]", HEADER_COLOR|SMLSIZE); + lcdDrawText(lcdNextPos+20, y+1, "[W]", HEADER_COLOR|FONT(XS)); lcdDrawNumber(lcdNextPos+5, y, luaGetMemUsed(lsWidgets), LEFT); - lcdDrawText(lcdNextPos+20, y+1, "[B]", HEADER_COLOR|SMLSIZE); + lcdDrawText(lcdNextPos+20, y+1, "[B]", HEADER_COLOR|FONT(XS)); lcdDrawNumber(lcdNextPos+5, y, luaExtraMemoryUsage, LEFT); y += FH; #endif @@ -145,11 +145,11 @@ bool menuStatsDebug(event_t event) y += FH; lcdDrawText(MENUS_MARGIN_LEFT, y, STR_FREE_STACK); - lcdDrawText(MENU_STATS_COLUMN1, y+1, "[Menus]", HEADER_COLOR|SMLSIZE); + lcdDrawText(MENU_STATS_COLUMN1, y+1, "[Menus]", HEADER_COLOR|FONT(XS)); lcdDrawNumber(lcdNextPos+5, y, menusStack.available(), LEFT); - lcdDrawText(lcdNextPos+20, y+1, "[Mix]", HEADER_COLOR|SMLSIZE); + lcdDrawText(lcdNextPos+20, y+1, "[Mix]", HEADER_COLOR|FONT(XS)); lcdDrawNumber(lcdNextPos+5, y, mixerStack.available(), LEFT); - lcdDrawText(lcdNextPos+20, y+1, "[Audio]", HEADER_COLOR|SMLSIZE); + lcdDrawText(lcdNextPos+20, y+1, "[Audio]", HEADER_COLOR|FONT(XS)); lcdDrawNumber(lcdNextPos+5, y, audioStack.available(), LEFT); y += FH; @@ -176,11 +176,11 @@ bool menuStatsDebug(event_t event) #if defined(INTERNAL_GPS) lcdDrawText(MENUS_MARGIN_LEFT, y, "Internal GPS"); - lcdDrawText(MENU_STATS_COLUMN1, y+1, "[Fix]", HEADER_COLOR|SMLSIZE); + lcdDrawText(MENU_STATS_COLUMN1, y+1, "[Fix]", HEADER_COLOR|FONT(XS)); lcdDrawText(lcdNextPos+2, y, (gpsData.fix ? "Yes" : "No"), LEFT); - lcdDrawText(lcdNextPos+20, y+1, "[Sats]", HEADER_COLOR|SMLSIZE); + lcdDrawText(lcdNextPos+20, y+1, "[Sats]", HEADER_COLOR|FONT(XS)); lcdDrawNumber(lcdNextPos+5, y, gpsData.numSat, LEFT); - lcdDrawText(lcdNextPos+20, y+1, "[Hdop]", HEADER_COLOR|SMLSIZE); + lcdDrawText(lcdNextPos+20, y+1, "[Hdop]", HEADER_COLOR|FONT(XS)); lcdDrawNumber(lcdNextPos+5, y, gpsData.hdop, PREC2|LEFT); #endif diff --git a/radio/src/gui/colorlcd/widgets/gauge.cpp b/radio/src/gui/colorlcd/widgets/gauge.cpp index e6c65621e..3dd91a20f 100644 --- a/radio/src/gui/colorlcd/widgets/gauge.cpp +++ b/radio/src/gui/colorlcd/widgets/gauge.cpp @@ -59,12 +59,12 @@ void GaugeWidget::refresh() int percent = divRoundClosest(100 * (value_in_range - min), (max - min)); // Gauge label - drawSource(zone.x, zone.y, index, SMLSIZE | FOCUS_COLOR); + drawSource(zone.x, zone.y, index, FONT(XS) | FOCUS_COLOR); // Gauge lcdSetColor(color); lcdDrawSolidFilledRect(zone.x, zone.y + 16, zone.w, 16, FOCUS_COLOR); - lcdDrawNumber(zone.x+zone.w/2, zone.y + 17, percent, SMLSIZE | CUSTOM_COLOR | CENTERED, 0, NULL, "%"); + lcdDrawNumber(zone.x+zone.w/2, zone.y + 17, percent, FONT(XS) | CUSTOM_COLOR | CENTERED, 0, NULL, "%"); lcd->invertRect(zone.x + w, zone.y + 16, zone.w - w, 16, CUSTOM_COLOR); } diff --git a/radio/src/gui/colorlcd/widgets/modelbmp.cpp b/radio/src/gui/colorlcd/widgets/modelbmp.cpp index 131d59b2b..37c0e5928 100644 --- a/radio/src/gui/colorlcd/widgets/modelbmp.cpp +++ b/radio/src/gui/colorlcd/widgets/modelbmp.cpp @@ -48,7 +48,7 @@ class ModelBitmapWidget: public Widget buffer->drawFilledRect(0, 0, zone.w, zone.h, SOLID, MAINVIEW_PANES_COLOR | OPACITY(5)); static BitmapBuffer * icon = BitmapBuffer::loadMask(getThemePath("mask_menu_model.png")); buffer->drawMask(6, 4, icon, MAINVIEW_GRAPHICS_COLOR); - buffer->drawSizedText(45, 10, g_model.header.name, LEN_MODEL_NAME, ZCHAR | SMLSIZE); + buffer->drawSizedText(45, 10, g_model.header.name, LEN_MODEL_NAME, ZCHAR | FONT(XS)); buffer->drawSolidFilledRect(39, 27, zone.w - 48, 2, MAINVIEW_GRAPHICS_COLOR); if (bitmap) { buffer->drawScaledBitmap(bitmap, 0, 38, zone.w, zone.h - 38); diff --git a/radio/src/gui/colorlcd/widgets/outputs.cpp b/radio/src/gui/colorlcd/widgets/outputs.cpp index 2b87a6363..2d3323eb2 100644 --- a/radio/src/gui/colorlcd/widgets/outputs.cpp +++ b/radio/src/gui/colorlcd/widgets/outputs.cpp @@ -59,13 +59,13 @@ class OutputsWidget: public Widget lcdDrawSolidFilledRect((chanVal > 0 ? barMid : barMid - fillW), barTop, fillW, barH, MAINVIEW_GRAPHICS_COLOR); lcd->drawSolidVerticalLine(barMid, barTop, barH, MAINVIEW_GRAPHICS_COLOR); lcdDrawRect(x, rowTop, w, rowH + 1); - lcdDrawNumber(x + barW - 10, barTop, chanVal, SMLSIZE | DEFAULT_COLOR | RIGHT, 0, NULL, "%"); + lcdDrawNumber(x + barW - 10, barTop, chanVal, FONT(XS) | DEFAULT_COLOR | RIGHT, 0, NULL, "%"); if (g_model.limitData[curChan - 1].name[0] != 0) { - lcdDrawNumber(barLft + 1, barTop, curChan, SMLSIZE | DEFAULT_COLOR | LEFT | LEADING0, 2); - lcdDrawSizedText(barLft + 23, barTop, g_model.limitData[curChan - 1].name, sizeof(g_model.limitData[curChan - 1].name), SMLSIZE | DEFAULT_COLOR | LEFT | ZCHAR); + lcdDrawNumber(barLft + 1, barTop, curChan, FONT(XS) | DEFAULT_COLOR | LEFT | LEADING0, 2); + lcdDrawSizedText(barLft + 23, barTop, g_model.limitData[curChan - 1].name, sizeof(g_model.limitData[curChan - 1].name), FONT(XS) | DEFAULT_COLOR | LEFT | ZCHAR); } else { - putsChn(barLft + 1, barTop, curChan, SMLSIZE | DEFAULT_COLOR | LEFT); + putsChn(barLft + 1, barTop, curChan, FONT(XS) | DEFAULT_COLOR | LEFT); } } return lastChan - 1; diff --git a/radio/src/gui/colorlcd/widgets/timer.cpp b/radio/src/gui/colorlcd/widgets/timer.cpp index 4a8ab1728..ed900f1ce 100644 --- a/radio/src/gui/colorlcd/widgets/timer.cpp +++ b/radio/src/gui/colorlcd/widgets/timer.cpp @@ -64,20 +64,20 @@ void TimerWidget::refresh() drawTimer(zone.x + 70, zone.y + 31, abs(timerState.val), DEFAULT_COLOR | MIDSIZE | LEFT | TIMEHOUR); } else { - drawTimer(zone.x + 76, zone.y + 31, abs(timerState.val), DEFAULT_COLOR | DBLSIZE | LEFT); + drawTimer(zone.x + 76, zone.y + 31, abs(timerState.val), DEFAULT_COLOR | FONT(XL) | LEFT); } if (ZLEN(timerData.name) > 0) { - lcdDrawSizedText(zone.x + 78, zone.y + 20, timerData.name, LEN_TIMER_NAME, ZCHAR | SMLSIZE | DEFAULT_COLOR); + lcdDrawSizedText(zone.x + 78, zone.y + 20, timerData.name, LEN_TIMER_NAME, ZCHAR | FONT(XS) | DEFAULT_COLOR); } else { - drawStringWithIndex(zone.x + 137, zone.y + 17, "TMR", index + 1, SMLSIZE | DEFAULT_COLOR); + drawStringWithIndex(zone.x + 137, zone.y + 17, "TMR", index + 1, FONT(XS) | DEFAULT_COLOR); } } else { if (timerState.val < 0 && timerState.val % 2) { lcdDrawSolidFilledRect(zone.x, zone.y, zone.w, zone.h, HEADER_ICON_BGCOLOR); } - drawStringWithIndex(zone.x + 2, zone.y, "TMR", index + 1, SMLSIZE | FOCUS_COLOR); + drawStringWithIndex(zone.x + 2, zone.y, "TMR", index + 1, FONT(XS) | FOCUS_COLOR); if (zone.w > 100 && zone.h > 40) { if (abs(timerState.val) >= 3600) { drawTimer(zone.x + 3, zone.y + 16, abs(timerState.val), FOCUS_COLOR | LEFT | TIMEHOUR); @@ -88,7 +88,7 @@ void TimerWidget::refresh() } else { if (abs(timerState.val) >= 3600) { - drawTimer(zone.x + 3, zone.y + 14, abs(timerState.val), FOCUS_COLOR | LEFT | SMLSIZE | TIMEHOUR); + drawTimer(zone.x + 3, zone.y + 14, abs(timerState.val), FOCUS_COLOR | LEFT | FONT(XS) | TIMEHOUR); } else { drawTimer(zone.x + 3, zone.y + 14, abs(timerState.val), FOCUS_COLOR | LEFT); diff --git a/radio/src/gui/colorlcd/widgets/value.cpp b/radio/src/gui/colorlcd/widgets/value.cpp index 2a36ba7f3..67593a255 100644 --- a/radio/src/gui/colorlcd/widgets/value.cpp +++ b/radio/src/gui/colorlcd/widgets/value.cpp @@ -62,14 +62,14 @@ void ValueWidget::refresh() xLabel = x; yLabel = y; attrValue = LEFT | NO_UNIT | MIDSIZE; - attrLabel = SMLSIZE; + attrLabel = FONT(XS); } else if (zone.h < 50) { xValue = x+zone.w-NUMBERS_PADDING; yValue = y-2; xLabel = x+NUMBERS_PADDING; yLabel = y+2; - attrValue = RIGHT | NO_UNIT | DBLSIZE; + attrValue = RIGHT | NO_UNIT | FONT(XL); } else { xValue = x+NUMBERS_PADDING; @@ -81,7 +81,7 @@ void ValueWidget::refresh() attrValue = LEFT | MIDSIZE | EXPANDED; } else { - attrValue = LEFT | DBLSIZE; + attrValue = LEFT | FONT(XL); } } #if defined(INTERNAL_GPS) @@ -90,7 +90,7 @@ void ValueWidget::refresh() } #endif else { - attrValue = LEFT | DBLSIZE; + attrValue = LEFT | FONT(XL); } } @@ -101,7 +101,7 @@ void ValueWidget::refresh() } drawSource(x+NUMBERS_PADDING, y+2, field, CUSTOM_COLOR); drawSource(x+NUMBERS_PADDING + 1, y + 3, field, BLACK); - drawTimer(xValue, yValue, abs(timerState.val), attrValue|DBLSIZE|CUSTOM_COLOR); + drawTimer(xValue, yValue, abs(timerState.val), attrValue|FONT(XL)|CUSTOM_COLOR); return; } diff --git a/radio/src/targets/horus/libopenui_config.h b/radio/src/targets/horus/libopenui_config.h index 26f6ea973..287f579ab 100644 --- a/radio/src/targets/horus/libopenui_config.h +++ b/radio/src/targets/horus/libopenui_config.h @@ -129,11 +129,21 @@ enum LcdColorIndex LCD_COLOR_COUNT }; -#if !defined(BOOT) -#define FONT_TABLE_SIZE 16 -#else -#define FONT_TABLE_SIZE 1 +enum FontIndex +{ + FONT_STD_INDEX, +#if !defined(BOLD) + FONT_BOLD_INDEX, + FONT_XXS_INDEX, + FONT_XS_INDEX, + FONT_L_INDEX, + FONT_XL_INDEX, + FONT_XXL_INDEX, #endif + FONTS_COUNT +}; + +#define FONT(xx) (FONT_ ## xx ## _INDEX << 8) constexpr uint32_t INPUT_EDIT_LABELS_WIDTH = 120; constexpr coord_t INPUT_EDIT_CURVE_WIDTH = 158; diff --git a/radio/src/targets/nv14/libopenui_config.h b/radio/src/targets/nv14/libopenui_config.h index 37ea83eef..026722503 100644 --- a/radio/src/targets/nv14/libopenui_config.h +++ b/radio/src/targets/nv14/libopenui_config.h @@ -127,11 +127,21 @@ enum LcdColorIndex LCD_COLOR_COUNT }; -#if !defined(BOOT) -#define FONT_TABLE_SIZE 16 -#else -#define FONT_TABLE_SIZE 1 +enum FontIndex +{ + FONT_STD_INDEX, +#if !defined(BOLD) + FONT_BOLD_INDEX, + FONT_XXS_INDEX, + FONT_XS_INDEX, + FONT_L_INDEX, + FONT_XL_INDEX, + FONT_XXL_INDEX, #endif + FONTS_COUNT +}; + +#define FONT(xx) (FONT_ ## xx ## _INDEX << 8) constexpr uint32_t INPUT_EDIT_LABELS_WIDTH = 80; constexpr coord_t INPUT_EDIT_CURVE_WIDTH = LCD_W; diff --git a/radio/src/thirdparty/libopenui b/radio/src/thirdparty/libopenui index bb1ecbfae..db4d1fa38 160000 --- a/radio/src/thirdparty/libopenui +++ b/radio/src/thirdparty/libopenui @@ -1 +1 @@ -Subproject commit bb1ecbfae4da55a335aaacde312dbffa5d04f5fc +Subproject commit db4d1fa38fbaa37cd28d625d560229365036d710