diff options
Diffstat (limited to 'src/displayapp/InfiniTimeTheme.cpp')
-rw-r--r-- | src/displayapp/InfiniTimeTheme.cpp | 446 |
1 files changed, 446 insertions, 0 deletions
diff --git a/src/displayapp/InfiniTimeTheme.cpp b/src/displayapp/InfiniTimeTheme.cpp new file mode 100644 index 00000000..4290d87f --- /dev/null +++ b/src/displayapp/InfiniTimeTheme.cpp @@ -0,0 +1,446 @@ +#include "displayapp/InfiniTimeTheme.h" + +static void theme_apply(lv_obj_t* obj, lv_theme_style_t name); + +static lv_theme_t theme; + +static lv_style_t style_bg; +static lv_style_t style_box; +static lv_style_t style_btn; +static lv_style_t style_label_white; +static lv_style_t style_icon; +static lv_style_t style_bar_indic; +static lv_style_t style_slider_knob; +static lv_style_t style_scrollbar; +static lv_style_t style_list_btn; +static lv_style_t style_ddlist_list; +static lv_style_t style_ddlist_selected; +static lv_style_t style_sw_bg; +static lv_style_t style_sw_indic; +static lv_style_t style_sw_knob; +static lv_style_t style_arc_bg; +static lv_style_t style_arc_knob; +static lv_style_t style_arc_indic; +static lv_style_t style_table_cell; +static lv_style_t style_pad_small; +static lv_style_t style_lmeter; +static lv_style_t style_chart_serie; +static lv_style_t style_cb_bg; +static lv_style_t style_cb_bullet; + +static bool inited; + +static void style_init_reset(lv_style_t* style) { + if (inited) { + lv_style_reset(style); + } else { + lv_style_init(style); + } +} + +static void basic_init() { + style_init_reset(&style_bg); + lv_style_set_bg_opa(&style_bg, LV_STATE_DEFAULT, LV_OPA_COVER); + lv_style_set_bg_color(&style_bg, LV_STATE_DEFAULT, LV_COLOR_BLACK); + lv_style_set_text_font(&style_bg, LV_STATE_DEFAULT, theme.font_normal); + + style_init_reset(&style_box); + lv_style_set_bg_opa(&style_box, LV_STATE_DEFAULT, LV_OPA_COVER); + lv_style_set_radius(&style_box, LV_STATE_DEFAULT, 10); + lv_style_set_value_color(&style_box, LV_STATE_DEFAULT, Colors::bg); + lv_style_set_value_font(&style_box, LV_STATE_DEFAULT, theme.font_normal); + + style_init_reset(&style_label_white); + lv_style_set_text_color(&style_label_white, LV_STATE_DEFAULT, LV_COLOR_WHITE); + lv_style_set_text_color(&style_label_white, LV_STATE_DISABLED, LV_COLOR_GRAY); + + style_init_reset(&style_btn); + lv_style_set_radius(&style_btn, LV_STATE_DEFAULT, 10); + lv_style_set_bg_opa(&style_btn, LV_STATE_DEFAULT, LV_OPA_COVER); + lv_style_set_bg_color(&style_btn, LV_STATE_DEFAULT, Colors::bg); + lv_style_set_bg_color(&style_btn, LV_STATE_CHECKED, Colors::highlight); + lv_style_set_bg_color(&style_btn, LV_STATE_DISABLED, Colors::bgDark); + lv_style_set_border_color(&style_btn, LV_STATE_DEFAULT, LV_COLOR_WHITE); + lv_style_set_border_width(&style_btn, LV_STATE_DEFAULT, 0); + + lv_style_set_text_color(&style_btn, LV_STATE_DEFAULT, LV_COLOR_WHITE); + lv_style_set_text_color(&style_btn, LV_STATE_DISABLED, LV_COLOR_GRAY); + + lv_style_set_value_color(&style_btn, LV_STATE_DEFAULT, LV_COLOR_WHITE); + lv_style_set_value_color(&style_btn, LV_STATE_DISABLED, LV_COLOR_GRAY); + + lv_style_set_pad_left(&style_btn, LV_STATE_DEFAULT, LV_DPX(20)); + lv_style_set_pad_right(&style_btn, LV_STATE_DEFAULT, LV_DPX(20)); + lv_style_set_pad_top(&style_btn, LV_STATE_DEFAULT, LV_DPX(20)); + lv_style_set_pad_bottom(&style_btn, LV_STATE_DEFAULT, LV_DPX(20)); + lv_style_set_pad_inner(&style_btn, LV_STATE_DEFAULT, LV_DPX(15)); + lv_style_set_outline_width(&style_btn, LV_STATE_DEFAULT, LV_DPX(2)); + lv_style_set_outline_opa(&style_btn, LV_STATE_DEFAULT, LV_OPA_0); + lv_style_set_outline_color(&style_btn, LV_STATE_DEFAULT, LV_COLOR_WHITE); + lv_style_set_transition_time(&style_btn, LV_STATE_DEFAULT, 0); + lv_style_set_transition_delay(&style_btn, LV_STATE_DEFAULT, 0); + + style_init_reset(&style_icon); + lv_style_set_text_color(&style_icon, LV_STATE_DEFAULT, LV_COLOR_WHITE); + + style_init_reset(&style_bar_indic); + lv_style_set_bg_opa(&style_bar_indic, LV_STATE_DEFAULT, LV_OPA_COVER); + lv_style_set_radius(&style_bar_indic, LV_STATE_DEFAULT, 10); + + style_init_reset(&style_scrollbar); + lv_style_set_bg_opa(&style_scrollbar, LV_STATE_DEFAULT, LV_OPA_COVER); + lv_style_set_radius(&style_scrollbar, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); + lv_style_set_bg_color(&style_scrollbar, LV_STATE_DEFAULT, LV_COLOR_WHITE); + lv_style_set_size(&style_scrollbar, LV_STATE_DEFAULT, LV_HOR_RES / 80); + lv_style_set_pad_right(&style_scrollbar, LV_STATE_DEFAULT, LV_HOR_RES / 60); + + style_init_reset(&style_list_btn); + lv_style_set_bg_opa(&style_list_btn, LV_STATE_DEFAULT, LV_OPA_COVER); + lv_style_set_bg_color(&style_list_btn, LV_STATE_DEFAULT, LV_COLOR_WHITE); + lv_style_set_text_color(&style_list_btn, LV_STATE_DEFAULT, Colors::bg); + lv_style_set_text_color(&style_list_btn, LV_STATE_CHECKED, LV_COLOR_WHITE); + lv_style_set_image_recolor(&style_list_btn, LV_STATE_DEFAULT, Colors::bg); + lv_style_set_image_recolor(&style_list_btn, LV_STATE_CHECKED, LV_COLOR_WHITE); + lv_style_set_pad_left(&style_list_btn, LV_STATE_DEFAULT, LV_HOR_RES / 25); + lv_style_set_pad_right(&style_list_btn, LV_STATE_DEFAULT, LV_HOR_RES / 25); + lv_style_set_pad_top(&style_list_btn, LV_STATE_DEFAULT, LV_HOR_RES / 100); + lv_style_set_pad_bottom(&style_list_btn, LV_STATE_DEFAULT, LV_HOR_RES / 100); + lv_style_set_pad_inner(&style_list_btn, LV_STATE_DEFAULT, LV_HOR_RES / 50); + + style_init_reset(&style_ddlist_list); + // Causes lag unfortunately, so we'll have to live with the selected item overflowing the corner + // lv_style_set_clip_corner(&style_ddlist_list, LV_STATE_DEFAULT, true); + lv_style_set_text_line_space(&style_ddlist_list, LV_STATE_DEFAULT, LV_VER_RES / 25); + lv_style_set_bg_color(&style_ddlist_list, LV_STATE_DEFAULT, Colors::lightGray); + lv_style_set_pad_all(&style_ddlist_list, LV_STATE_DEFAULT, 20); + + style_init_reset(&style_ddlist_selected); + lv_style_set_bg_opa(&style_ddlist_selected, LV_STATE_DEFAULT, LV_OPA_COVER); + lv_style_set_bg_color(&style_ddlist_selected, LV_STATE_DEFAULT, Colors::bg); + + style_init_reset(&style_sw_bg); + lv_style_set_bg_opa(&style_sw_bg, LV_STATE_DEFAULT, LV_OPA_COVER); + lv_style_set_bg_color(&style_sw_bg, LV_STATE_DEFAULT, Colors::bg); + lv_style_set_radius(&style_sw_bg, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); + + style_init_reset(&style_sw_indic); + lv_style_set_bg_opa(&style_sw_indic, LV_STATE_DEFAULT, LV_OPA_COVER); + lv_style_set_bg_color(&style_sw_indic, LV_STATE_DEFAULT, Colors::highlight); + + style_init_reset(&style_sw_knob); + lv_style_set_bg_opa(&style_sw_knob, LV_STATE_DEFAULT, LV_OPA_COVER); + lv_style_set_bg_color(&style_sw_knob, LV_STATE_DEFAULT, LV_COLOR_SILVER); + lv_style_set_bg_color(&style_sw_knob, LV_STATE_CHECKED, LV_COLOR_WHITE); + lv_style_set_radius(&style_sw_knob, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); + lv_style_set_pad_top(&style_sw_knob, LV_STATE_DEFAULT, -4); + lv_style_set_pad_bottom(&style_sw_knob, LV_STATE_DEFAULT, -4); + lv_style_set_pad_left(&style_sw_knob, LV_STATE_DEFAULT, -4); + lv_style_set_pad_right(&style_sw_knob, LV_STATE_DEFAULT, -4); + + style_init_reset(&style_slider_knob); + lv_style_set_bg_opa(&style_slider_knob, LV_STATE_DEFAULT, LV_OPA_COVER); + lv_style_set_bg_color(&style_slider_knob, LV_STATE_DEFAULT, LV_COLOR_RED); + lv_style_set_border_color(&style_slider_knob, LV_STATE_DEFAULT, LV_COLOR_WHITE); + lv_style_set_border_width(&style_slider_knob, LV_STATE_DEFAULT, 6); + lv_style_set_radius(&style_slider_knob, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); + lv_style_set_pad_top(&style_slider_knob, LV_STATE_DEFAULT, 10); + lv_style_set_pad_bottom(&style_slider_knob, LV_STATE_DEFAULT, 10); + lv_style_set_pad_left(&style_slider_knob, LV_STATE_DEFAULT, 10); + lv_style_set_pad_right(&style_slider_knob, LV_STATE_DEFAULT, 10); + lv_style_set_pad_top(&style_slider_knob, LV_STATE_PRESSED, 14); + lv_style_set_pad_bottom(&style_slider_knob, LV_STATE_PRESSED, 14); + lv_style_set_pad_left(&style_slider_knob, LV_STATE_PRESSED, 14); + lv_style_set_pad_right(&style_slider_knob, LV_STATE_PRESSED, 14); + + style_init_reset(&style_arc_indic); + lv_style_set_line_color(&style_arc_indic, LV_STATE_DEFAULT, Colors::lightGray); + lv_style_set_line_width(&style_arc_indic, LV_STATE_DEFAULT, LV_DPX(25)); + lv_style_set_line_rounded(&style_arc_indic, LV_STATE_DEFAULT, true); + + style_init_reset(&style_arc_bg); + lv_style_set_line_color(&style_arc_bg, LV_STATE_DEFAULT, Colors::bg); + lv_style_set_line_width(&style_arc_bg, LV_STATE_DEFAULT, LV_DPX(25)); + lv_style_set_line_rounded(&style_arc_bg, LV_STATE_DEFAULT, true); + lv_style_set_pad_all(&style_arc_bg, LV_STATE_DEFAULT, LV_DPX(5)); + + lv_style_reset(&style_arc_knob); + lv_style_set_radius(&style_arc_knob, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); + lv_style_set_bg_opa(&style_arc_knob, LV_STATE_DEFAULT, LV_OPA_COVER); + lv_style_set_bg_color(&style_arc_knob, LV_STATE_DEFAULT, LV_COLOR_WHITE); + lv_style_set_pad_all(&style_arc_knob, LV_STATE_DEFAULT, LV_DPX(5)); + + style_init_reset(&style_table_cell); + lv_style_set_border_color(&style_table_cell, LV_STATE_DEFAULT, LV_COLOR_GRAY); + lv_style_set_border_width(&style_table_cell, LV_STATE_DEFAULT, 1); + lv_style_set_border_side(&style_table_cell, LV_STATE_DEFAULT, LV_BORDER_SIDE_FULL); + lv_style_set_pad_left(&style_table_cell, LV_STATE_DEFAULT, 5); + lv_style_set_pad_right(&style_table_cell, LV_STATE_DEFAULT, 5); + lv_style_set_pad_top(&style_table_cell, LV_STATE_DEFAULT, 2); + lv_style_set_pad_bottom(&style_table_cell, LV_STATE_DEFAULT, 2); + + style_init_reset(&style_pad_small); + lv_style_int_t pad_small_value = 10; + lv_style_set_pad_left(&style_pad_small, LV_STATE_DEFAULT, pad_small_value); + lv_style_set_pad_right(&style_pad_small, LV_STATE_DEFAULT, pad_small_value); + lv_style_set_pad_top(&style_pad_small, LV_STATE_DEFAULT, pad_small_value); + lv_style_set_pad_bottom(&style_pad_small, LV_STATE_DEFAULT, pad_small_value); + lv_style_set_pad_inner(&style_pad_small, LV_STATE_DEFAULT, pad_small_value); + + style_init_reset(&style_lmeter); + lv_style_set_radius(&style_lmeter, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); + lv_style_set_pad_left(&style_lmeter, LV_STATE_DEFAULT, LV_DPX(20)); + lv_style_set_pad_right(&style_lmeter, LV_STATE_DEFAULT, LV_DPX(20)); + lv_style_set_pad_top(&style_lmeter, LV_STATE_DEFAULT, LV_DPX(20)); + lv_style_set_pad_inner(&style_lmeter, LV_STATE_DEFAULT, LV_DPX(30)); + lv_style_set_scale_width(&style_lmeter, LV_STATE_DEFAULT, LV_DPX(25)); + + lv_style_set_line_color(&style_lmeter, LV_STATE_DEFAULT, LV_COLOR_WHITE); + lv_style_set_scale_grad_color(&style_lmeter, LV_STATE_DEFAULT, LV_COLOR_WHITE); + lv_style_set_scale_end_color(&style_lmeter, LV_STATE_DEFAULT, LV_COLOR_GRAY); + lv_style_set_line_width(&style_lmeter, LV_STATE_DEFAULT, LV_DPX(10)); + lv_style_set_scale_end_line_width(&style_lmeter, LV_STATE_DEFAULT, LV_DPX(7)); + + style_init_reset(&style_chart_serie); + lv_style_set_line_color(&style_chart_serie, LV_STATE_DEFAULT, LV_COLOR_WHITE); + lv_style_set_line_width(&style_chart_serie, LV_STATE_DEFAULT, 4); + lv_style_set_size(&style_chart_serie, LV_STATE_DEFAULT, 4); + lv_style_set_bg_opa(&style_chart_serie, LV_STATE_DEFAULT, 0); + + lv_style_reset(&style_cb_bg); + lv_style_set_radius(&style_cb_bg, LV_STATE_DEFAULT, LV_DPX(4)); + lv_style_set_pad_inner(&style_cb_bg, LV_STATE_DEFAULT, 18); + lv_style_set_outline_color(&style_cb_bg, LV_STATE_DEFAULT, LV_COLOR_WHITE); + lv_style_set_outline_width(&style_cb_bg, LV_STATE_DEFAULT, LV_DPX(2)); + lv_style_set_outline_pad(&style_cb_bg, LV_STATE_DEFAULT, LV_DPX(20)); + lv_style_set_transition_time(&style_cb_bg, LV_STATE_DEFAULT, 0); + lv_style_set_transition_prop_6(&style_cb_bg, LV_STATE_DEFAULT, LV_STYLE_OUTLINE_OPA); + + lv_style_reset(&style_cb_bullet); + lv_style_set_radius(&style_cb_bullet, LV_STATE_DEFAULT, LV_DPX(4)); + lv_style_set_pattern_image(&style_cb_bullet, LV_STATE_CHECKED, LV_SYMBOL_OK); + lv_style_set_pattern_recolor(&style_cb_bullet, LV_STATE_CHECKED, LV_COLOR_WHITE); + lv_style_set_pad_left(&style_cb_bullet, LV_STATE_DEFAULT, LV_DPX(8)); + lv_style_set_pad_right(&style_cb_bullet, LV_STATE_DEFAULT, LV_DPX(8)); + lv_style_set_pad_top(&style_cb_bullet, LV_STATE_DEFAULT, LV_DPX(8)); + lv_style_set_pad_bottom(&style_cb_bullet, LV_STATE_DEFAULT, LV_DPX(8)); +} + +/** + * Initialize the default + * @param color_primary the primary color of the theme + * @param color_secondary the secondary color for the theme + * @param flags ORed flags starting with `LV_THEME_DEF_FLAG_...` + * @param font_small pointer to a small font + * @param font_normal pointer to a normal font + * @param font_subtitle pointer to a large font + * @param font_title pointer to a extra large font + * @return a pointer to reference this theme later + */ +lv_theme_t* lv_pinetime_theme_init(lv_color_t color_primary, + lv_color_t color_secondary, + uint32_t flags, + const lv_font_t* font_small, + const lv_font_t* font_normal, + const lv_font_t* font_subtitle, + const lv_font_t* font_title) { + theme.color_primary = color_primary; + theme.color_secondary = color_secondary; + theme.font_small = font_small; + theme.font_normal = font_normal; + theme.font_subtitle = font_subtitle; + theme.font_title = font_title; + theme.flags = flags; + + basic_init(); + + theme.apply_xcb = theme_apply; + + inited = true; + + return &theme; +} + +static void theme_apply(lv_obj_t* obj, lv_theme_style_t name) { + lv_style_list_t* list; + + switch (name) { + case LV_THEME_NONE: + break; + + case LV_THEME_SCR: + lv_obj_clean_style_list(obj, LV_OBJ_PART_MAIN); + list = lv_obj_get_style_list(obj, LV_OBJ_PART_MAIN); + _lv_style_list_add_style(list, &style_bg); + _lv_style_list_add_style(list, &style_label_white); + break; + + case LV_THEME_OBJ: + lv_obj_clean_style_list(obj, LV_OBJ_PART_MAIN); + list = lv_obj_get_style_list(obj, LV_OBJ_PART_MAIN); + _lv_style_list_add_style(list, &style_box); + break; + + case LV_THEME_CONT: + lv_obj_clean_style_list(obj, LV_OBJ_PART_MAIN); + list = lv_obj_get_style_list(obj, LV_CONT_PART_MAIN); + _lv_style_list_add_style(list, &style_box); + break; + + case LV_THEME_BTN: + lv_obj_clean_style_list(obj, LV_BTN_PART_MAIN); + list = lv_obj_get_style_list(obj, LV_BTN_PART_MAIN); + _lv_style_list_add_style(list, &style_btn); + break; + + case LV_THEME_BTNMATRIX: + list = lv_obj_get_style_list(obj, LV_BTNMATRIX_PART_BG); + _lv_style_list_add_style(list, &style_bg); + _lv_style_list_add_style(list, &style_pad_small); + + list = lv_obj_get_style_list(obj, LV_BTNMATRIX_PART_BTN); + _lv_style_list_add_style(list, &style_btn); + break; + + case LV_THEME_BAR: + lv_obj_clean_style_list(obj, LV_BAR_PART_BG); + list = lv_obj_get_style_list(obj, LV_BAR_PART_BG); + + lv_obj_clean_style_list(obj, LV_BAR_PART_INDIC); + list = lv_obj_get_style_list(obj, LV_BAR_PART_INDIC); + _lv_style_list_add_style(list, &style_bar_indic); + break; + + case LV_THEME_IMAGE: + lv_obj_clean_style_list(obj, LV_IMG_PART_MAIN); + list = lv_obj_get_style_list(obj, LV_IMG_PART_MAIN); + _lv_style_list_add_style(list, &style_icon); + break; + + case LV_THEME_LABEL: + lv_obj_clean_style_list(obj, LV_LABEL_PART_MAIN); + list = lv_obj_get_style_list(obj, LV_LABEL_PART_MAIN); + _lv_style_list_add_style(list, &style_label_white); + break; + + case LV_THEME_SLIDER: + lv_obj_clean_style_list(obj, LV_SLIDER_PART_BG); + list = lv_obj_get_style_list(obj, LV_SLIDER_PART_BG); + _lv_style_list_add_style(list, &style_sw_bg); + + lv_obj_clean_style_list(obj, LV_SLIDER_PART_INDIC); + list = lv_obj_get_style_list(obj, LV_SLIDER_PART_INDIC); + + lv_obj_clean_style_list(obj, LV_SLIDER_PART_KNOB); + list = lv_obj_get_style_list(obj, LV_SLIDER_PART_KNOB); + _lv_style_list_add_style(list, &style_slider_knob); + break; + + case LV_THEME_LIST: + lv_obj_clean_style_list(obj, LV_LIST_PART_BG); + list = lv_obj_get_style_list(obj, LV_LIST_PART_BG); + _lv_style_list_add_style(list, &style_box); + + lv_obj_clean_style_list(obj, LV_LIST_PART_SCROLLABLE); + list = lv_obj_get_style_list(obj, LV_LIST_PART_SCROLLABLE); + + lv_obj_clean_style_list(obj, LV_LIST_PART_SCROLLBAR); + list = lv_obj_get_style_list(obj, LV_LIST_PART_SCROLLBAR); + _lv_style_list_add_style(list, &style_scrollbar); + break; + + case LV_THEME_LIST_BTN: + lv_obj_clean_style_list(obj, LV_BTN_PART_MAIN); + list = lv_obj_get_style_list(obj, LV_BTN_PART_MAIN); + _lv_style_list_add_style(list, &style_list_btn); + break; + + case LV_THEME_ARC: + lv_obj_clean_style_list(obj, LV_ARC_PART_BG); + list = lv_obj_get_style_list(obj, LV_ARC_PART_BG); + _lv_style_list_add_style(list, &style_arc_bg); + + lv_obj_clean_style_list(obj, LV_ARC_PART_INDIC); + list = lv_obj_get_style_list(obj, LV_ARC_PART_INDIC); + _lv_style_list_add_style(list, &style_arc_indic); + + lv_obj_clean_style_list(obj, LV_ARC_PART_KNOB); + list = lv_obj_get_style_list(obj, LV_ARC_PART_KNOB); + _lv_style_list_add_style(list, &style_arc_knob); + break; + + case LV_THEME_SWITCH: + lv_obj_clean_style_list(obj, LV_SWITCH_PART_BG); + list = lv_obj_get_style_list(obj, LV_SWITCH_PART_BG); + _lv_style_list_add_style(list, &style_sw_bg); + + lv_obj_clean_style_list(obj, LV_SWITCH_PART_INDIC); + list = lv_obj_get_style_list(obj, LV_SWITCH_PART_INDIC); + _lv_style_list_add_style(list, &style_sw_indic); + + lv_obj_clean_style_list(obj, LV_SWITCH_PART_KNOB); + list = lv_obj_get_style_list(obj, LV_SWITCH_PART_KNOB); + _lv_style_list_add_style(list, &style_sw_knob); + break; + + case LV_THEME_DROPDOWN: + lv_obj_clean_style_list(obj, LV_DROPDOWN_PART_MAIN); + list = lv_obj_get_style_list(obj, LV_DROPDOWN_PART_MAIN); + _lv_style_list_add_style(list, &style_btn); + + lv_obj_clean_style_list(obj, LV_DROPDOWN_PART_LIST); + list = lv_obj_get_style_list(obj, LV_DROPDOWN_PART_LIST); + _lv_style_list_add_style(list, &style_box); + _lv_style_list_add_style(list, &style_ddlist_list); + + lv_obj_clean_style_list(obj, LV_DROPDOWN_PART_SELECTED); + list = lv_obj_get_style_list(obj, LV_DROPDOWN_PART_SELECTED); + _lv_style_list_add_style(list, &style_ddlist_selected); + + lv_obj_clean_style_list(obj, LV_DROPDOWN_PART_SCROLLBAR); + list = lv_obj_get_style_list(obj, LV_DROPDOWN_PART_SCROLLBAR); + _lv_style_list_add_style(list, &style_scrollbar); + break; + + case LV_THEME_TABLE: { + list = lv_obj_get_style_list(obj, LV_TABLE_PART_BG); + _lv_style_list_add_style(list, &style_bg); + + int idx = 1; /* start value should be 1, not zero, since cell styles + start at 1 due to presence of LV_TABLE_PART_BG=0 + in the enum (lv_table.h) */ + /* declaring idx outside loop to work with older compilers */ + for (; idx <= LV_TABLE_CELL_STYLE_CNT; idx++) { + list = lv_obj_get_style_list(obj, idx); + _lv_style_list_add_style(list, &style_table_cell); + _lv_style_list_add_style(list, &style_label_white); + } + } break; + + case LV_THEME_LINEMETER: + list = lv_obj_get_style_list(obj, LV_LINEMETER_PART_MAIN); + _lv_style_list_add_style(list, &style_bg); + _lv_style_list_add_style(list, &style_lmeter); + break; + + case LV_THEME_CHART: + lv_obj_clean_style_list(obj, LV_CHART_PART_SERIES); + list = lv_obj_get_style_list(obj, LV_CHART_PART_SERIES); + _lv_style_list_add_style(list, &style_btn); + _lv_style_list_add_style(list, &style_chart_serie); + break; + + case LV_THEME_CHECKBOX: + list = lv_obj_get_style_list(obj, LV_CHECKBOX_PART_BG); + _lv_style_list_add_style(list, &style_cb_bg); + + list = lv_obj_get_style_list(obj, LV_CHECKBOX_PART_BULLET); + _lv_style_list_add_style(list, &style_btn); + _lv_style_list_add_style(list, &style_cb_bullet); + break; + + default: + break; + } + + lv_obj_refresh_style(obj, LV_OBJ_PART_ALL, LV_STYLE_PROP_ALL); +} |