SG 1 год назад
Родитель
Сommit
f58c751dc1
2 измененных файлов с 34 добавлено и 0 удалено
  1. 16 0
      canvas.c
  2. 18 0
      canvas.h

+ 16 - 0
canvas.c

@@ -25,4 +25,20 @@ size_t canvas_printf_width(Canvas* canvas, const char* format, ...) {
     furi_string_free(string);
 
     return size;
+}
+
+void canvas_draw_str_aligned_outline(
+    Canvas* canvas,
+    uint8_t x,
+    uint8_t y,
+    Align h,
+    Align v,
+    const char* cstr) {
+    canvas_invert_color(canvas);
+    canvas_draw_str_aligned(canvas, x + 1, y + 0, h, v, cstr);
+    canvas_draw_str_aligned(canvas, x - 1, y - 0, h, v, cstr);
+    canvas_draw_str_aligned(canvas, x + 0, y + 1, h, v, cstr);
+    canvas_draw_str_aligned(canvas, x - 0, y - 1, h, v, cstr);
+    canvas_invert_color(canvas);
+    canvas_draw_str_aligned(canvas, x, y, h, v, cstr);
 }

+ 18 - 0
canvas.h

@@ -27,6 +27,24 @@ void canvas_printf(Canvas* canvas, uint8_t x, uint8_t y, const char* format, ...
  */
 size_t canvas_printf_width(Canvas* canvas, const char* format, ...);
 
+/**
+ * @brief Draw aligned string with outline
+ * 
+ * @param canvas 
+ * @param x 
+ * @param y 
+ * @param h 
+ * @param v 
+ * @param cstr 
+ */
+void canvas_draw_str_aligned_outline(
+    Canvas* canvas,
+    uint8_t x,
+    uint8_t y,
+    Align h,
+    Align v,
+    const char* cstr);
+
 #ifdef __cplusplus
 }
 #endif