This commit is contained in:
Paweł Bogut 2024-09-02 20:13:38 -07:00 committed by GitHub
commit 253c0a84a8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 34 additions and 0 deletions

View file

@ -36,6 +36,13 @@ config NICE_VIEW_WIDGET_STATUS
select LV_USE_IMG select LV_USE_IMG
select LV_USE_CANVAS select LV_USE_CANVAS
config NICE_VIEW_BATTERY_SHOW_PERCENTAGE
bool "Show battery percentage instead of icon"
config NICE_VIEW_BATTERY_SHOW_BIG_PERCENTAGE
bool "Show battery percentage instead of WPM widget"
select LV_FONT_MONTSERRAT_26
config NICE_VIEW_WIDGET_INVERTED config NICE_VIEW_WIDGET_INVERTED
bool "Invert custom status widget colors" bool "Invert custom status widget colors"

View file

@ -117,7 +117,11 @@ int zmk_widget_status_init(struct zmk_widget_status *widget, lv_obj_t *parent) {
lv_obj_t *art = lv_img_create(widget->obj); lv_obj_t *art = lv_img_create(widget->obj);
bool random = sys_rand32_get() & 1; bool random = sys_rand32_get() & 1;
lv_img_set_src(art, random ? &balloon : &mountain); lv_img_set_src(art, random ? &balloon : &mountain);
#if IS_ENABLED(CONFIG_NICE_VIEW_BATTERY_SHOW_BIG_PERCENTAGE)
lv_obj_align(art, LV_ALIGN_TOP_LEFT, -48, 0);
#else
lv_obj_align(art, LV_ALIGN_TOP_LEFT, 0, 0); lv_obj_align(art, LV_ALIGN_TOP_LEFT, 0, 0);
#endif
sys_slist_append(&widgets, &widget->node); sys_slist_append(&widgets, &widget->node);
widget_battery_status_init(); widget_battery_status_init();

View file

@ -86,6 +86,7 @@ static void draw_top(lv_obj_t *widget, lv_color_t cbuf[], const struct status_st
lv_canvas_draw_text(canvas, 0, 0, CANVAS_SIZE, &label_dsc, output_text); lv_canvas_draw_text(canvas, 0, 0, CANVAS_SIZE, &label_dsc, output_text);
#if !IS_ENABLED(CONFIG_NICE_VIEW_BATTERY_SHOW_BIG_PERCENTAGE)
// Draw WPM // Draw WPM
lv_canvas_draw_rect(canvas, 0, 21, 68, 42, &rect_white_dsc); lv_canvas_draw_rect(canvas, 0, 21, 68, 42, &rect_white_dsc);
lv_canvas_draw_rect(canvas, 1, 22, 66, 40, &rect_black_dsc); lv_canvas_draw_rect(canvas, 1, 22, 66, 40, &rect_black_dsc);
@ -117,6 +118,7 @@ static void draw_top(lv_obj_t *widget, lv_color_t cbuf[], const struct status_st
points[i].y = 60 - (state->wpm[i] - min) * 36 / range; points[i].y = 60 - (state->wpm[i] - min) * 36 / range;
} }
lv_canvas_draw_line(canvas, points, 10, &line_dsc); lv_canvas_draw_line(canvas, points, 10, &line_dsc);
#endif
// Rotate canvas // Rotate canvas
rotate_canvas(canvas, cbuf); rotate_canvas(canvas, cbuf);

View file

@ -30,6 +30,26 @@ void draw_battery(lv_obj_t *canvas, const struct status_state *state) {
lv_draw_rect_dsc_t rect_white_dsc; lv_draw_rect_dsc_t rect_white_dsc;
init_rect_dsc(&rect_white_dsc, LVGL_FOREGROUND); init_rect_dsc(&rect_white_dsc, LVGL_FOREGROUND);
#if IS_ENABLED(CONFIG_NICE_VIEW_BATTERY_SHOW_BIG_PERCENTAGE)
char big_text[4] = {};
sprintf(big_text, "%i%%", state->battery);
lv_draw_label_dsc_t big_label_dsc;
init_label_dsc(&big_label_dsc, LVGL_FOREGROUND, &lv_font_montserrat_26, LV_TEXT_ALIGN_CENTER);
lv_canvas_draw_text(canvas, 0, 25, 68, &big_label_dsc, big_text);
#endif
#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, 0, 2, 29, 12, &rect_white_dsc);
lv_canvas_draw_rect(canvas, 1, 3, 27, 10, &rect_black_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); lv_canvas_draw_rect(canvas, 2, 4, (state->battery + 2) / 4, 8, &rect_white_dsc);
@ -41,6 +61,7 @@ void draw_battery(lv_obj_t *canvas, const struct status_state *state) {
lv_draw_img_dsc_init(&img_dsc); lv_draw_img_dsc_init(&img_dsc);
lv_canvas_draw_img(canvas, 9, -1, &bolt, &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, void init_label_dsc(lv_draw_label_dsc_t *label_dsc, lv_color_t color, const lv_font_t *font,