Added UTF-8 support to Flipper Zero canvas API (#3297)

* Added UTF-8 support to Flipper Zero canvas API
* Add unicode example

Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
Evgeny Stepanischev
2023-12-18 18:36:50 +00:00
committed by GitHub
co-authored by あく
parent 7642d67cae
commit 25d24f1e4c
2 changed files with 62 additions and 34 deletions
+5 -5
View File
@@ -150,7 +150,7 @@ void canvas_draw_str(Canvas* canvas, uint8_t x, uint8_t y, const char* str) {
if(!str) return;
x += canvas->offset_x;
y += canvas->offset_y;
u8g2_DrawStr(&canvas->fb, x, y, str);
u8g2_DrawUTF8(&canvas->fb, x, y, str);
}
void canvas_draw_str_aligned(
@@ -169,10 +169,10 @@ void canvas_draw_str_aligned(
case AlignLeft:
break;
case AlignRight:
x -= u8g2_GetStrWidth(&canvas->fb, str);
x -= u8g2_GetUTF8Width(&canvas->fb, str);
break;
case AlignCenter:
x -= (u8g2_GetStrWidth(&canvas->fb, str) / 2);
x -= (u8g2_GetUTF8Width(&canvas->fb, str) / 2);
break;
default:
furi_crash();
@@ -193,13 +193,13 @@ void canvas_draw_str_aligned(
break;
}
u8g2_DrawStr(&canvas->fb, x, y, str);
u8g2_DrawUTF8(&canvas->fb, x, y, str);
}
uint16_t canvas_string_width(Canvas* canvas, const char* str) {
furi_assert(canvas);
if(!str) return 0;
return u8g2_GetStrWidth(&canvas->fb, str);
return u8g2_GetUTF8Width(&canvas->fb, str);
}
uint8_t canvas_glyph_width(Canvas* canvas, uint16_t symbol) {