feat(nice_view): Add option to show battery percentage on vertical view

This commit is contained in:
Pawel Bogut 2023-11-11 21:30:55 +01:00
parent b80c0be0ce
commit 300e1d2630
2 changed files with 16 additions and 0 deletions

View file

@ -33,6 +33,9 @@ config NICE_VIEW_WIDGET_STATUS
select LV_USE_IMG
select LV_USE_CANVAS
config NICE_VIEW_BATTERY_SHOW_PERCENTAGE
bool "Show battery percentage instead of icon"
config NICE_VIEW_WIDGET_INVERTED
bool "Invert custom status widget colors"

View file

@ -30,6 +30,18 @@ void draw_battery(lv_obj_t *canvas, const struct status_state *state) {
lv_draw_rect_dsc_t rect_white_dsc;
init_rect_dsc(&rect_white_dsc, LVGL_FOREGROUND);
#if IS_ENABLED(CONFIG_NICE_VIEW_BATTERY_SHOW_PERCENTAGE)
char text[4] = {};
sprintf(text, "%i%%", state->battery);
lv_draw_label_dsc_t label_dsc;
init_label_dsc(&label_dsc, LVGL_FOREGROUND, &lv_font_montserrat_16, LV_TEXT_ALIGN_CENTER);
lv_canvas_draw_text(canvas, 0, 5, 68, &label_dsc, text);
if (state->charging) {
lv_draw_img_dsc_t img_dsc;
lv_draw_img_dsc_init(&img_dsc);
lv_canvas_draw_img(canvas, 1, -1, &bolt, &img_dsc);
}
#else
lv_canvas_draw_rect(canvas, 0, 2, 29, 12, &rect_white_dsc);
lv_canvas_draw_rect(canvas, 1, 3, 27, 10, &rect_black_dsc);
lv_canvas_draw_rect(canvas, 2, 4, (state->battery + 2) / 4, 8, &rect_white_dsc);
@ -41,6 +53,7 @@ void draw_battery(lv_obj_t *canvas, const struct status_state *state) {
lv_draw_img_dsc_init(&img_dsc);
lv_canvas_draw_img(canvas, 9, -1, &bolt, &img_dsc);
}
#endif
}
void init_label_dsc(lv_draw_label_dsc_t *label_dsc, lv_color_t color, const lv_font_t *font,