refactor(display): Update to new LVGL v7.x API.

PR: #467
This commit is contained in:
Pete Johanson 2020-12-10 17:59:51 -05:00
parent 0d4476d148
commit 5ec1eefb2c
3 changed files with 25 additions and 19 deletions

View file

@ -5,14 +5,14 @@ config ZMK_WIDGET_BATTERY_STATUS
bool "Widget for battery charge information, using small icons" bool "Widget for battery charge information, using small icons"
depends on BT depends on BT
default y if BT default y if BT
select LVGL_OBJ_LABEL select LVGL_USE_LABEL
select LVGL_BUILD_IN_FONT_ROBOTO_16 select LVGL_FONT_MONTSERRAT_16
config ZMK_WIDGET_OUTPUT_STATUS config ZMK_WIDGET_OUTPUT_STATUS
bool "Widget for keyboard output status icons" bool "Widget for keyboard output status icons"
depends on BT depends on BT
default y if BT default y if BT
select LVGL_OBJ_LABEL select LVGL_USE_LABEL
select LVGL_BUILD_IN_FONT_ROBOTO_16 select LVGL_FONT_MONTSERRAT_16
endmenu endmenu

View file

@ -18,16 +18,19 @@ LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL);
static sys_slist_t widgets = SYS_SLIST_STATIC_INIT(&widgets); static sys_slist_t widgets = SYS_SLIST_STATIC_INIT(&widgets);
static lv_style_t label_style; static lv_style_t label_style;
static bool style_initialized = false;
void battery_status_init() { void battery_status_init() {
if (label_style.text.font != NULL) { if (style_initialized) {
return; return;
} }
lv_style_copy(&label_style, &lv_style_plain); style_initialized = true;
label_style.text.color = LV_COLOR_BLACK; lv_style_init(&label_style);
label_style.text.font = &lv_font_roboto_16; lv_style_set_text_color(&label_style, LV_STATE_DEFAULT, LV_COLOR_BLACK);
label_style.text.letter_space = 1; lv_style_set_text_font(&label_style, LV_STATE_DEFAULT, &lv_font_montserrat_16);
label_style.text.line_space = 1; lv_style_set_text_letter_space(&label_style, LV_STATE_DEFAULT, 1);
lv_style_set_text_line_space(&label_style, LV_STATE_DEFAULT, 1);
} }
void set_battery_symbol(lv_obj_t *label) { void set_battery_symbol(lv_obj_t *label) {
@ -57,7 +60,7 @@ void set_battery_symbol(lv_obj_t *label) {
int zmk_widget_battery_status_init(struct zmk_widget_battery_status *widget, lv_obj_t *parent) { int zmk_widget_battery_status_init(struct zmk_widget_battery_status *widget, lv_obj_t *parent) {
battery_status_init(); battery_status_init();
widget->obj = lv_label_create(parent, NULL); widget->obj = lv_label_create(parent, NULL);
lv_label_set_style(widget->obj, LV_LABEL_STYLE_MAIN, &label_style); lv_obj_add_style(widget->obj, LV_LABEL_PART_MAIN, &label_style);
lv_obj_set_size(widget->obj, 40, 15); lv_obj_set_size(widget->obj, 40, 15);
set_battery_symbol(widget->obj); set_battery_symbol(widget->obj);

View file

@ -20,16 +20,19 @@ LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL);
static sys_slist_t widgets = SYS_SLIST_STATIC_INIT(&widgets); static sys_slist_t widgets = SYS_SLIST_STATIC_INIT(&widgets);
static lv_style_t label_style; static lv_style_t label_style;
static bool style_initialized = false;
void output_status_init() { void output_status_init() {
if (label_style.text.font != NULL) { if (style_initialized) {
return; return;
} }
lv_style_copy(&label_style, &lv_style_plain); style_initialized = true;
label_style.text.color = LV_COLOR_BLACK; lv_style_init(&label_style);
label_style.text.font = &lv_font_roboto_16; lv_style_set_text_color(&label_style, LV_STATE_DEFAULT, LV_COLOR_BLACK);
label_style.text.letter_space = 1; lv_style_set_text_font(&label_style, LV_STATE_DEFAULT, &lv_font_montserrat_16);
label_style.text.line_space = 1; lv_style_set_text_letter_space(&label_style, LV_STATE_DEFAULT, 1);
lv_style_set_text_line_space(&label_style, LV_STATE_DEFAULT, 1);
} }
void set_status_symbol(lv_obj_t *label) { void set_status_symbol(lv_obj_t *label) {
@ -62,7 +65,7 @@ void set_status_symbol(lv_obj_t *label) {
int zmk_widget_output_status_init(struct zmk_widget_output_status *widget, lv_obj_t *parent) { int zmk_widget_output_status_init(struct zmk_widget_output_status *widget, lv_obj_t *parent) {
output_status_init(); output_status_init();
widget->obj = lv_label_create(parent, NULL); widget->obj = lv_label_create(parent, NULL);
lv_label_set_style(widget->obj, LV_LABEL_STYLE_MAIN, &label_style); lv_obj_add_style(widget->obj, LV_LABEL_PART_MAIN, &label_style);
lv_obj_set_size(widget->obj, 40, 15); lv_obj_set_size(widget->obj, 40, 15);
set_status_symbol(widget->obj); set_status_symbol(widget->obj);