diff --git a/src/lv_core/lv_obj.c b/src/lv_core/lv_obj.c index 906812c72..f7066935e 100644 --- a/src/lv_core/lv_obj.c +++ b/src/lv_core/lv_obj.c @@ -1171,7 +1171,7 @@ void lv_obj_set_style_color(lv_obj_t * obj, uint8_t part, lv_style_property_t pr lv_obj_refresh_style(obj, part); } -void lv_obj_set_style_value(lv_obj_t * obj, uint8_t part, lv_style_property_t prop, lv_style_value_t value) +void lv_obj_set_style_value(lv_obj_t * obj, uint8_t part, lv_style_property_t prop, lv_style_int_t value) { lv_style_dsc_t * style_dsc = lv_obj_get_style(obj, part); lv_style_set_value(&style_dsc->local, prop, value); @@ -1801,8 +1801,8 @@ void lv_obj_get_inner_coords(const lv_obj_t * obj, lv_area_t * coords_p) { LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - lv_border_side_t part = lv_obj_get_style_value(obj, LV_OBJ_PART_MAIN, LV_STYLE_BORDER_PART); - lv_coord_t w = lv_obj_get_style_value(obj, LV_OBJ_PART_MAIN, LV_STYLE_BORDER_WIDTH); + lv_border_side_t part = lv_obj_get_style_int(obj, LV_OBJ_PART_MAIN, LV_STYLE_BORDER_PART); + lv_coord_t w = lv_obj_get_style_int(obj, LV_OBJ_PART_MAIN, LV_STYLE_BORDER_WIDTH); if(part & LV_BORDER_SIDE_LEFT) coords_p->x1 += w; @@ -1884,8 +1884,8 @@ lv_coord_t lv_obj_get_width_fit(const lv_obj_t * obj) { LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - lv_style_value_t left = lv_obj_get_style_value(obj, LV_OBJ_PART_MAIN, LV_STYLE_PAD_LEFT); - lv_style_value_t right = lv_obj_get_style_value(obj, LV_OBJ_PART_MAIN, LV_STYLE_PAD_RIGHT); + lv_style_int_t left = lv_obj_get_style_int(obj, LV_OBJ_PART_MAIN, LV_STYLE_PAD_LEFT); + lv_style_int_t right = lv_obj_get_style_int(obj, LV_OBJ_PART_MAIN, LV_STYLE_PAD_RIGHT); return lv_obj_get_width(obj) - left - right; } @@ -1899,8 +1899,8 @@ lv_coord_t lv_obj_get_height_fit(const lv_obj_t * obj) { LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - lv_style_value_t top = lv_obj_get_style_value(obj, LV_OBJ_PART_MAIN, LV_STYLE_PAD_TOP); - lv_style_value_t bottom = lv_obj_get_style_value(obj, LV_OBJ_PART_MAIN, LV_STYLE_PAD_BOTTOM); + lv_style_int_t top = lv_obj_get_style_int(obj, LV_OBJ_PART_MAIN, LV_STYLE_PAD_TOP); + lv_style_int_t bottom = lv_obj_get_style_int(obj, LV_OBJ_PART_MAIN, LV_STYLE_PAD_BOTTOM); return lv_obj_get_height(obj) - top - bottom; } @@ -2029,7 +2029,7 @@ lv_style_dsc_t * lv_obj_get_style(const lv_obj_t * obj, uint8_t part) } -lv_style_value_t lv_obj_get_style_value(const lv_obj_t * obj, uint8_t part, lv_style_property_t prop) +lv_style_int_t lv_obj_get_style_int(const lv_obj_t * obj, uint8_t part, lv_style_property_t prop) { lv_style_dsc_t * dsc = lv_obj_get_style(obj, part); @@ -2140,7 +2140,7 @@ lv_style_value_t lv_obj_get_style_value(const lv_obj_t * obj, uint8_t part, lv_s int16_t weight_goal = lv_obj_get_state(obj, part); int16_t weight = -1; - lv_style_value_t value; + lv_style_int_t value; const lv_obj_t * parent = obj; while(parent) { @@ -2151,7 +2151,7 @@ lv_style_value_t lv_obj_get_style_value(const lv_obj_t * obj, uint8_t part, lv_s prop = (uint16_t)prop_ori + ((uint16_t)state << LV_STYLE_STATE_POS); int16_t weight_act; - lv_style_value_t value_act; + lv_style_int_t value_act; weight_act = lv_style_get_value(&dsc->local, prop, &value_act); /*On perfect match return the value immediately*/ @@ -2915,7 +2915,7 @@ static void lv_obj_del_async_cb(void * obj) */ void lv_obj_init_draw_rect_dsc(lv_obj_t * obj, uint8_t part, lv_draw_rect_dsc_t * draw_dsc) { - draw_dsc->radius = lv_obj_get_style_value(obj, part, LV_STYLE_RADIUS); + draw_dsc->radius = lv_obj_get_style_int(obj, part, LV_STYLE_RADIUS); lv_opa_t opa_scale = lv_obj_get_style_opa(obj, part, LV_STYLE_OPA_SCALE); if(opa_scale <= LV_OPA_MIN) { @@ -2928,17 +2928,17 @@ void lv_obj_init_draw_rect_dsc(lv_obj_t * obj, uint8_t part, lv_draw_rect_dsc_t draw_dsc->bg_opa = lv_obj_get_style_opa(obj, part, LV_STYLE_BG_OPA); if(draw_dsc->bg_opa > LV_OPA_MIN) { draw_dsc->bg_color = lv_obj_get_style_color(obj, part, LV_STYLE_BG_COLOR); - draw_dsc->bg_grad_dir = lv_obj_get_style_value(obj, part, LV_STYLE_BG_GRAD_DIR); + draw_dsc->bg_grad_dir = lv_obj_get_style_int(obj, part, LV_STYLE_BG_GRAD_DIR); if(draw_dsc->bg_grad_dir != LV_GRAD_DIR_NONE) { draw_dsc->bg_grad_color = lv_obj_get_style_color(obj, part, LV_STYLE_BG_GRAD_COLOR); } } - draw_dsc->border_width = lv_obj_get_style_value(obj, part, LV_STYLE_BORDER_WIDTH); + draw_dsc->border_width = lv_obj_get_style_int(obj, part, LV_STYLE_BORDER_WIDTH); if(draw_dsc->border_width) { draw_dsc->border_opa = lv_obj_get_style_opa(obj, part, LV_STYLE_BORDER_OPA); if(draw_dsc->border_opa > LV_OPA_MIN) { - draw_dsc->border_part = lv_obj_get_style_value(obj, part, LV_STYLE_BORDER_PART); + draw_dsc->border_part = lv_obj_get_style_int(obj, part, LV_STYLE_BORDER_PART); draw_dsc->border_color = lv_obj_get_style_color(obj, part, LV_STYLE_BORDER_COLOR); } } @@ -2947,7 +2947,7 @@ void lv_obj_init_draw_rect_dsc(lv_obj_t * obj, uint8_t part, lv_draw_rect_dsc_t if(draw_dsc->pattern_src) { draw_dsc->pattern_opa = lv_obj_get_style_opa(obj, part, LV_STYLE_PATTERN_OPA); if(draw_dsc->pattern_opa > LV_OPA_MIN) { - draw_dsc->pattern_repeate = lv_obj_get_style_value(obj, part, LV_STYLE_PATTERN_REPEATE) & 0x1U; + draw_dsc->pattern_repeate = lv_obj_get_style_int(obj, part, LV_STYLE_PATTERN_REPEATE) & 0x1U; draw_dsc->pattern_recolor = lv_obj_get_style_color(obj, part, LV_STYLE_PATTERN_RECOLOR); draw_dsc->pattern_recolor_opa = lv_obj_get_style_opa(obj, part, LV_STYLE_PATTERN_RECOLOR_OPA); if(lv_img_src_get_type(draw_dsc->pattern_src) == LV_IMG_SRC_SYMBOL) { @@ -2959,13 +2959,13 @@ void lv_obj_init_draw_rect_dsc(lv_obj_t * obj, uint8_t part, lv_draw_rect_dsc_t draw_dsc->overlay_opa = lv_obj_get_style_opa(obj, part, LV_STYLE_OVERLAY_OPA); draw_dsc->overlay_color = lv_obj_get_style_color(obj, part, LV_STYLE_OVERLAY_COLOR); - draw_dsc->shadow_width = lv_obj_get_style_value(obj, part, LV_STYLE_SHADOW_WIDTH); + draw_dsc->shadow_width = lv_obj_get_style_int(obj, part, LV_STYLE_SHADOW_WIDTH); if(draw_dsc->shadow_width) { draw_dsc->shadow_opa = lv_obj_get_style_opa(obj, part, LV_STYLE_SHADOW_OPA); if(draw_dsc->shadow_opa > LV_OPA_MIN) { - draw_dsc->shadow_ofs_x = lv_obj_get_style_value(obj, part, LV_STYLE_SHADOW_OFFSET_X); - draw_dsc->shadow_ofs_y = lv_obj_get_style_value(obj, part, LV_STYLE_SHADOW_OFFSET_Y); - draw_dsc->shadow_spread = lv_obj_get_style_value(obj, part, LV_STYLE_SHADOW_SPREAD); + draw_dsc->shadow_ofs_x = lv_obj_get_style_int(obj, part, LV_STYLE_SHADOW_OFFSET_X); + draw_dsc->shadow_ofs_y = lv_obj_get_style_int(obj, part, LV_STYLE_SHADOW_OFFSET_Y); + draw_dsc->shadow_spread = lv_obj_get_style_int(obj, part, LV_STYLE_SHADOW_SPREAD); draw_dsc->shadow_color = lv_obj_get_style_color(obj, part, LV_STYLE_SHADOW_COLOR); } } @@ -2981,8 +2981,8 @@ void lv_obj_init_draw_rect_dsc(lv_obj_t * obj, uint8_t part, lv_draw_rect_dsc_t void lv_obj_init_draw_label_dsc(lv_obj_t * obj, uint8_t part, lv_draw_label_dsc_t * draw_dsc) { draw_dsc->color = lv_obj_get_style_color(obj, part, LV_STYLE_TEXT_COLOR); - draw_dsc->letter_space = lv_obj_get_style_value(obj, part, LV_STYLE_LETTER_SPACE); - draw_dsc->line_space = lv_obj_get_style_value(obj, part, LV_STYLE_LETTER_SPACE); + draw_dsc->letter_space = lv_obj_get_style_int(obj, part, LV_STYLE_LETTER_SPACE); + draw_dsc->line_space = lv_obj_get_style_int(obj, part, LV_STYLE_LETTER_SPACE); draw_dsc->opa = lv_obj_get_style_opa(obj, part, LV_STYLE_TEXT_OPA); draw_dsc->font = lv_obj_get_style_ptr(obj, part, LV_STYLE_FONT); @@ -3015,7 +3015,7 @@ void lv_obj_init_draw_img_dsc(lv_obj_t * obj, uint8_t part, lv_draw_img_dsc_t * draw_dsc->overlay_opa = lv_obj_get_style_opa(obj, part, LV_STYLE_OVERLAY_OPA); draw_dsc->overlay_color = lv_obj_get_style_color(obj, part, LV_STYLE_OVERLAY_COLOR); - draw_dsc->blend_mode = lv_obj_get_style_value(obj, part, LV_STYLE_IMAGE_BLEND_MODE); + draw_dsc->blend_mode = lv_obj_get_style_int(obj, part, LV_STYLE_IMAGE_BLEND_MODE); } void lv_obj_init_draw_line_dsc(lv_obj_t * obj, uint8_t part, lv_draw_line_dsc_t * draw_dsc) @@ -3028,11 +3028,11 @@ void lv_obj_init_draw_line_dsc(lv_obj_t * obj, uint8_t part, lv_draw_line_dsc_t } if(draw_dsc->opa <= LV_OPA_MIN) return; - draw_dsc->width = lv_obj_get_style_value(obj, part, LV_STYLE_LINE_WIDTH); + draw_dsc->width = lv_obj_get_style_int(obj, part, LV_STYLE_LINE_WIDTH); if(draw_dsc->width == 0) return; draw_dsc->color = lv_obj_get_style_color(obj, part, LV_STYLE_LINE_COLOR); - draw_dsc->blend_mode = lv_obj_get_style_value(obj, part, LV_STYLE_LINE_BLEND_MODE); + draw_dsc->blend_mode = lv_obj_get_style_int(obj, part, LV_STYLE_LINE_BLEND_MODE); } /** @@ -3048,13 +3048,13 @@ static lv_design_res_t lv_obj_design(lv_obj_t * obj, const lv_area_t * clip_area { if(mode == LV_DESIGN_COVER_CHK) { /*Most trivial test. Is the mask fully IN the object? If no it surely doesn't cover it*/ - lv_coord_t r = lv_obj_get_style_value(obj, LV_OBJ_PART_MAIN, LV_STYLE_RADIUS); + lv_coord_t r = lv_obj_get_style_int(obj, LV_OBJ_PART_MAIN, LV_STYLE_RADIUS); if(lv_area_is_in(clip_area, &obj->coords, r) == false) return LV_DESIGN_RES_NOT_COVER; - if(lv_obj_get_style_value(obj, LV_OBJ_PART_MAIN, LV_STYLE_CLIP_CORNER)) return LV_DESIGN_RES_MASKED; + if(lv_obj_get_style_int(obj, LV_OBJ_PART_MAIN, LV_STYLE_CLIP_CORNER)) return LV_DESIGN_RES_MASKED; - if(lv_obj_get_style_value(obj, LV_OBJ_PART_MAIN, LV_STYLE_BG_BLEND_MODE) != LV_BLEND_MODE_NORMAL) return LV_DESIGN_RES_NOT_COVER; - if(lv_obj_get_style_value(obj, LV_OBJ_PART_MAIN, LV_STYLE_BORDER_BLEND_MODE) != LV_BLEND_MODE_NORMAL) return LV_DESIGN_RES_NOT_COVER; + if(lv_obj_get_style_int(obj, LV_OBJ_PART_MAIN, LV_STYLE_BG_BLEND_MODE) != LV_BLEND_MODE_NORMAL) return LV_DESIGN_RES_NOT_COVER; + if(lv_obj_get_style_int(obj, LV_OBJ_PART_MAIN, LV_STYLE_BORDER_BLEND_MODE) != LV_BLEND_MODE_NORMAL) return LV_DESIGN_RES_NOT_COVER; /*Can cover the area only if fully solid (no opacity)*/ if(lv_obj_get_style_opa(obj, LV_OBJ_PART_MAIN, LV_STYLE_BG_OPA) < LV_OPA_MAX) return LV_DESIGN_RES_NOT_COVER; @@ -3069,10 +3069,10 @@ static lv_design_res_t lv_obj_design(lv_obj_t * obj, const lv_area_t * clip_area lv_obj_init_draw_rect_dsc(obj, LV_OBJ_PART_MAIN, &draw_dsc); lv_draw_rect(&obj->coords, clip_area, &draw_dsc); - if(lv_obj_get_style_value(obj, LV_OBJ_PART_MAIN, LV_STYLE_CLIP_CORNER)) { + if(lv_obj_get_style_int(obj, LV_OBJ_PART_MAIN, LV_STYLE_CLIP_CORNER)) { lv_draw_mask_radius_param_t * mp = lv_mem_buf_get(sizeof(lv_draw_mask_radius_param_t)); - lv_coord_t r = lv_obj_get_style_value(obj, LV_OBJ_PART_MAIN, LV_STYLE_RADIUS); + lv_coord_t r = lv_obj_get_style_int(obj, LV_OBJ_PART_MAIN, LV_STYLE_RADIUS); lv_draw_mask_radius_init(mp, &obj->coords, r, false); /*Add the mask and use `obj+8` as custom id. Don't use `obj` directly because it might be used by the user*/ @@ -3080,7 +3080,7 @@ static lv_design_res_t lv_obj_design(lv_obj_t * obj, const lv_area_t * clip_area } } else if(mode == LV_DESIGN_DRAW_POST) { - if(lv_obj_get_style_value(obj, LV_OBJ_PART_MAIN, LV_STYLE_CLIP_CORNER)) { + if(lv_obj_get_style_int(obj, LV_OBJ_PART_MAIN, LV_STYLE_CLIP_CORNER)) { lv_draw_mask_radius_param_t * param = lv_draw_mask_remove_custom(obj + 8); lv_mem_buf_release(param); } @@ -3113,10 +3113,10 @@ static lv_res_t lv_obj_signal(lv_obj_t * obj, lv_signal_t sign, void * param) /*Return 'invalid' if the child change signal is not enabled*/ if(lv_obj_is_protected(obj, LV_PROTECT_CHILD_CHG) != false) res = LV_RES_INV; } else if(sign == LV_SIGNAL_REFR_EXT_DRAW_PAD) { - lv_coord_t shadow = (lv_obj_get_style_value(obj, LV_OBJ_PART_MAIN, LV_STYLE_SHADOW_WIDTH) >> 1) + 1; - shadow += lv_obj_get_style_value(obj, LV_OBJ_PART_MAIN, LV_STYLE_SHADOW_SPREAD); - shadow += LV_MATH_MAX(LV_MATH_ABS(lv_obj_get_style_value(obj, LV_OBJ_PART_MAIN, LV_STYLE_SHADOW_OFFSET_X)), - LV_MATH_ABS(lv_obj_get_style_value(obj, LV_OBJ_PART_MAIN, LV_STYLE_SHADOW_OFFSET_Y))); + lv_coord_t shadow = (lv_obj_get_style_int(obj, LV_OBJ_PART_MAIN, LV_STYLE_SHADOW_WIDTH) >> 1) + 1; + shadow += lv_obj_get_style_int(obj, LV_OBJ_PART_MAIN, LV_STYLE_SHADOW_SPREAD); + shadow += LV_MATH_MAX(LV_MATH_ABS(lv_obj_get_style_int(obj, LV_OBJ_PART_MAIN, LV_STYLE_SHADOW_OFFSET_X)), + LV_MATH_ABS(lv_obj_get_style_int(obj, LV_OBJ_PART_MAIN, LV_STYLE_SHADOW_OFFSET_Y))); if(shadow > obj->ext_draw_pad) obj->ext_draw_pad = shadow; } else if(sign == LV_SIGNAL_STYLE_CHG) { @@ -3226,58 +3226,58 @@ static lv_res_t style_cache_update_core(lv_obj_t * obj, uint8_t part) dsc->cache.enabled = 0; - lv_style_value_t value; + lv_style_int_t value; lv_opa_t opa; const void * ptr; - value = lv_obj_get_style_value(obj, part, LV_STYLE_LETTER_SPACE); + value = lv_obj_get_style_int(obj, part, LV_STYLE_LETTER_SPACE); if(value >= LV_STYLE_CACHE_WIDTH_SKIPPED || value < 0) value = LV_STYLE_CACHE_WIDTH_SKIPPED; dsc->cache.letter_space = value; - value = lv_obj_get_style_value(obj, part, LV_STYLE_PAD_LEFT); + value = lv_obj_get_style_int(obj, part, LV_STYLE_PAD_LEFT); if(value >= LV_STYLE_CACHE_PAD_SKIPPED || value < 0) value = LV_STYLE_CACHE_PAD_SKIPPED; dsc->cache.pad_left = value; - value = lv_obj_get_style_value(obj, part, LV_STYLE_PAD_RIGHT); + value = lv_obj_get_style_int(obj, part, LV_STYLE_PAD_RIGHT); if(value >= LV_STYLE_CACHE_PAD_SKIPPED || value < 0) value = LV_STYLE_CACHE_PAD_SKIPPED; dsc->cache.pad_right= value; - value = lv_obj_get_style_value(obj, part, LV_STYLE_PAD_TOP); + value = lv_obj_get_style_int(obj, part, LV_STYLE_PAD_TOP); if(value >= LV_STYLE_CACHE_PAD_SKIPPED || value < 0) value = LV_STYLE_CACHE_PAD_SKIPPED; dsc->cache.pad_top= value; - value = lv_obj_get_style_value(obj, part, LV_STYLE_PAD_BOTTOM); + value = lv_obj_get_style_int(obj, part, LV_STYLE_PAD_BOTTOM); if(value >= LV_STYLE_CACHE_PAD_SKIPPED || value < 0) value = LV_STYLE_CACHE_PAD_SKIPPED; dsc->cache.pad_bottom = value; - value = lv_obj_get_style_value(obj, part, LV_STYLE_PAD_INNER); + value = lv_obj_get_style_int(obj, part, LV_STYLE_PAD_INNER); if(value >= LV_STYLE_CACHE_PAD_SKIPPED || value < 0) value = LV_STYLE_CACHE_PAD_SKIPPED; dsc->cache.pad_inner = value; - value = lv_obj_get_style_value(obj, part, LV_STYLE_BG_GRAD_DIR); + value = lv_obj_get_style_int(obj, part, LV_STYLE_BG_GRAD_DIR); dsc->cache.bg_grad_dir = value; - value = lv_obj_get_style_value(obj, part, LV_STYLE_BORDER_WIDTH); + value = lv_obj_get_style_int(obj, part, LV_STYLE_BORDER_WIDTH); if(value >= LV_STYLE_CACHE_WIDTH_SKIPPED || value < 0) value = LV_STYLE_CACHE_WIDTH_SKIPPED; dsc->cache.border_width = value; - value = lv_obj_get_style_value(obj, part, LV_STYLE_LINE_WIDTH); + value = lv_obj_get_style_int(obj, part, LV_STYLE_LINE_WIDTH); if(value >= LV_STYLE_CACHE_WIDTH_SKIPPED || value < 0) value = LV_STYLE_CACHE_WIDTH_SKIPPED; dsc->cache.line_width = value; - value = lv_obj_get_style_value(obj, part, LV_STYLE_LETTER_SPACE); + value = lv_obj_get_style_int(obj, part, LV_STYLE_LETTER_SPACE); if(value >= LV_STYLE_CACHE_WIDTH_SKIPPED || value < 0) value = LV_STYLE_CACHE_WIDTH_SKIPPED; dsc->cache.letter_space = value; - value = lv_obj_get_style_value(obj, part, LV_STYLE_LINE_SPACE); + value = lv_obj_get_style_int(obj, part, LV_STYLE_LINE_SPACE); if(value >= LV_STYLE_CACHE_WIDTH_SKIPPED || value < 0) value = LV_STYLE_CACHE_WIDTH_SKIPPED; dsc->cache.line_space = value; - value = lv_obj_get_style_value(obj, part, LV_STYLE_SHADOW_WIDTH); + value = lv_obj_get_style_int(obj, part, LV_STYLE_SHADOW_WIDTH); if(value >= LV_STYLE_CACHE_WIDTH_SKIPPED || value < 0) value = LV_STYLE_CACHE_WIDTH_SKIPPED; dsc->cache.shadow_width = value; - value = lv_obj_get_style_value(obj, part, LV_STYLE_BORDER_WIDTH); + value = lv_obj_get_style_int(obj, part, LV_STYLE_BORDER_WIDTH); if(value >= LV_STYLE_CACHE_WIDTH_SKIPPED || value < 0) value = LV_STYLE_CACHE_WIDTH_SKIPPED; dsc->cache.border_width = value; @@ -3321,37 +3321,37 @@ static lv_res_t style_cache_update_core(lv_obj_t * obj, uint8_t part) else if(opa <= LV_OPA_MIN) dsc->cache.opa_scale = LV_STYLE_CACHE_OPA_TRANSP; else dsc->cache.opa_scale = LV_STYLE_CACHE_OPA_SKIPPED; - value = lv_obj_get_style_value(obj, part, LV_STYLE_BG_BLEND_MODE); + value = lv_obj_get_style_int(obj, part, LV_STYLE_BG_BLEND_MODE); if(value == LV_BLEND_MODE_NORMAL) dsc->cache.bg_blend_mode = LV_STYLE_CACHE_BLEND_MODE_NORMAL; else dsc->cache.bg_blend_mode = LV_STYLE_CACHE_BLEND_MODE_SKIPPED; - value = lv_obj_get_style_value(obj, part, LV_STYLE_BORDER_BLEND_MODE); + value = lv_obj_get_style_int(obj, part, LV_STYLE_BORDER_BLEND_MODE); if(value == LV_BLEND_MODE_NORMAL) dsc->cache.border_blend_mode = LV_STYLE_CACHE_BLEND_MODE_NORMAL; else dsc->cache.border_blend_mode = LV_STYLE_CACHE_BLEND_MODE_SKIPPED; - value = lv_obj_get_style_value(obj, part, LV_STYLE_TEXT_BLEND_MODE); + value = lv_obj_get_style_int(obj, part, LV_STYLE_TEXT_BLEND_MODE); if(value == LV_BLEND_MODE_NORMAL) dsc->cache.text_blend_mode = LV_STYLE_CACHE_BLEND_MODE_NORMAL; else dsc->cache.text_blend_mode = LV_STYLE_CACHE_BLEND_MODE_SKIPPED; - value = lv_obj_get_style_value(obj, part, LV_STYLE_LINE_BLEND_MODE); + value = lv_obj_get_style_int(obj, part, LV_STYLE_LINE_BLEND_MODE); if(value == LV_BLEND_MODE_NORMAL) dsc->cache.line_blend_mode = LV_STYLE_CACHE_BLEND_MODE_NORMAL; else dsc->cache.line_blend_mode = LV_STYLE_CACHE_BLEND_MODE_SKIPPED; - value = lv_obj_get_style_value(obj, part, LV_STYLE_IMAGE_BLEND_MODE); + value = lv_obj_get_style_int(obj, part, LV_STYLE_IMAGE_BLEND_MODE); if(value == LV_BLEND_MODE_NORMAL) dsc->cache.image_blend_mode = LV_STYLE_CACHE_BLEND_MODE_NORMAL; else dsc->cache.image_blend_mode = LV_STYLE_CACHE_BLEND_MODE_SKIPPED; - value = lv_obj_get_style_value(obj, part, LV_STYLE_SHADOW_BLEND_MODE); + value = lv_obj_get_style_int(obj, part, LV_STYLE_SHADOW_BLEND_MODE); if(value == LV_BLEND_MODE_NORMAL) dsc->cache.shadow_blend_mode = LV_STYLE_CACHE_BLEND_MODE_NORMAL; else dsc->cache.shadow_blend_mode = LV_STYLE_CACHE_BLEND_MODE_SKIPPED; - value = lv_obj_get_style_value(obj, part, LV_STYLE_RADIUS); + value = lv_obj_get_style_int(obj, part, LV_STYLE_RADIUS); if(value == LV_RADIUS_CIRCLE) dsc->cache.radius = LV_STYLE_CACHE_RADIUS_CIRCLE; else if(value < LV_STYLE_CACHE_RADIUS_SKIPPED) dsc->cache.radius = value; else dsc->cache.radius = LV_STYLE_CACHE_RADIUS_SKIPPED; - value = lv_obj_get_style_value(obj, part, LV_STYLE_BORDER_PART); + value = lv_obj_get_style_int(obj, part, LV_STYLE_BORDER_PART); if(value == LV_BORDER_SIDE_FULL) dsc->cache.border_part = LV_STYLE_CACHE_BORDER_PART_FULL; else dsc->cache.border_part = LV_STYLE_CACHE_BORDER_PART_SKIPPED; @@ -3359,7 +3359,7 @@ static lv_res_t style_cache_update_core(lv_obj_t * obj, uint8_t part) if(ptr == LV_FONT_DEFAULT) dsc->cache.font = LV_STYLE_CACHE_FONT_DEFAULT; else dsc->cache.font = LV_STYLE_CACHE_FONT_SKIPPED; - value = lv_obj_get_style_value(obj, part, LV_STYLE_CLIP_CORNER); + value = lv_obj_get_style_int(obj, part, LV_STYLE_CLIP_CORNER); dsc->cache.clip_corner = value; diff --git a/src/lv_core/lv_obj.h b/src/lv_core/lv_obj.h index 469cb37ce..0279944a4 100644 --- a/src/lv_core/lv_obj.h +++ b/src/lv_core/lv_obj.h @@ -486,7 +486,7 @@ void lv_obj_set_style(lv_obj_t * obj, const lv_style_t * style); void lv_obj_set_style_color(lv_obj_t * obj, uint8_t type, lv_style_property_t prop, lv_color_t color); -void lv_obj_set_style_value(lv_obj_t * obj, uint8_t type, lv_style_property_t prop, lv_style_value_t value); +void lv_obj_set_style_value(lv_obj_t * obj, uint8_t type, lv_style_property_t prop, lv_style_int_t value); void lv_obj_set_style_opa(lv_obj_t * obj, uint8_t type, lv_style_property_t prop, lv_opa_t opa); @@ -860,7 +860,7 @@ lv_coord_t lv_obj_get_ext_draw_pad(const lv_obj_t * obj); lv_style_dsc_t * lv_obj_get_style(const lv_obj_t * obj, uint8_t type); -lv_style_value_t lv_obj_get_style_value(const lv_obj_t * obj, uint8_t type, lv_style_property_t prop); +lv_style_int_t lv_obj_get_style_int(const lv_obj_t * obj, uint8_t type, lv_style_property_t prop); lv_color_t lv_obj_get_style_color(const lv_obj_t * obj, uint8_t type, lv_style_property_t prop); diff --git a/src/lv_core/lv_style.c b/src/lv_core/lv_style.c index 4c7b82ec5..b69152722 100644 --- a/src/lv_core/lv_style.c +++ b/src/lv_core/lv_style.c @@ -166,7 +166,7 @@ void lv_style_reset(lv_style_t * style) style->size = 0; } -void lv_style_set_value(lv_style_t * style, lv_style_property_t prop, lv_style_value_t value) +void lv_style_set_value(lv_style_t * style, lv_style_property_t prop, lv_style_int_t value) { int32_t id = get_property_index(style, prop); /*The property already exists but not sure it's state is the same*/ @@ -178,19 +178,19 @@ void lv_style_set_value(lv_style_t * style, lv_style_property_t prop, lv_style_v attr_goal.full = (prop >> 8) & 0xFFU; if(attr_found.bits.state == attr_goal.bits.state) { - memcpy(style->map + id + sizeof(lv_style_property_t), &value, sizeof(lv_style_value_t)); + memcpy(style->map + id + sizeof(lv_style_property_t), &value, sizeof(lv_style_int_t)); return; } } /*Add new property if not exists yet*/ - style->size += sizeof(lv_style_property_t) + sizeof(lv_style_value_t); + style->size += sizeof(lv_style_property_t) + sizeof(lv_style_int_t); style->map = lv_mem_realloc(style->map, style->size); LV_ASSERT_MEM(style->map); if(style == NULL) return; - memcpy(style->map + style->size - (sizeof(lv_style_property_t) + sizeof(lv_style_value_t)), &prop, sizeof(lv_style_property_t)); - memcpy(style->map + style->size - sizeof(lv_style_value_t), &value, sizeof(lv_style_value_t)); + memcpy(style->map + style->size - (sizeof(lv_style_property_t) + sizeof(lv_style_int_t)), &prop, sizeof(lv_style_property_t)); + memcpy(style->map + style->size - sizeof(lv_style_int_t), &value, sizeof(lv_style_int_t)); } void lv_style_set_color(lv_style_t * style, lv_style_property_t prop, lv_color_t color) @@ -285,13 +285,14 @@ void lv_style_set_ptr(lv_style_t * style, lv_style_property_t prop, void * p) * Higher number is means better fit * -1 if the not found (`res` will be undefined) */ -int16_t lv_style_get_value(const lv_style_t * style, lv_style_property_t prop, lv_style_value_t * res) +int16_t lv_style_get_value(const lv_style_t * style, lv_style_property_t prop, lv_style_int_t * res) { + if(style == NULL) return -1; int32_t id = get_property_index(style, prop); if(id < 0) { return -1; } else { - memcpy(res, &style->map[id + sizeof(lv_style_property_t)], sizeof(lv_style_value_t)); + memcpy(res, &style->map[id + sizeof(lv_style_property_t)], sizeof(lv_style_int_t)); lv_style_attr_t attr_act; attr_act.full = style->map[id + 1]; @@ -305,6 +306,7 @@ int16_t lv_style_get_value(const lv_style_t * style, lv_style_property_t prop, l int16_t lv_style_get_opa(const lv_style_t * style, lv_style_property_t prop, lv_opa_t * res) { + if(style == NULL) return -1; int32_t id = get_property_index(style, prop); if(id < 0) { return -1; @@ -322,6 +324,7 @@ int16_t lv_style_get_opa(const lv_style_t * style, lv_style_property_t prop, lv_ int16_t lv_style_get_color(const lv_style_t * style, lv_style_property_t prop, lv_color_t * res) { + if(style == NULL) return -1; int32_t id = get_property_index(style, prop); if(id < 0) { return -1; @@ -338,9 +341,9 @@ int16_t lv_style_get_color(const lv_style_t * style, lv_style_property_t prop, l } - int16_t lv_style_get_ptr(const lv_style_t * style, lv_style_property_t prop, void ** res) { + if(style == NULL) return -1; int32_t id = get_property_index(style, prop); if(id < 0) { return -1; @@ -424,7 +427,7 @@ static inline int32_t get_property_index(const lv_style_t * style, lv_style_prop } /*Go to the next property*/ - if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i+= sizeof(lv_style_value_t); + if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i+= sizeof(lv_style_int_t); else if((style->map[i] & 0xF) < LV_STYLE_ID_OPA) i+= sizeof(lv_color_t); else if((style->map[i] & 0xF) < LV_STYLE_ID_PTR) i+= sizeof(lv_opa_t); else i+= sizeof(void*); @@ -455,19 +458,19 @@ static void style_animator(lv_style_anim_dsc_t * dsc, lv_anim_value_t val) /*Value*/ if((start->map[i] & 0xF) < LV_STYLE_ID_COLOR) { - lv_style_value_t v1; - memcpy(&v1, &start->map[i + sizeof(lv_style_property_t)], sizeof(lv_style_value_t)); + lv_style_int_t v1; + memcpy(&v1, &start->map[i + sizeof(lv_style_property_t)], sizeof(lv_style_int_t)); int16_t res2; - lv_style_value_t v2; + lv_style_int_t v2; res2 = lv_style_get_value(end, prop_act, &v2); if(res2 >= 0) { - lv_style_value_t vres = v1 + ((int32_t)((int32_t)(v2-v1) * val) >> 8); + lv_style_int_t vres = v1 + ((int32_t)((int32_t)(v2-v1) * val) >> 8); lv_style_set_value(act, prop_act, vres); } - i+= sizeof(lv_style_value_t); + i+= sizeof(lv_style_int_t); } /*Color*/ else if((start->map[i] & 0xF) < LV_STYLE_ID_OPA) { diff --git a/src/lv_core/lv_style.h b/src/lv_core/lv_style.h index 972d914c3..5236b6195 100644 --- a/src/lv_core/lv_style.h +++ b/src/lv_core/lv_style.h @@ -163,7 +163,7 @@ typedef struct { uint16_t size :9; }lv_style_t; -typedef int16_t lv_style_value_t; +typedef int16_t lv_style_int_t; #define LV_STYLE_CACHE_PAD_SKIPPED 31 @@ -298,13 +298,13 @@ void lv_style_copy(lv_style_t * dest, const lv_style_t * src); */ void lv_style_mix(const lv_style_t * start, const lv_style_t * end, lv_style_t * res, uint16_t ratio); -void lv_style_set_value(lv_style_t * style, lv_style_property_t prop, lv_style_value_t value); +void lv_style_set_value(lv_style_t * style, lv_style_property_t prop, lv_style_int_t value); void lv_style_set_color(lv_style_t * style, lv_style_property_t prop, lv_color_t color); void lv_style_set_opa(lv_style_t * style, lv_style_property_t prop, lv_opa_t opa); void lv_style_set_ptr(lv_style_t * style, lv_style_property_t prop, void * p); -int16_t lv_style_get_value(const lv_style_t * style, lv_style_property_t prop, lv_style_value_t * res); +int16_t lv_style_get_value(const lv_style_t * style, lv_style_property_t prop, lv_style_int_t * res); int16_t lv_style_get_opa(const lv_style_t * style, lv_style_property_t prop, lv_opa_t * res); int16_t lv_style_get_color(const lv_style_t * style, lv_style_property_t prop, lv_color_t * res); int16_t lv_style_get_ptr(const lv_style_t * style, lv_style_property_t prop, void ** res); diff --git a/src/lv_draw/lv_draw_label.h b/src/lv_draw/lv_draw_label.h index a785b6d1a..2b178f040 100644 --- a/src/lv_draw/lv_draw_label.h +++ b/src/lv_draw/lv_draw_label.h @@ -30,8 +30,8 @@ typedef struct { lv_color_t sel_color; const lv_font_t * font; lv_opa_t opa; - lv_style_value_t line_space; - lv_style_value_t letter_space; + lv_style_int_t line_space; + lv_style_int_t letter_space; uint16_t sel_start; uint16_t sel_end; lv_coord_t ofs_x; diff --git a/src/lv_draw/lv_draw_line.h b/src/lv_draw/lv_draw_line.h index 8aada8ee0..04af73eff 100644 --- a/src/lv_draw/lv_draw_line.h +++ b/src/lv_draw/lv_draw_line.h @@ -23,7 +23,7 @@ extern "C" { **********************/ typedef struct { lv_color_t color; - lv_style_value_t width; + lv_style_int_t width; lv_opa_t opa; lv_blend_mode_t blend_mode; uint8_t round_start :1; diff --git a/src/lv_draw/lv_draw_rect.h b/src/lv_draw/lv_draw_rect.h index 8182d818e..832099f60 100644 --- a/src/lv_draw/lv_draw_rect.h +++ b/src/lv_draw/lv_draw_rect.h @@ -25,31 +25,31 @@ extern "C" { **********************/ typedef struct { - lv_style_value_t radius; + lv_style_int_t radius; /*Background*/ lv_color_t bg_color; lv_color_t bg_grad_color; lv_grad_dir_t bg_grad_dir; - lv_style_value_t bg_main_color_stop; - lv_style_value_t bg_grad_color_stop; + lv_style_int_t bg_main_color_stop; + lv_style_int_t bg_grad_color_stop; lv_blend_mode_t bg_blend_mode; lv_opa_t bg_opa; /*Border*/ lv_color_t border_color; - lv_style_value_t border_width; + lv_style_int_t border_width; lv_blend_mode_t border_blend_mode; - lv_style_value_t border_part; + lv_style_int_t border_part; lv_opa_t border_opa; /*Shadow*/ lv_color_t shadow_color; - lv_style_value_t shadow_width; - lv_style_value_t shadow_ofs_x; - lv_style_value_t shadow_ofs_y; - lv_style_value_t shadow_spread; - lv_style_value_t shadow_blend_mode; + lv_style_int_t shadow_width; + lv_style_int_t shadow_ofs_x; + lv_style_int_t shadow_ofs_y; + lv_style_int_t shadow_spread; + lv_style_int_t shadow_blend_mode; lv_opa_t shadow_opa; /*Pattern*/ diff --git a/src/lv_objx/lv_bar.c b/src/lv_objx/lv_bar.c index e6973bfb1..44910ad2a 100644 --- a/src/lv_objx/lv_bar.c +++ b/src/lv_objx/lv_bar.c @@ -398,10 +398,10 @@ static void draw_indic(lv_obj_t * bar, const lv_area_t * clip_area) if(ext->type == LV_BAR_TYPE_SYM && ext->min_value < 0 && ext->max_value > 0 && ext->start_value == ext->min_value) sym = true; /*Calculate the indicator area*/ - lv_style_value_t bg_left = lv_obj_get_style_value(bar, LV_BAR_PART_BG, LV_STYLE_PAD_LEFT); - lv_style_value_t bg_right = lv_obj_get_style_value(bar, LV_BAR_PART_BG, LV_STYLE_PAD_RIGHT); - lv_style_value_t bg_top = lv_obj_get_style_value(bar, LV_BAR_PART_BG, LV_STYLE_PAD_TOP); - lv_style_value_t bg_bottom = lv_obj_get_style_value(bar, LV_BAR_PART_BG, LV_STYLE_PAD_BOTTOM); + lv_style_int_t bg_left = lv_obj_get_style_int(bar, LV_BAR_PART_BG, LV_STYLE_PAD_LEFT); + lv_style_int_t bg_right = lv_obj_get_style_int(bar, LV_BAR_PART_BG, LV_STYLE_PAD_RIGHT); + lv_style_int_t bg_top = lv_obj_get_style_int(bar, LV_BAR_PART_BG, LV_STYLE_PAD_TOP); + lv_style_int_t bg_bottom = lv_obj_get_style_int(bar, LV_BAR_PART_BG, LV_STYLE_PAD_BOTTOM); /*Respect padding and minimum width/height too*/ lv_area_copy(&ext->indic_area, &bar->coords); @@ -493,7 +493,7 @@ static void draw_indic(lv_obj_t * bar, const lv_area_t * clip_area) /*Do not draw a zero length indicator*/ if(!sym && indic_length_calc(&ext->indic_area) == 0) return; - uint16_t bg_radius = lv_obj_get_style_value(bar, LV_BAR_PART_BG, LV_STYLE_RADIUS); + uint16_t bg_radius = lv_obj_get_style_int(bar, LV_BAR_PART_BG, LV_STYLE_RADIUS); lv_coord_t short_side = LV_MATH_MIN(objw, objh); if(bg_radius > short_side >> 1) bg_radius = short_side >> 1; @@ -576,19 +576,19 @@ static lv_res_t lv_bar_signal(lv_obj_t * bar, lv_signal_t sign, void * param) if(sign == LV_SIGNAL_GET_TYPE) return lv_obj_handle_get_type_signal(param, LV_OBJX_NAME); if(sign == LV_SIGNAL_REFR_EXT_DRAW_PAD) { - lv_style_value_t bg_sh_width = lv_obj_get_style_value(bar, LV_BAR_PART_BG, LV_STYLE_SHADOW_WIDTH); - lv_style_value_t bg_sh_spread = lv_obj_get_style_value(bar, LV_BAR_PART_BG, LV_STYLE_SHADOW_SPREAD); - lv_style_value_t bg_sh_ofs_x = lv_obj_get_style_value(bar, LV_BAR_PART_BG, LV_STYLE_SHADOW_OFFSET_X); - lv_style_value_t bg_sh_ofs_y = lv_obj_get_style_value(bar, LV_BAR_PART_BG, LV_STYLE_SHADOW_OFFSET_Y); + lv_style_int_t bg_sh_width = lv_obj_get_style_int(bar, LV_BAR_PART_BG, LV_STYLE_SHADOW_WIDTH); + lv_style_int_t bg_sh_spread = lv_obj_get_style_int(bar, LV_BAR_PART_BG, LV_STYLE_SHADOW_SPREAD); + lv_style_int_t bg_sh_ofs_x = lv_obj_get_style_int(bar, LV_BAR_PART_BG, LV_STYLE_SHADOW_OFFSET_X); + lv_style_int_t bg_sh_ofs_y = lv_obj_get_style_int(bar, LV_BAR_PART_BG, LV_STYLE_SHADOW_OFFSET_Y); lv_coord_t bg_size = bg_sh_width + bg_sh_spread; bg_size += LV_MATH_MAX(LV_MATH_ABS(bg_sh_ofs_x), LV_MATH_ABS(bg_sh_ofs_y)); - lv_style_value_t indic_sh_width = lv_obj_get_style_value(bar, LV_BAR_PART_INDIC, LV_STYLE_SHADOW_WIDTH); - lv_style_value_t indic_sh_spread = lv_obj_get_style_value(bar, LV_BAR_PART_INDIC, LV_STYLE_SHADOW_SPREAD); - lv_style_value_t indic_sh_ofs_x = lv_obj_get_style_value(bar, LV_BAR_PART_INDIC, LV_STYLE_SHADOW_OFFSET_X); - lv_style_value_t indic_sh_ofs_y = lv_obj_get_style_value(bar, LV_BAR_PART_INDIC, LV_STYLE_SHADOW_OFFSET_Y); + lv_style_int_t indic_sh_width = lv_obj_get_style_int(bar, LV_BAR_PART_INDIC, LV_STYLE_SHADOW_WIDTH); + lv_style_int_t indic_sh_spread = lv_obj_get_style_int(bar, LV_BAR_PART_INDIC, LV_STYLE_SHADOW_SPREAD); + lv_style_int_t indic_sh_ofs_x = lv_obj_get_style_int(bar, LV_BAR_PART_INDIC, LV_STYLE_SHADOW_OFFSET_X); + lv_style_int_t indic_sh_ofs_y = lv_obj_get_style_int(bar, LV_BAR_PART_INDIC, LV_STYLE_SHADOW_OFFSET_Y); lv_coord_t indic_size = indic_sh_width + indic_sh_spread; diff --git a/src/lv_objx/lv_btn.c b/src/lv_objx/lv_btn.c index 6047efc98..53525be9f 100644 --- a/src/lv_objx/lv_btn.c +++ b/src/lv_objx/lv_btn.c @@ -449,10 +449,10 @@ static lv_design_res_t lv_btn_design(lv_obj_t * btn, const lv_area_t * clip_area lv_obj_init_draw_rect_dsc(btn, LV_OBJ_PART_MAIN, &draw_dsc); lv_draw_rect(&btn->coords, clip_area, &draw_dsc); - if(lv_obj_get_style_value(btn, LV_OBJ_PART_MAIN, LV_STYLE_CLIP_CORNER)) { + if(lv_obj_get_style_int(btn, LV_OBJ_PART_MAIN, LV_STYLE_CLIP_CORNER)) { lv_draw_mask_radius_param_t * mp = lv_mem_buf_get(sizeof(lv_draw_mask_radius_param_t)); - lv_coord_t r = lv_obj_get_style_value(btn, LV_OBJ_PART_MAIN, LV_STYLE_RADIUS); + lv_coord_t r = lv_obj_get_style_int(btn, LV_OBJ_PART_MAIN, LV_STYLE_RADIUS); lv_draw_mask_radius_init(mp, &btn->coords, r, false); /*Add the mask and use `obj+8` as custom id. Don't use `obj` directly because it might be used by the user*/ diff --git a/src/lv_objx/lv_btnm.c b/src/lv_objx/lv_btnm.c index 54fdd7aaf..248133f06 100644 --- a/src/lv_objx/lv_btnm.c +++ b/src/lv_objx/lv_btnm.c @@ -165,11 +165,11 @@ void lv_btnm_set_map(const lv_obj_t * btnm, const char * map[]) ext->map_p = map; /*Set size and positions of the buttons*/ - lv_style_value_t left = lv_obj_get_style_value(btnm, LV_BTNM_PART_BG, LV_STYLE_PAD_LEFT); - lv_style_value_t right = lv_obj_get_style_value(btnm, LV_BTNM_PART_BG, LV_STYLE_PAD_RIGHT); - lv_style_value_t top = lv_obj_get_style_value(btnm, LV_BTNM_PART_BG, LV_STYLE_PAD_TOP); - lv_style_value_t bottom = lv_obj_get_style_value(btnm, LV_BTNM_PART_BG, LV_STYLE_PAD_BOTTOM); - lv_style_value_t inner = lv_obj_get_style_value(btnm, LV_BTNM_PART_BG, LV_STYLE_PAD_INNER); + lv_style_int_t left = lv_obj_get_style_int(btnm, LV_BTNM_PART_BG, LV_STYLE_PAD_LEFT); + lv_style_int_t right = lv_obj_get_style_int(btnm, LV_BTNM_PART_BG, LV_STYLE_PAD_RIGHT); + lv_style_int_t top = lv_obj_get_style_int(btnm, LV_BTNM_PART_BG, LV_STYLE_PAD_TOP); + lv_style_int_t bottom = lv_obj_get_style_int(btnm, LV_BTNM_PART_BG, LV_STYLE_PAD_BOTTOM); + lv_style_int_t inner = lv_obj_get_style_int(btnm, LV_BTNM_PART_BG, LV_STYLE_PAD_INNER); lv_coord_t max_w = lv_obj_get_width(btnm) - left - right; @@ -621,6 +621,8 @@ static lv_design_res_t lv_btnm_design(lv_obj_t * btnm, const lv_area_t * clip_ar lv_draw_label_dsc_t draw_label_tmp_dsc; + /*The state changes without re-caching the styles, disable the use of cache*/ + btnm->style_dsc.cache.enabled = 0; uint8_t state_ori = btnm->state; btnm->state = 0; lv_draw_rect_dsc_init(&draw_rect_rel_dsc); @@ -641,9 +643,10 @@ static lv_design_res_t lv_btnm_design(lv_obj_t * btnm, const lv_area_t * clip_ar lv_obj_init_draw_label_dsc(btnm, LV_BTNM_PART_BTN, &draw_label_ina_dsc); btnm->state = state_ori; + btnm->style_dsc.cache.enabled = 1; - lv_style_value_t padding_top = lv_obj_get_style_value(btnm, LV_BTNM_PART_BG, LV_STYLE_PAD_TOP); - lv_style_value_t padding_bottom = lv_obj_get_style_value(btnm, LV_BTNM_PART_BG, LV_STYLE_PAD_BOTTOM); + lv_style_int_t padding_top = lv_obj_get_style_int(btnm, LV_BTNM_PART_BG, LV_STYLE_PAD_TOP); + lv_style_int_t padding_bottom = lv_obj_get_style_int(btnm, LV_BTNM_PART_BG, LV_STYLE_PAD_BOTTOM); if(ext->recolor) txt_flag = LV_TXT_FLAG_RECOLOR; for(btn_i = 0; btn_i < ext->btn_cnt; btn_i++, txt_i++) { @@ -680,6 +683,9 @@ static lv_design_res_t lv_btnm_design(lv_obj_t * btnm, const lv_area_t * clip_ar } /*Focused and/or pressed + checked or released button*/ else { + /*The state changes without re-caching the styles, disable the use of cache*/ + btnm->style_dsc.cache.enabled = 0; + if(tgl_state) btnm->state = LV_OBJ_STATE_CHECKED; if(ext->btn_id_pr == btn_i) btnm->state |= LV_OBJ_STATE_PRESSED; if(ext->btn_id_focused == btn_i) btnm->state |= LV_OBJ_STATE_FOCUS; @@ -690,9 +696,11 @@ static lv_design_res_t lv_btnm_design(lv_obj_t * btnm, const lv_area_t * clip_ar draw_rect_dsc_act = &draw_rect_tmp_dsc; draw_label_dsc_act = &draw_label_tmp_dsc; btnm->state = state_ori; + + btnm->style_dsc.cache.enabled = 1; } - lv_style_value_t border_part_ori = draw_rect_dsc_act->border_part; + lv_style_int_t border_part_ori = draw_rect_dsc_act->border_part; /*Remove borders on the edges if `LV_BORDER_INTERNAL`*/ if(border_part_ori & LV_BORDER_SIDE_INTERNAL) { @@ -720,8 +728,8 @@ static lv_design_res_t lv_btnm_design(lv_obj_t * btnm, const lv_area_t * clip_ar /*Calculate the size of the text*/ const lv_font_t * font = draw_label_dsc_act->font; - lv_style_value_t letter_space = draw_label_dsc_act->letter_space; - lv_style_value_t line_space = draw_label_dsc_act->line_space; + lv_style_int_t letter_space = draw_label_dsc_act->letter_space; + lv_style_int_t line_space = draw_label_dsc_act->line_space; const char * txt = ext->map_p[txt_i]; lv_point_t txt_size; lv_txt_get_size(&txt_size, txt, font, letter_space, @@ -904,7 +912,7 @@ static lv_res_t lv_btnm_signal(lv_obj_t * btnm, lv_signal_t sign, void * param) ext->btn_id_act = ext->btn_id_pr; lv_obj_invalidate(btnm); } else if(c == LV_KEY_DOWN) { - lv_style_value_t pad_inner = lv_obj_get_style_value(btnm, LV_BTNM_PART_BG, LV_STYLE_PAD_INNER); + lv_style_int_t pad_inner = lv_obj_get_style_int(btnm, LV_BTNM_PART_BG, LV_STYLE_PAD_INNER); /*Find the area below the the current*/ if(ext->btn_id_pr == LV_BTNM_BTN_NONE) { ext->btn_id_pr = 0; @@ -926,7 +934,7 @@ static lv_res_t lv_btnm_signal(lv_obj_t * btnm, lv_signal_t sign, void * param) ext->btn_id_act = ext->btn_id_pr; lv_obj_invalidate(btnm); } else if(c == LV_KEY_UP) { - lv_style_value_t pad_inner = lv_obj_get_style_value(btnm, LV_BTNM_PART_BG, LV_STYLE_PAD_INNER); + lv_style_int_t pad_inner = lv_obj_get_style_int(btnm, LV_BTNM_PART_BG, LV_STYLE_PAD_INNER); /*Find the area below the the current*/ if(ext->btn_id_pr == LV_BTNM_BTN_NONE) { ext->btn_id_pr = 0; diff --git a/src/lv_objx/lv_cont.c b/src/lv_objx/lv_cont.c index 9cdea7f97..565456bc4 100644 --- a/src/lv_objx/lv_cont.c +++ b/src/lv_objx/lv_cont.c @@ -333,10 +333,10 @@ static void lv_cont_refr_layout(lv_obj_t * cont) */ static void lv_cont_layout_col(lv_obj_t * cont) { - lv_coord_t left = lv_obj_get_style_value(cont, LV_CONT_PART_MAIN, LV_STYLE_PAD_LEFT); - lv_coord_t right = lv_obj_get_style_value(cont, LV_CONT_PART_MAIN, LV_STYLE_PAD_RIGHT); - lv_coord_t top = lv_obj_get_style_value(cont, LV_CONT_PART_MAIN, LV_STYLE_PAD_TOP); - lv_coord_t inner = lv_obj_get_style_value(cont, LV_CONT_PART_MAIN, LV_STYLE_PAD_INNER); + lv_coord_t left = lv_obj_get_style_int(cont, LV_CONT_PART_MAIN, LV_STYLE_PAD_LEFT); + lv_coord_t right = lv_obj_get_style_int(cont, LV_CONT_PART_MAIN, LV_STYLE_PAD_RIGHT); + lv_coord_t top = lv_obj_get_style_int(cont, LV_CONT_PART_MAIN, LV_STYLE_PAD_TOP); + lv_coord_t inner = lv_obj_get_style_int(cont, LV_CONT_PART_MAIN, LV_STYLE_PAD_INNER); lv_layout_t type = lv_cont_get_layout(cont); lv_obj_t * child; @@ -396,7 +396,7 @@ static void lv_cont_layout_row(lv_obj_t * cont) lv_bidi_dir_t base_dir = lv_obj_get_base_dir(cont); switch(type) { case LV_LAYOUT_ROW_T: - vpad_corr = lv_obj_get_style_value(cont, LV_CONT_PART_MAIN, LV_STYLE_PAD_TOP); + vpad_corr = lv_obj_get_style_int(cont, LV_CONT_PART_MAIN, LV_STYLE_PAD_TOP); align = base_dir == LV_BIDI_DIR_RTL ? LV_ALIGN_IN_TOP_RIGHT : LV_ALIGN_IN_TOP_LEFT; break; case LV_LAYOUT_ROW_M: @@ -404,7 +404,7 @@ static void lv_cont_layout_row(lv_obj_t * cont) align = base_dir == LV_BIDI_DIR_RTL ? LV_ALIGN_IN_RIGHT_MID: LV_ALIGN_IN_LEFT_MID; break; case LV_LAYOUT_ROW_B: - vpad_corr = -lv_obj_get_style_value(cont, LV_CONT_PART_MAIN, LV_STYLE_PAD_BOTTOM);; + vpad_corr = -lv_obj_get_style_int(cont, LV_CONT_PART_MAIN, LV_STYLE_PAD_BOTTOM);; align = base_dir == LV_BIDI_DIR_RTL ? LV_ALIGN_IN_BOTTOM_RIGHT: LV_ALIGN_IN_BOTTOM_LEFT; break; default: @@ -419,10 +419,10 @@ static void lv_cont_layout_row(lv_obj_t * cont) /* Align the children */ lv_coord_t last_cord; - if(base_dir == LV_BIDI_DIR_RTL) last_cord = lv_obj_get_style_value(cont, LV_CONT_PART_MAIN, LV_STYLE_PAD_RIGHT); - else last_cord = lv_obj_get_style_value(cont, LV_CONT_PART_MAIN, LV_STYLE_PAD_LEFT); + if(base_dir == LV_BIDI_DIR_RTL) last_cord = lv_obj_get_style_int(cont, LV_CONT_PART_MAIN, LV_STYLE_PAD_RIGHT); + else last_cord = lv_obj_get_style_int(cont, LV_CONT_PART_MAIN, LV_STYLE_PAD_LEFT); - lv_coord_t inner = lv_obj_get_style_value(cont, LV_CONT_PART_MAIN, LV_STYLE_PAD_INNER); + lv_coord_t inner = lv_obj_get_style_int(cont, LV_CONT_PART_MAIN, LV_STYLE_PAD_INNER); LV_LL_READ_BACK(cont->child_ll, child) { @@ -447,7 +447,7 @@ static void lv_cont_layout_center(lv_obj_t * cont) uint32_t obj_num = 0; lv_coord_t h_tot = 0; - lv_coord_t inner = lv_obj_get_style_value(cont, LV_CONT_PART_MAIN, LV_STYLE_PAD_INNER); + lv_coord_t inner = lv_obj_get_style_int(cont, LV_CONT_PART_MAIN, LV_STYLE_PAD_INNER); LV_LL_READ(cont->child_ll, child) { if(lv_obj_get_hidden(child) != false || lv_obj_is_protected(child, LV_PROTECT_POS) != false) continue; @@ -487,7 +487,7 @@ static void lv_cont_layout_pretty(lv_obj_t * cont) lv_obj_t * child_rc; /* Row closer child */ lv_obj_t * child_tmp; /* Temporary child */ lv_coord_t w_obj = lv_obj_get_width(cont); - lv_coord_t act_y = lv_obj_get_style_value(cont, LV_CONT_PART_MAIN, LV_STYLE_PAD_TOP); + lv_coord_t act_y = lv_obj_get_style_int(cont, LV_CONT_PART_MAIN, LV_STYLE_PAD_TOP); /* Disable child change action because the children will be moved a lot * an unnecessary child change signals could be sent*/ @@ -495,9 +495,9 @@ static void lv_cont_layout_pretty(lv_obj_t * cont) if(child_rs == NULL) return; /*Return if no child*/ lv_obj_set_protect(cont, LV_PROTECT_CHILD_CHG); - lv_coord_t left = lv_obj_get_style_value(cont, LV_CONT_PART_MAIN, LV_STYLE_PAD_LEFT); - lv_coord_t right = lv_obj_get_style_value(cont, LV_CONT_PART_MAIN, LV_STYLE_PAD_RIGHT); - lv_coord_t inner = lv_obj_get_style_value(cont, LV_CONT_PART_MAIN, LV_STYLE_PAD_INNER); + lv_coord_t left = lv_obj_get_style_int(cont, LV_CONT_PART_MAIN, LV_STYLE_PAD_LEFT); + lv_coord_t right = lv_obj_get_style_int(cont, LV_CONT_PART_MAIN, LV_STYLE_PAD_RIGHT); + lv_coord_t inner = lv_obj_get_style_int(cont, LV_CONT_PART_MAIN, LV_STYLE_PAD_INNER); child_rc = child_rs; /*Initially the the row starter and closer is the same*/ while(child_rs != NULL) { @@ -585,7 +585,7 @@ static void lv_cont_layout_grid(lv_obj_t * cont) lv_coord_t w_obj = lv_obj_get_width(lv_obj_get_child(cont, NULL)); lv_coord_t w_fit = lv_obj_get_width_fit(cont); lv_coord_t h_obj = lv_obj_get_height(lv_obj_get_child(cont, NULL)); - lv_coord_t inner = lv_obj_get_style_value(cont, LV_CONT_PART_MAIN, LV_STYLE_PAD_INNER); + lv_coord_t inner = lv_obj_get_style_int(cont, LV_CONT_PART_MAIN, LV_STYLE_PAD_INNER); uint16_t obj_row = (w_fit) / (w_obj + inner); /*Obj. num. in a row*/ lv_coord_t x_ofs; if(obj_row > 1) { @@ -600,9 +600,9 @@ static void lv_cont_layout_grid(lv_obj_t * cont) lv_obj_set_protect(cont, LV_PROTECT_CHILD_CHG); /* Align the children */ - lv_coord_t left = lv_obj_get_style_value(cont, LV_CONT_PART_MAIN, LV_STYLE_PAD_LEFT); + lv_coord_t left = lv_obj_get_style_int(cont, LV_CONT_PART_MAIN, LV_STYLE_PAD_LEFT); lv_coord_t act_x = left; - lv_coord_t act_y = lv_obj_get_style_value(cont, LV_CONT_PART_MAIN, LV_STYLE_PAD_TOP); + lv_coord_t act_y = lv_obj_get_style_int(cont, LV_CONT_PART_MAIN, LV_STYLE_PAD_TOP); uint16_t obj_cnt = 0; LV_LL_READ_BACK(cont->child_ll, child) { @@ -646,10 +646,10 @@ static void lv_cont_refr_autofit(lv_obj_t * cont) lv_obj_t * par = lv_obj_get_parent(cont); lv_area_t flood_area; lv_area_copy(&flood_area, &par->coords); - flood_area.x1 += lv_obj_get_style_value(par, LV_OBJ_PART_MAIN, LV_STYLE_PAD_LEFT); - flood_area.x2 -= lv_obj_get_style_value(par, LV_OBJ_PART_MAIN, LV_STYLE_PAD_RIGHT); - flood_area.y1 += lv_obj_get_style_value(par, LV_OBJ_PART_MAIN, LV_STYLE_PAD_TOP); - flood_area.y2 -= lv_obj_get_style_value(par, LV_OBJ_PART_MAIN, LV_STYLE_PAD_BOTTOM); + flood_area.x1 += lv_obj_get_style_int(par, LV_OBJ_PART_MAIN, LV_STYLE_PAD_LEFT); + flood_area.x2 -= lv_obj_get_style_int(par, LV_OBJ_PART_MAIN, LV_STYLE_PAD_RIGHT); + flood_area.y1 += lv_obj_get_style_int(par, LV_OBJ_PART_MAIN, LV_STYLE_PAD_TOP); + flood_area.y2 -= lv_obj_get_style_int(par, LV_OBJ_PART_MAIN, LV_STYLE_PAD_BOTTOM); /*Search the side coordinates of the children*/ lv_obj_get_coords(cont, &ori); @@ -672,10 +672,10 @@ static void lv_cont_refr_autofit(lv_obj_t * cont) tight_area.y2 = LV_MATH_MAX(tight_area.y2, child_i->coords.y2); } - tight_area.x1 -= lv_obj_get_style_value(cont, LV_CONT_PART_MAIN, LV_STYLE_PAD_LEFT); - tight_area.x2 += lv_obj_get_style_value(cont, LV_CONT_PART_MAIN, LV_STYLE_PAD_RIGHT); - tight_area.y1 -= lv_obj_get_style_value(cont, LV_CONT_PART_MAIN, LV_STYLE_PAD_TOP); - tight_area.y2 += lv_obj_get_style_value(cont, LV_CONT_PART_MAIN, LV_STYLE_PAD_BOTTOM); + tight_area.x1 -= lv_obj_get_style_int(cont, LV_CONT_PART_MAIN, LV_STYLE_PAD_LEFT); + tight_area.x2 += lv_obj_get_style_int(cont, LV_CONT_PART_MAIN, LV_STYLE_PAD_RIGHT); + tight_area.y1 -= lv_obj_get_style_int(cont, LV_CONT_PART_MAIN, LV_STYLE_PAD_TOP); + tight_area.y2 += lv_obj_get_style_int(cont, LV_CONT_PART_MAIN, LV_STYLE_PAD_BOTTOM); } lv_area_t new_area; diff --git a/src/lv_objx/lv_ddlist.c b/src/lv_objx/lv_ddlist.c index 9c62b64bf..79a35449c 100644 --- a/src/lv_objx/lv_ddlist.c +++ b/src/lv_objx/lv_ddlist.c @@ -497,7 +497,7 @@ static lv_design_res_t lv_ddlist_design(lv_obj_t * ddlist, const lv_area_t * cli /*If the list is opened draw a rectangle under the selected item*/ if(ext->opened != 0 || ext->force_sel) { const lv_font_t * font = lv_obj_get_style_ptr(ddlist, LV_DDLIST_PART_BG, LV_STYLE_FONT); - lv_style_value_t line_space = lv_obj_get_style_value(ddlist, LV_DDLIST_PART_BG, LV_STYLE_LINE_SPACE); + lv_style_int_t line_space = lv_obj_get_style_int(ddlist, LV_DDLIST_PART_BG, LV_STYLE_LINE_SPACE); lv_coord_t font_h = lv_font_get_line_height(font); /*Draw the selected*/ @@ -557,10 +557,10 @@ static lv_design_res_t lv_ddlist_design(lv_obj_t * ddlist, const lv_area_t * cli if(lv_label_get_align(ext->label) != LV_LABEL_ALIGN_RIGHT) { - area_icon.x2 = ddlist->coords.x2 - lv_obj_get_style_value(ddlist, LV_DDLIST_PART_BG, LV_STYLE_PAD_RIGHT); + area_icon.x2 = ddlist->coords.x2 - lv_obj_get_style_int(ddlist, LV_DDLIST_PART_BG, LV_STYLE_PAD_RIGHT); area_icon.x1 = area_icon.x2 - icon_width; } else { - area_icon.x1 = ddlist->coords.x1 + lv_obj_get_style_value(ddlist, LV_DDLIST_PART_BG, LV_STYLE_PAD_LEFT); + area_icon.x1 = ddlist->coords.x1 + lv_obj_get_style_int(ddlist, LV_DDLIST_PART_BG, LV_STYLE_PAD_LEFT); area_icon.x2 = area_icon.x1 + icon_width; } @@ -718,8 +718,8 @@ static lv_res_t lv_ddlist_scrl_signal(lv_obj_t * scrl, lv_signal_t sign, void * /* Make possible to draw on the full width of the background to redraw the selected rectangle * when the ddlist is scrolled in fix height mode. * (The scrollabel is scrolled the "select rectangle" is drawn on the bg too)*/ - lv_style_value_t left = lv_obj_get_style_value(ddlist, LV_DDLIST_PART_BG, LV_STYLE_PAD_LEFT); - lv_style_value_t right = lv_obj_get_style_value(ddlist, LV_DDLIST_PART_BG, LV_STYLE_PAD_RIGHT); + lv_style_int_t left = lv_obj_get_style_int(ddlist, LV_DDLIST_PART_BG, LV_STYLE_PAD_LEFT); + lv_style_int_t right = lv_obj_get_style_int(ddlist, LV_DDLIST_PART_BG, LV_STYLE_PAD_RIGHT); ddlist->ext_draw_pad = LV_MATH_MAX(ddlist->ext_draw_pad, LV_MATH_MAX(left, right)); } else if(sign == LV_SIGNAL_RELEASED) { if(lv_indev_is_dragging(lv_indev_get_act()) == false) { @@ -853,8 +853,8 @@ static void lv_ddlist_refr_size(lv_obj_t * ddlist, lv_anim_enable_t anim) /*Open the list*/ if(ext->opened) { if(ext->fix_height == 0) { - lv_style_value_t top = lv_obj_get_style_value(ddlist, LV_DDLIST_PART_BG, LV_STYLE_PAD_TOP); - lv_style_value_t bottom = lv_obj_get_style_value(ddlist, LV_DDLIST_PART_BG, LV_STYLE_PAD_BOTTOM); + lv_style_int_t top = lv_obj_get_style_int(ddlist, LV_DDLIST_PART_BG, LV_STYLE_PAD_TOP); + lv_style_int_t bottom = lv_obj_get_style_int(ddlist, LV_DDLIST_PART_BG, LV_STYLE_PAD_BOTTOM); new_height = lv_obj_get_height(lv_page_get_scrl(ddlist)) + top + bottom; } else { new_height = ext->fix_height; @@ -865,7 +865,7 @@ static void lv_ddlist_refr_size(lv_obj_t * ddlist, lv_anim_enable_t anim) else { const lv_font_t * font = lv_obj_get_style_ptr(ddlist, LV_DDLIST_PART_BG, LV_STYLE_FONT); lv_coord_t font_h = lv_font_get_line_height(font); - new_height = font_h + 2 * lv_obj_get_style_value(ddlist, LV_DDLIST_PART_BG, LV_STYLE_LINE_SPACE); + new_height = font_h + 2 * lv_obj_get_style_int(ddlist, LV_DDLIST_PART_BG, LV_STYLE_LINE_SPACE); lv_page_set_sb_mode(ddlist, LV_SB_MODE_HIDE); } @@ -954,7 +954,7 @@ static void lv_ddlist_pos_current_option(lv_obj_t * ddlist) lv_obj_t * scrl = lv_page_get_scrl(ddlist); lv_coord_t h = lv_obj_get_height(ddlist); - lv_style_value_t line_space = lv_obj_get_style_value(ddlist, LV_DDLIST_PART_BG, LV_STYLE_LINE_SPACE); + lv_style_int_t line_space = lv_obj_get_style_int(ddlist, LV_DDLIST_PART_BG, LV_STYLE_LINE_SPACE); lv_coord_t line_y1 = ext->sel_opt_id * (font_h + line_space) + ext->label->coords.y1 - scrl->coords.y1; diff --git a/src/lv_objx/lv_gauge.c b/src/lv_objx/lv_gauge.c index 6d5d947cd..b3e7dcad7 100644 --- a/src/lv_objx/lv_gauge.c +++ b/src/lv_objx/lv_gauge.c @@ -439,8 +439,8 @@ static void lv_gauge_draw_labels(lv_obj_t * gauge, const lv_area_t * mask) char scale_txt[16]; lv_gauge_ext_t * ext = lv_obj_get_ext_attr(gauge); - lv_style_value_t scale_width = lv_obj_get_style_value(gauge, LV_GAUGE_PART_STRONG, LV_STYLE_SCALE_WIDTH); - lv_style_value_t txt_pad = lv_obj_get_style_value(gauge, LV_GAUGE_PART_STRONG, LV_STYLE_PAD_INNER); + lv_style_int_t scale_width = lv_obj_get_style_int(gauge, LV_GAUGE_PART_STRONG, LV_STYLE_SCALE_WIDTH); + lv_style_int_t txt_pad = lv_obj_get_style_int(gauge, LV_GAUGE_PART_STRONG, LV_STYLE_PAD_INNER); lv_coord_t r = lv_obj_get_width(gauge) / 2 - scale_width - txt_pad; lv_coord_t x_ofs = lv_obj_get_width(gauge) / 2 + gauge->coords.x1; lv_coord_t y_ofs = lv_obj_get_height(gauge) / 2 + gauge->coords.y1; @@ -492,7 +492,7 @@ static void lv_gauge_draw_needle(lv_obj_t * gauge, const lv_area_t * clip_area) { lv_gauge_ext_t * ext = lv_obj_get_ext_attr(gauge); - lv_style_value_t scale_width = lv_obj_get_style_value(gauge, LV_GAUGE_PART_STRONG, LV_STYLE_SCALE_WIDTH); + lv_style_int_t scale_width = lv_obj_get_style_int(gauge, LV_GAUGE_PART_STRONG, LV_STYLE_SCALE_WIDTH); lv_coord_t r = lv_obj_get_width(gauge) / 2 - scale_width; lv_coord_t x_ofs = lv_obj_get_width(gauge) / 2 + gauge->coords.x1; lv_coord_t y_ofs = lv_obj_get_height(gauge) / 2 + gauge->coords.y1; @@ -558,7 +558,7 @@ static void lv_gauge_draw_needle(lv_obj_t * gauge, const lv_area_t * clip_area) lv_draw_rect_dsc_t mid_dsc; lv_draw_rect_dsc_init(&mid_dsc); lv_obj_init_draw_rect_dsc(gauge, LV_GAUGE_PART_MAIN, &mid_dsc); - lv_style_value_t size = lv_obj_get_style_value(gauge, LV_GAUGE_PART_MAIN, LV_STYLE_SIZE) / 2; + lv_style_int_t size = lv_obj_get_style_int(gauge, LV_GAUGE_PART_MAIN, LV_STYLE_SIZE) / 2; lv_area_t nm_cord; nm_cord.x1 = x_ofs - size; nm_cord.y1 = y_ofs - size; diff --git a/src/lv_objx/lv_img.c b/src/lv_objx/lv_img.c index b5b38daf9..e4bf6cab0 100644 --- a/src/lv_objx/lv_img.c +++ b/src/lv_objx/lv_img.c @@ -192,8 +192,8 @@ void lv_img_set_src(lv_obj_t * img, const void * src_img) if(src_type == LV_IMG_SRC_SYMBOL) { /*`lv_img_dsc_get_info` couldn't set the with and height of a font so set it here*/ const lv_font_t * font = lv_obj_get_style_ptr(img, LV_IMG_PART_MAIN, LV_STYLE_FONT); - lv_style_value_t letter_space = lv_obj_get_style_value(img, LV_IMG_PART_MAIN, LV_STYLE_LETTER_SPACE); - lv_style_value_t line_space = lv_obj_get_style_value(img, LV_IMG_PART_MAIN, LV_STYLE_LINE_SPACE); + lv_style_int_t letter_space = lv_obj_get_style_int(img, LV_IMG_PART_MAIN, LV_STYLE_LETTER_SPACE); + lv_style_int_t line_space = lv_obj_get_style_int(img, LV_IMG_PART_MAIN, LV_STYLE_LINE_SPACE); lv_point_t size; lv_txt_get_size(&size, src_img, font, letter_space, line_space, LV_COORD_MAX, LV_TXT_FLAG_NONE); diff --git a/src/lv_objx/lv_label.c b/src/lv_objx/lv_label.c index 505e9ed22..e26a9840f 100644 --- a/src/lv_objx/lv_label.c +++ b/src/lv_objx/lv_label.c @@ -595,8 +595,8 @@ void lv_label_get_letter_pos(const lv_obj_t * label, uint16_t char_id, lv_point_ uint32_t new_line_start = 0; lv_coord_t max_w = lv_obj_get_width(label); const lv_font_t * font = lv_obj_get_style_ptr(label, LV_LABEL_PART_MAIN, LV_STYLE_FONT); - lv_style_value_t line_space = lv_obj_get_style_value(label, LV_LABEL_PART_MAIN, LV_STYLE_LINE_SPACE); - lv_style_value_t letter_space = lv_obj_get_style_value(label, LV_LABEL_PART_MAIN, LV_STYLE_LETTER_SPACE); + lv_style_int_t line_space = lv_obj_get_style_int(label, LV_LABEL_PART_MAIN, LV_STYLE_LINE_SPACE); + lv_style_int_t letter_space = lv_obj_get_style_int(label, LV_LABEL_PART_MAIN, LV_STYLE_LETTER_SPACE); lv_coord_t letter_height = lv_font_get_line_height(font); lv_coord_t y = 0; lv_txt_flag_t flag = LV_TXT_FLAG_NONE; @@ -699,8 +699,8 @@ uint16_t lv_label_get_letter_on(const lv_obj_t * label, lv_point_t * pos) uint32_t new_line_start = 0; lv_coord_t max_w = lv_obj_get_width(label); const lv_font_t * font = lv_obj_get_style_ptr(label, LV_LABEL_PART_MAIN, LV_STYLE_FONT); - lv_style_value_t line_space = lv_obj_get_style_value(label, LV_LABEL_PART_MAIN, LV_STYLE_LINE_SPACE); - lv_style_value_t letter_space = lv_obj_get_style_value(label, LV_LABEL_PART_MAIN, LV_STYLE_LETTER_SPACE); + lv_style_int_t line_space = lv_obj_get_style_int(label, LV_LABEL_PART_MAIN, LV_STYLE_LINE_SPACE); + lv_style_int_t letter_space = lv_obj_get_style_int(label, LV_LABEL_PART_MAIN, LV_STYLE_LETTER_SPACE); lv_coord_t letter_height = lv_font_get_line_height(font); lv_coord_t y = 0; lv_txt_flag_t flag = LV_TXT_FLAG_NONE; @@ -860,8 +860,8 @@ bool lv_label_is_char_under_pos(const lv_obj_t * label, lv_point_t * pos) uint32_t new_line_start = 0; lv_coord_t max_w = lv_obj_get_width(label); const lv_font_t * font = lv_obj_get_style_ptr(label, LV_LABEL_PART_MAIN, LV_STYLE_FONT); - lv_style_value_t line_space = lv_obj_get_style_value(label, LV_LABEL_PART_MAIN, LV_STYLE_LINE_SPACE); - lv_style_value_t letter_space = lv_obj_get_style_value(label, LV_LABEL_PART_MAIN, LV_STYLE_LETTER_SPACE); + lv_style_int_t line_space = lv_obj_get_style_int(label, LV_LABEL_PART_MAIN, LV_STYLE_LINE_SPACE); + lv_style_int_t letter_space = lv_obj_get_style_int(label, LV_LABEL_PART_MAIN, LV_STYLE_LETTER_SPACE); lv_coord_t letter_height = lv_font_get_line_height(font); lv_coord_t y = 0; lv_txt_flag_t flag = LV_TXT_FLAG_NONE; @@ -1054,10 +1054,10 @@ static lv_design_res_t lv_label_design(lv_obj_t * label, const lv_area_t * clip_ lv_area_t bg; lv_obj_get_coords(label, &bg); - lv_coord_t left = lv_obj_get_style_value(label, LV_LABEL_PART_MAIN, LV_STYLE_PAD_LEFT); - lv_coord_t right = lv_obj_get_style_value(label, LV_LABEL_PART_MAIN, LV_STYLE_PAD_RIGHT); - lv_coord_t top = lv_obj_get_style_value(label, LV_LABEL_PART_MAIN, LV_STYLE_PAD_TOP); - lv_coord_t bottom = lv_obj_get_style_value(label, LV_LABEL_PART_MAIN, LV_STYLE_PAD_BOTTOM); + lv_coord_t left = lv_obj_get_style_int(label, LV_LABEL_PART_MAIN, LV_STYLE_PAD_LEFT); + lv_coord_t right = lv_obj_get_style_int(label, LV_LABEL_PART_MAIN, LV_STYLE_PAD_RIGHT); + lv_coord_t top = lv_obj_get_style_int(label, LV_LABEL_PART_MAIN, LV_STYLE_PAD_TOP); + lv_coord_t bottom = lv_obj_get_style_int(label, LV_LABEL_PART_MAIN, LV_STYLE_PAD_BOTTOM); bg.x1 -= left; bg.x2 += right; bg.y1 -= top; @@ -1182,10 +1182,10 @@ static lv_res_t lv_label_signal(lv_obj_t * label, lv_signal_t sign, void * param } } else if(sign == LV_SIGNAL_REFR_EXT_DRAW_PAD) { if(ext->body_draw) { - lv_coord_t left = lv_obj_get_style_value(label, LV_LABEL_PART_MAIN, LV_STYLE_PAD_LEFT); - lv_coord_t right = lv_obj_get_style_value(label, LV_LABEL_PART_MAIN, LV_STYLE_PAD_RIGHT); - lv_coord_t top = lv_obj_get_style_value(label, LV_LABEL_PART_MAIN, LV_STYLE_PAD_TOP); - lv_coord_t bottom = lv_obj_get_style_value(label, LV_LABEL_PART_MAIN, LV_STYLE_PAD_BOTTOM); + lv_coord_t left = lv_obj_get_style_int(label, LV_LABEL_PART_MAIN, LV_STYLE_PAD_LEFT); + lv_coord_t right = lv_obj_get_style_int(label, LV_LABEL_PART_MAIN, LV_STYLE_PAD_RIGHT); + lv_coord_t top = lv_obj_get_style_int(label, LV_LABEL_PART_MAIN, LV_STYLE_PAD_TOP); + lv_coord_t bottom = lv_obj_get_style_int(label, LV_LABEL_PART_MAIN, LV_STYLE_PAD_BOTTOM); label->ext_draw_pad = LV_MATH_MAX(label->ext_draw_pad, left); label->ext_draw_pad = LV_MATH_MAX(label->ext_draw_pad, right); label->ext_draw_pad = LV_MATH_MAX(label->ext_draw_pad, top); @@ -1223,8 +1223,8 @@ static void lv_label_refr_text(lv_obj_t * label) lv_coord_t max_w = lv_obj_get_width(label); const lv_font_t * font = lv_obj_get_style_ptr(label, LV_LABEL_PART_MAIN, LV_STYLE_FONT); - lv_style_value_t line_space = lv_obj_get_style_value(label, LV_LABEL_PART_MAIN, LV_STYLE_LINE_SPACE); - lv_style_value_t letter_space = lv_obj_get_style_value(label, LV_LABEL_PART_MAIN, LV_STYLE_LETTER_SPACE); + lv_style_int_t line_space = lv_obj_get_style_int(label, LV_LABEL_PART_MAIN, LV_STYLE_LINE_SPACE); + lv_style_int_t letter_space = lv_obj_get_style_int(label, LV_LABEL_PART_MAIN, LV_STYLE_LETTER_SPACE); /*If the width will be expanded set the max length to very big */ if(ext->long_mode == LV_LABEL_LONG_EXPAND) { diff --git a/src/lv_objx/lv_line.c b/src/lv_objx/lv_line.c index 0769958f9..61263b985 100644 --- a/src/lv_objx/lv_line.c +++ b/src/lv_objx/lv_line.c @@ -127,7 +127,7 @@ void lv_line_set_points(lv_obj_t * line, const lv_point_t point_a[], uint16_t po ymax = LV_MATH_MAX(point_a[i].y, ymax); } - lv_style_value_t line_width = lv_obj_get_style_value(line, LV_LINE_PART_MAIN, LV_STYLE_LINE_WIDTH); + lv_style_int_t line_width = lv_obj_get_style_int(line, LV_LINE_PART_MAIN, LV_STYLE_LINE_WIDTH); lv_obj_set_size(line, xmax + line_width, ymax + line_width); } @@ -281,7 +281,7 @@ static lv_res_t lv_line_signal(lv_obj_t * line, lv_signal_t sign, void * param) if(sign == LV_SIGNAL_REFR_EXT_DRAW_PAD) { /*The corner of the skew lines is out of the intended area*/ - lv_style_value_t * line_width = lv_obj_get_style_value(line, LV_LINE_PART_MAIN, LV_STYLE_LINE_WIDTH); + lv_style_int_t * line_width = lv_obj_get_style_int(line, LV_LINE_PART_MAIN, LV_STYLE_LINE_WIDTH); if(line->ext_draw_pad < line_width) line->ext_draw_pad = line_width; } diff --git a/src/lv_objx/lv_list.c b/src/lv_objx/lv_list.c index 0d90574f7..f1ce4c8f9 100644 --- a/src/lv_objx/lv_list.c +++ b/src/lv_objx/lv_list.c @@ -210,11 +210,11 @@ lv_obj_t * lv_list_add_btn(lv_obj_t * list, const void * img_src, const char * t lv_obj_set_click(label, false); lv_label_set_long_mode(label, LV_LABEL_LONG_SROLL_CIRC); if(lv_obj_get_base_dir(liste) == LV_BIDI_DIR_RTL) { - lv_coord_t pad = lv_obj_get_style_value(liste, LV_BTN_PART_MAIN, LV_STYLE_PAD_LEFT); + lv_coord_t pad = lv_obj_get_style_int(liste, LV_BTN_PART_MAIN, LV_STYLE_PAD_LEFT); lv_obj_set_width(label, label->coords.x2 - liste->coords.x1 - pad); } else { - lv_coord_t pad = lv_obj_get_style_value(liste, LV_BTN_PART_MAIN, LV_STYLE_PAD_RIGHT); + lv_coord_t pad = lv_obj_get_style_int(liste, LV_BTN_PART_MAIN, LV_STYLE_PAD_RIGHT); lv_obj_set_width(label, liste->coords.x2 - label->coords.x1 - pad); } if(label_signal == NULL) label_signal = lv_obj_get_signal_cb(label); @@ -854,11 +854,11 @@ static lv_res_t lv_list_btn_signal(lv_obj_t * btn, lv_signal_t sign, void * para const lv_font_t * font = lv_obj_get_style_ptr(label, LV_LABEL_PART_MAIN, LV_STYLE_FONT); lv_coord_t font_h = lv_font_get_line_height(font); if(lv_obj_get_base_dir(btn) == LV_BIDI_DIR_RTL) { - lv_coord_t pad = lv_obj_get_style_value(btn, LV_BTN_PART_MAIN, LV_STYLE_PAD_LEFT); + lv_coord_t pad = lv_obj_get_style_int(btn, LV_BTN_PART_MAIN, LV_STYLE_PAD_LEFT); lv_obj_set_size(label, label->coords.x2 - btn->coords.x1 - pad, font_h); } else { - lv_coord_t pad = lv_obj_get_style_value(btn, LV_BTN_PART_MAIN, LV_STYLE_PAD_RIGHT); + lv_coord_t pad = lv_obj_get_style_int(btn, LV_BTN_PART_MAIN, LV_STYLE_PAD_RIGHT); lv_obj_set_size(label, btn->coords.x2 - label->coords.x1 - pad, font_h); } } diff --git a/src/lv_objx/lv_lmeter.c b/src/lv_objx/lv_lmeter.c index 595b86dbd..876989ccd 100644 --- a/src/lv_objx/lv_lmeter.c +++ b/src/lv_objx/lv_lmeter.c @@ -273,7 +273,7 @@ void lv_lmeter_draw_scale(lv_obj_t * lmeter, const lv_area_t * clip_area, uint8_ lv_lmeter_ext_t * ext = lv_obj_get_ext_attr(lmeter); lv_coord_t r_out = lv_obj_get_width(lmeter) / 2; - lv_coord_t r_in = r_out - lv_obj_get_style_value(lmeter, part, LV_STYLE_SCALE_WIDTH); + lv_coord_t r_in = r_out - lv_obj_get_style_int(lmeter, part, LV_STYLE_SCALE_WIDTH); if(r_in < 1) r_in = 1; lv_coord_t x_ofs = lv_obj_get_width(lmeter) / 2 + lmeter->coords.x1; diff --git a/src/lv_objx/lv_page.c b/src/lv_objx/lv_page.c index abeb16219..0969bc7ea 100644 --- a/src/lv_objx/lv_page.c +++ b/src/lv_objx/lv_page.c @@ -347,10 +347,10 @@ lv_coord_t lv_page_get_fit_width(lv_obj_t * page) { LV_ASSERT_OBJ(page, LV_OBJX_NAME); - lv_style_value_t bg_left = lv_obj_get_style_value(page, LV_PAGE_PART_BG, LV_STYLE_PAD_LEFT); - lv_style_value_t bg_right = lv_obj_get_style_value(page, LV_PAGE_PART_BG, LV_STYLE_PAD_RIGHT); - lv_style_value_t scrl_left = lv_obj_get_style_value(page, LV_PAGE_PART_SCRL, LV_STYLE_PAD_LEFT); - lv_style_value_t scrl_right = lv_obj_get_style_value(page, LV_PAGE_PART_SCRL, LV_STYLE_PAD_RIGHT); + lv_style_int_t bg_left = lv_obj_get_style_int(page, LV_PAGE_PART_BG, LV_STYLE_PAD_LEFT); + lv_style_int_t bg_right = lv_obj_get_style_int(page, LV_PAGE_PART_BG, LV_STYLE_PAD_RIGHT); + lv_style_int_t scrl_left = lv_obj_get_style_int(page, LV_PAGE_PART_SCRL, LV_STYLE_PAD_LEFT); + lv_style_int_t scrl_right = lv_obj_get_style_int(page, LV_PAGE_PART_SCRL, LV_STYLE_PAD_RIGHT); return lv_obj_get_width(page) - bg_left - bg_right - scrl_left - scrl_right; } @@ -364,10 +364,10 @@ lv_coord_t lv_page_get_fit_height(lv_obj_t * page) { LV_ASSERT_OBJ(page, LV_OBJX_NAME); - lv_style_value_t bg_top = lv_obj_get_style_value(page, LV_PAGE_PART_BG, LV_STYLE_PAD_TOP); - lv_style_value_t bg_bottom = lv_obj_get_style_value(page, LV_PAGE_PART_BG, LV_STYLE_PAD_BOTTOM); - lv_style_value_t scrl_top = lv_obj_get_style_value(page, LV_PAGE_PART_SCRL, LV_STYLE_PAD_TOP); - lv_style_value_t scrl_bottom = lv_obj_get_style_value(page, LV_PAGE_PART_SCRL, LV_STYLE_PAD_BOTTOM); + lv_style_int_t bg_top = lv_obj_get_style_int(page, LV_PAGE_PART_BG, LV_STYLE_PAD_TOP); + lv_style_int_t bg_bottom = lv_obj_get_style_int(page, LV_PAGE_PART_BG, LV_STYLE_PAD_BOTTOM); + lv_style_int_t scrl_top = lv_obj_get_style_int(page, LV_PAGE_PART_SCRL, LV_STYLE_PAD_TOP); + lv_style_int_t scrl_bottom = lv_obj_get_style_int(page, LV_PAGE_PART_SCRL, LV_STYLE_PAD_BOTTOM); return lv_obj_get_height(page) - bg_top - bg_bottom - scrl_top - scrl_bottom; } @@ -391,10 +391,10 @@ bool lv_page_on_edge(lv_obj_t * page, lv_page_edge_t edge) lv_obj_get_coords(scrl, &scrl_coords); lv_obj_get_coords(page, &page_coords); - lv_style_value_t left = lv_obj_get_style_value(page, LV_PAGE_PART_BG, LV_STYLE_PAD_LEFT); - lv_style_value_t right = lv_obj_get_style_value(page, LV_PAGE_PART_BG, LV_STYLE_PAD_RIGHT); - lv_style_value_t top = lv_obj_get_style_value(page, LV_PAGE_PART_BG, LV_STYLE_PAD_TOP); - lv_style_value_t bottom = lv_obj_get_style_value(page, LV_PAGE_PART_BG, LV_STYLE_PAD_BOTTOM); + lv_style_int_t left = lv_obj_get_style_int(page, LV_PAGE_PART_BG, LV_STYLE_PAD_LEFT); + lv_style_int_t right = lv_obj_get_style_int(page, LV_PAGE_PART_BG, LV_STYLE_PAD_RIGHT); + lv_style_int_t top = lv_obj_get_style_int(page, LV_PAGE_PART_BG, LV_STYLE_PAD_TOP); + lv_style_int_t bottom = lv_obj_get_style_int(page, LV_PAGE_PART_BG, LV_STYLE_PAD_BOTTOM); if((edge & LV_PAGE_EDGE_TOP) && scrl_coords.y1 == page_coords.y1 + top) return true; if((edge & LV_PAGE_EDGE_BOTTOM) && scrl_coords.y2 == page_coords.y2 - bottom) return true; @@ -444,10 +444,10 @@ void lv_page_focus(lv_obj_t * page, const lv_obj_t * obj, lv_anim_enable_t anim_ lv_coord_t top_err = -(scrlable_y + obj_y); lv_coord_t bot_err = scrlable_y + obj_y + obj_h - page_h; - lv_style_value_t bg_top = lv_obj_get_style_value(page, LV_PAGE_PART_BG, LV_STYLE_PAD_TOP); - lv_style_value_t bg_bottom = lv_obj_get_style_value(page, LV_PAGE_PART_BG, LV_STYLE_PAD_BOTTOM); - lv_style_value_t scrl_top = lv_obj_get_style_value(page, LV_PAGE_PART_SCRL, LV_STYLE_PAD_TOP); - lv_style_value_t scrl_bottom = lv_obj_get_style_value(page, LV_PAGE_PART_SCRL, LV_STYLE_PAD_BOTTOM); + lv_style_int_t bg_top = lv_obj_get_style_int(page, LV_PAGE_PART_BG, LV_STYLE_PAD_TOP); + lv_style_int_t bg_bottom = lv_obj_get_style_int(page, LV_PAGE_PART_BG, LV_STYLE_PAD_BOTTOM); + lv_style_int_t scrl_top = lv_obj_get_style_int(page, LV_PAGE_PART_SCRL, LV_STYLE_PAD_TOP); + lv_style_int_t scrl_bottom = lv_obj_get_style_int(page, LV_PAGE_PART_SCRL, LV_STYLE_PAD_BOTTOM); /*Out of the page on the top*/ if((obj_h <= page_h && top_err > 0) || (obj_h > page_h && top_err < bot_err)) { @@ -473,10 +473,10 @@ void lv_page_focus(lv_obj_t * page, const lv_obj_t * obj, lv_anim_enable_t anim_ lv_coord_t left_err = -(scrlable_x + obj_x); lv_coord_t right_err = scrlable_x + obj_x + obj_w - page_w; - lv_style_value_t bg_left = lv_obj_get_style_value(page, LV_PAGE_PART_BG, LV_STYLE_PAD_LEFT); - lv_style_value_t bg_right = lv_obj_get_style_value(page, LV_PAGE_PART_BG, LV_STYLE_PAD_RIGHT); - lv_style_value_t scrl_left = lv_obj_get_style_value(page, LV_PAGE_PART_SCRL, LV_STYLE_PAD_LEFT); - lv_style_value_t scrl_right = lv_obj_get_style_value(page, LV_PAGE_PART_SCRL, LV_STYLE_PAD_RIGHT); + lv_style_int_t bg_left = lv_obj_get_style_int(page, LV_PAGE_PART_BG, LV_STYLE_PAD_LEFT); + lv_style_int_t bg_right = lv_obj_get_style_int(page, LV_PAGE_PART_BG, LV_STYLE_PAD_RIGHT); + lv_style_int_t scrl_left = lv_obj_get_style_int(page, LV_PAGE_PART_SCRL, LV_STYLE_PAD_LEFT); + lv_style_int_t scrl_right = lv_obj_get_style_int(page, LV_PAGE_PART_SCRL, LV_STYLE_PAD_RIGHT); /*Out of the page on the left*/ if((obj_w <= page_w && left_err > 0) || (obj_w > page_w && left_err < right_err)) { @@ -652,10 +652,10 @@ static lv_design_res_t lv_page_design(lv_obj_t * page, const lv_area_t * clip_ar lv_draw_rect(&page->coords, clip_area, &draw_dsc); - if(lv_obj_get_style_value(page, LV_PAGE_PART_BG, LV_STYLE_CLIP_CORNER)) { + if(lv_obj_get_style_int(page, LV_PAGE_PART_BG, LV_STYLE_CLIP_CORNER)) { lv_draw_mask_radius_param_t * mp = lv_mem_buf_get(sizeof(lv_draw_mask_radius_param_t)); - lv_coord_t r = lv_obj_get_style_value(page, LV_PAGE_PART_BG, LV_STYLE_RADIUS); + lv_coord_t r = lv_obj_get_style_int(page, LV_PAGE_PART_BG, LV_STYLE_RADIUS); lv_draw_mask_radius_init(mp, &page->coords, r, false); /*Add the mask and use `page+8` as custom id. Don't use `page` directly because it might be sued by the user*/ @@ -738,7 +738,7 @@ static lv_design_res_t lv_page_design(lv_obj_t * page, const lv_area_t * clip_ar } #endif - if(lv_obj_get_style_value(page, LV_PAGE_PART_BG, LV_STYLE_CLIP_CORNER)) { + if(lv_obj_get_style_int(page, LV_PAGE_PART_BG, LV_STYLE_CLIP_CORNER)) { void * param = lv_draw_mask_remove_custom(page + 8); lv_mem_buf_release(param); } @@ -793,9 +793,9 @@ static lv_res_t lv_page_signal(lv_obj_t * page, lv_signal_t sign, void * param) lv_fit_t fit_top = lv_page_get_scrl_fit_top(page); lv_bidi_dir_t base_dir = lv_obj_get_base_dir(page); - lv_style_value_t scrl_left = lv_obj_get_style_value(page, LV_PAGE_PART_SCRL, LV_STYLE_PAD_LEFT); - lv_style_value_t scrl_right = lv_obj_get_style_value(page, LV_PAGE_PART_SCRL, LV_STYLE_PAD_RIGHT); - lv_style_value_t scrl_top = lv_obj_get_style_value(page, LV_PAGE_PART_SCRL, LV_STYLE_PAD_TOP); + lv_style_int_t scrl_left = lv_obj_get_style_int(page, LV_PAGE_PART_SCRL, LV_STYLE_PAD_LEFT); + lv_style_int_t scrl_right = lv_obj_get_style_int(page, LV_PAGE_PART_SCRL, LV_STYLE_PAD_RIGHT); + lv_style_int_t scrl_top = lv_obj_get_style_int(page, LV_PAGE_PART_SCRL, LV_STYLE_PAD_TOP); child = lv_obj_get_child(page, NULL); while(child != NULL) { @@ -829,7 +829,7 @@ static lv_res_t lv_page_signal(lv_obj_t * page, lv_signal_t sign, void * param) } else if(sign == LV_SIGNAL_STYLE_CHG) { ext->scrl->signal_cb(ext->scrl, LV_SIGNAL_COORD_CHG, &ext->scrl->coords); - lv_style_value_t sb_width = lv_obj_get_style_value(page, LV_PAGE_PART_SCRLBAR, LV_STYLE_SIZE); + lv_style_int_t sb_width = lv_obj_get_style_int(page, LV_PAGE_PART_SCRLBAR, LV_STYLE_SIZE); lv_area_set_height(&ext->sb.hor_area, sb_width); lv_area_set_width(&ext->sb.ver_area, sb_width); @@ -850,8 +850,8 @@ static lv_res_t lv_page_signal(lv_obj_t * page, lv_signal_t sign, void * param) } } else if(sign == LV_SIGNAL_REFR_EXT_DRAW_PAD) { - lv_style_value_t sb_bottom = lv_obj_get_style_value(page, LV_PAGE_PART_SCRLBAR, LV_STYLE_PAD_BOTTOM); - lv_style_value_t sb_right = lv_obj_get_style_value(page, LV_PAGE_PART_SCRLBAR, LV_STYLE_PAD_RIGHT); + lv_style_int_t sb_bottom = lv_obj_get_style_int(page, LV_PAGE_PART_SCRLBAR, LV_STYLE_PAD_BOTTOM); + lv_style_int_t sb_right = lv_obj_get_style_int(page, LV_PAGE_PART_SCRLBAR, LV_STYLE_PAD_RIGHT); /*Ensure ext. size for the scrollbars if they are out of the page*/ if(page->ext_draw_pad < (-sb_right)) page->ext_draw_pad = -sb_right; @@ -951,10 +951,10 @@ static lv_res_t lv_page_scrollable_signal(lv_obj_t * scrl, lv_signal_t sign, voi } } - lv_style_value_t left = lv_obj_get_style_value(page, LV_PAGE_PART_BG, LV_STYLE_PAD_LEFT); - lv_style_value_t right = lv_obj_get_style_value(page, LV_PAGE_PART_BG, LV_STYLE_PAD_RIGHT); - lv_style_value_t top = lv_obj_get_style_value(page, LV_PAGE_PART_BG, LV_STYLE_PAD_TOP); - lv_style_value_t bottom = lv_obj_get_style_value(page, LV_PAGE_PART_BG, LV_STYLE_PAD_BOTTOM); + lv_style_int_t left = lv_obj_get_style_int(page, LV_PAGE_PART_BG, LV_STYLE_PAD_LEFT); + lv_style_int_t right = lv_obj_get_style_int(page, LV_PAGE_PART_BG, LV_STYLE_PAD_RIGHT); + lv_style_int_t top = lv_obj_get_style_int(page, LV_PAGE_PART_BG, LV_STYLE_PAD_TOP); + lv_style_int_t bottom = lv_obj_get_style_int(page, LV_PAGE_PART_BG, LV_STYLE_PAD_BOTTOM); /*scrollable width smaller then page width? -> align to left*/ if(lv_area_get_width(&scrl_coords) + left +right <= lv_area_get_width(&page_coords)) { @@ -1119,14 +1119,14 @@ static void lv_page_sb_refresh(lv_obj_t * page) lv_coord_t obj_w = lv_obj_get_width(page); lv_coord_t obj_h = lv_obj_get_height(page); - lv_style_value_t sb_width = lv_obj_get_style_value(page, LV_PAGE_PART_SCRLBAR, LV_STYLE_SIZE); - lv_style_value_t sb_right = lv_obj_get_style_value(page, LV_PAGE_PART_SCRLBAR, LV_STYLE_PAD_RIGHT); - lv_style_value_t sb_bottom = lv_obj_get_style_value(page, LV_PAGE_PART_SCRLBAR, LV_STYLE_PAD_BOTTOM); + lv_style_int_t sb_width = lv_obj_get_style_int(page, LV_PAGE_PART_SCRLBAR, LV_STYLE_SIZE); + lv_style_int_t sb_right = lv_obj_get_style_int(page, LV_PAGE_PART_SCRLBAR, LV_STYLE_PAD_RIGHT); + lv_style_int_t sb_bottom = lv_obj_get_style_int(page, LV_PAGE_PART_SCRLBAR, LV_STYLE_PAD_BOTTOM); - lv_style_value_t bg_left = lv_obj_get_style_value(page, LV_PAGE_PART_BG, LV_STYLE_PAD_LEFT); - lv_style_value_t bg_right = lv_obj_get_style_value(page, LV_PAGE_PART_BG, LV_STYLE_PAD_RIGHT); - lv_style_value_t bg_top = lv_obj_get_style_value(page, LV_PAGE_PART_BG, LV_STYLE_PAD_TOP); - lv_style_value_t bg_bottom = lv_obj_get_style_value(page, LV_PAGE_PART_BG, LV_STYLE_PAD_BOTTOM); + lv_style_int_t bg_left = lv_obj_get_style_int(page, LV_PAGE_PART_BG, LV_STYLE_PAD_LEFT); + lv_style_int_t bg_right = lv_obj_get_style_int(page, LV_PAGE_PART_BG, LV_STYLE_PAD_RIGHT); + lv_style_int_t bg_top = lv_obj_get_style_int(page, LV_PAGE_PART_BG, LV_STYLE_PAD_TOP); + lv_style_int_t bg_bottom = lv_obj_get_style_int(page, LV_PAGE_PART_BG, LV_STYLE_PAD_BOTTOM); /*Always let 'scrollbar width' padding above, under, left and right to the scrollbars * else: diff --git a/src/lv_objx/lv_roller.c b/src/lv_objx/lv_roller.c index fcb03e6f6..77236b16d 100644 --- a/src/lv_objx/lv_roller.c +++ b/src/lv_objx/lv_roller.c @@ -224,7 +224,7 @@ void lv_roller_set_visible_row_count(lv_obj_t * roller, uint8_t row_cnt) uint8_t n_line_space = (row_cnt > 1) ? row_cnt - 1 : 1; const lv_font_t * font = lv_obj_get_style_ptr(roller, LV_ROLLER_PART_BG, LV_STYLE_FONT); - lv_style_value_t line_space = lv_obj_get_style_value(roller, LV_ROLLER_PART_BG, LV_STYLE_LINE_SPACE); + lv_style_int_t line_space = lv_obj_get_style_int(roller, LV_ROLLER_PART_BG, LV_STYLE_LINE_SPACE); lv_ddlist_set_fix_height(roller, lv_font_get_line_height(font) * row_cnt + line_space * n_line_space); } @@ -320,7 +320,7 @@ static lv_design_res_t lv_roller_design(lv_obj_t * roller, const lv_area_t * cli draw_bg(roller, clip_area); const lv_font_t * font = lv_obj_get_style_ptr(roller, LV_ROLLER_PART_BG, LV_STYLE_FONT); - lv_style_value_t line_space = lv_obj_get_style_value(roller, LV_ROLLER_PART_BG, LV_STYLE_LINE_SPACE); + lv_style_int_t line_space = lv_obj_get_style_int(roller, LV_ROLLER_PART_BG, LV_STYLE_LINE_SPACE); lv_coord_t font_h = lv_font_get_line_height(font); lv_area_t rect_area; rect_area.y1 = roller->coords.y1 + lv_obj_get_height(roller) / 2 - font_h / 2 - line_space / 2; @@ -525,7 +525,7 @@ static lv_res_t lv_roller_scrl_signal(lv_obj_t * roller_scrl, lv_signal_t sign, here*/ const lv_font_t * font = lv_obj_get_style_ptr(roller, LV_ROLLER_PART_BG, LV_STYLE_FONT); - lv_style_value_t line_space = lv_obj_get_style_value(roller, LV_ROLLER_PART_BG, LV_STYLE_LINE_SPACE); + lv_style_int_t line_space = lv_obj_get_style_int(roller, LV_ROLLER_PART_BG, LV_STYLE_LINE_SPACE); lv_coord_t font_h = lv_font_get_line_height(font); if(sign == LV_SIGNAL_DRAG_END) { @@ -630,7 +630,7 @@ static void refr_position(lv_obj_t * roller, lv_anim_enable_t anim_en) lv_obj_t * roller_scrl = lv_page_get_scrl(roller); lv_roller_ext_t * ext = lv_obj_get_ext_attr(roller); const lv_font_t * font = lv_obj_get_style_ptr(roller, LV_ROLLER_PART_BG, LV_STYLE_FONT); - lv_style_value_t line_space = lv_obj_get_style_value(roller, LV_ROLLER_PART_BG, LV_STYLE_LINE_SPACE); + lv_style_int_t line_space = lv_obj_get_style_int(roller, LV_ROLLER_PART_BG, LV_STYLE_LINE_SPACE); lv_coord_t font_h = lv_font_get_line_height(font); lv_coord_t h = lv_obj_get_height(roller); uint16_t anim_time = lv_roller_get_anim_time(roller); @@ -711,7 +711,7 @@ static void inf_normalize(void * scrl) /*Move to the new id*/ const lv_font_t * font = lv_obj_get_style_ptr(roller, LV_ROLLER_PART_BG, LV_STYLE_FONT); - lv_style_value_t line_space = lv_obj_get_style_value(roller, LV_ROLLER_PART_BG, LV_STYLE_LINE_SPACE); + lv_style_int_t line_space = lv_obj_get_style_int(roller, LV_ROLLER_PART_BG, LV_STYLE_LINE_SPACE); lv_coord_t font_h = lv_font_get_line_height(font); lv_coord_t h = lv_obj_get_height(roller); diff --git a/src/lv_objx/lv_slider.c b/src/lv_objx/lv_slider.c index d6d40c9c7..cca45130d 100644 --- a/src/lv_objx/lv_slider.c +++ b/src/lv_objx/lv_slider.c @@ -277,10 +277,10 @@ static lv_res_t lv_slider_signal(lv_obj_t * slider, lv_signal_t sign, void * par lv_coord_t w = lv_obj_get_width(slider); lv_coord_t h = lv_obj_get_height(slider); - lv_style_value_t bg_left = lv_obj_get_style_value(slider, LV_SLIDER_PART_BG, LV_STYLE_PAD_LEFT); - lv_style_value_t bg_right = lv_obj_get_style_value(slider, LV_SLIDER_PART_BG, LV_STYLE_PAD_RIGHT); - lv_style_value_t bg_top = lv_obj_get_style_value(slider, LV_SLIDER_PART_BG, LV_STYLE_PAD_TOP); - lv_style_value_t bg_bottom = lv_obj_get_style_value(slider, LV_SLIDER_PART_BG, LV_STYLE_PAD_BOTTOM); + lv_style_int_t bg_left = lv_obj_get_style_int(slider, LV_SLIDER_PART_BG, LV_STYLE_PAD_LEFT); + lv_style_int_t bg_right = lv_obj_get_style_int(slider, LV_SLIDER_PART_BG, LV_STYLE_PAD_RIGHT); + lv_style_int_t bg_top = lv_obj_get_style_int(slider, LV_SLIDER_PART_BG, LV_STYLE_PAD_TOP); + lv_style_int_t bg_bottom = lv_obj_get_style_int(slider, LV_SLIDER_PART_BG, LV_STYLE_PAD_BOTTOM); int32_t range = ext->bar.max_value - ext->bar.min_value; int16_t new_value = 0, real_max_value = ext->bar.max_value, real_min_value = ext->bar.min_value; @@ -336,35 +336,35 @@ static lv_res_t lv_slider_signal(lv_obj_t * slider, lv_signal_t sign, void * par slider->signal_cb(slider, LV_SIGNAL_REFR_EXT_DRAW_PAD, NULL); } } else if(sign == LV_SIGNAL_REFR_EXT_DRAW_PAD) { - lv_style_value_t knob_left = lv_obj_get_style_value(slider, LV_SLIDER_PART_KNOB, LV_STYLE_PAD_LEFT); - lv_style_value_t knob_right = lv_obj_get_style_value(slider, LV_SLIDER_PART_KNOB, LV_STYLE_PAD_RIGHT); - lv_style_value_t knob_top = lv_obj_get_style_value(slider, LV_SLIDER_PART_KNOB, LV_STYLE_PAD_TOP); - lv_style_value_t knob_bottom = lv_obj_get_style_value(slider, LV_SLIDER_PART_KNOB, LV_STYLE_PAD_BOTTOM); + lv_style_int_t knob_left = lv_obj_get_style_int(slider, LV_SLIDER_PART_KNOB, LV_STYLE_PAD_LEFT); + lv_style_int_t knob_right = lv_obj_get_style_int(slider, LV_SLIDER_PART_KNOB, LV_STYLE_PAD_RIGHT); + lv_style_int_t knob_top = lv_obj_get_style_int(slider, LV_SLIDER_PART_KNOB, LV_STYLE_PAD_TOP); + lv_style_int_t knob_bottom = lv_obj_get_style_int(slider, LV_SLIDER_PART_KNOB, LV_STYLE_PAD_BOTTOM); /* The smaller size is the knob diameter*/ lv_coord_t knob_size = LV_MATH_MIN(lv_obj_get_width(slider), lv_obj_get_height(slider)) >> 1; knob_size += LV_MATH_MAX(LV_MATH_MAX(knob_left, knob_right), LV_MATH_MAX(knob_bottom,knob_top)); - lv_style_value_t knob_sh_width = lv_obj_get_style_value(slider, LV_SLIDER_PART_KNOB, LV_STYLE_SHADOW_WIDTH); - lv_style_value_t knob_sh_spread = lv_obj_get_style_value(slider, LV_SLIDER_PART_KNOB, LV_STYLE_SHADOW_SPREAD); - lv_style_value_t knob_sh_ox = lv_obj_get_style_value(slider, LV_SLIDER_PART_KNOB, LV_STYLE_SHADOW_OFFSET_X); - lv_style_value_t knob_sh_oy = lv_obj_get_style_value(slider, LV_SLIDER_PART_KNOB, LV_STYLE_SHADOW_OFFSET_Y); + lv_style_int_t knob_sh_width = lv_obj_get_style_int(slider, LV_SLIDER_PART_KNOB, LV_STYLE_SHADOW_WIDTH); + lv_style_int_t knob_sh_spread = lv_obj_get_style_int(slider, LV_SLIDER_PART_KNOB, LV_STYLE_SHADOW_SPREAD); + lv_style_int_t knob_sh_ox = lv_obj_get_style_int(slider, LV_SLIDER_PART_KNOB, LV_STYLE_SHADOW_OFFSET_X); + lv_style_int_t knob_sh_oy = lv_obj_get_style_int(slider, LV_SLIDER_PART_KNOB, LV_STYLE_SHADOW_OFFSET_Y); knob_size += knob_sh_width + knob_sh_spread; knob_size += LV_MATH_MAX(LV_MATH_ABS(knob_sh_ox), LV_MATH_ABS(knob_sh_oy)); - lv_style_value_t bg_sh_width = lv_obj_get_style_value(slider, LV_SLIDER_PART_BG, LV_STYLE_SHADOW_WIDTH); - lv_style_value_t bg_sh_spread = lv_obj_get_style_value(slider, LV_SLIDER_PART_BG, LV_STYLE_SHADOW_SPREAD); - lv_style_value_t bg_sh_ox = lv_obj_get_style_value(slider, LV_SLIDER_PART_BG, LV_STYLE_SHADOW_OFFSET_X); - lv_style_value_t bg_sh_oy = lv_obj_get_style_value(slider, LV_SLIDER_PART_BG, LV_STYLE_SHADOW_OFFSET_Y); + lv_style_int_t bg_sh_width = lv_obj_get_style_int(slider, LV_SLIDER_PART_BG, LV_STYLE_SHADOW_WIDTH); + lv_style_int_t bg_sh_spread = lv_obj_get_style_int(slider, LV_SLIDER_PART_BG, LV_STYLE_SHADOW_SPREAD); + lv_style_int_t bg_sh_ox = lv_obj_get_style_int(slider, LV_SLIDER_PART_BG, LV_STYLE_SHADOW_OFFSET_X); + lv_style_int_t bg_sh_oy = lv_obj_get_style_int(slider, LV_SLIDER_PART_BG, LV_STYLE_SHADOW_OFFSET_Y); lv_coord_t bg_size = bg_sh_width + bg_sh_spread; bg_size += LV_MATH_MAX(LV_MATH_ABS(bg_sh_ox), LV_MATH_ABS(bg_sh_oy)); - lv_style_value_t indic_sh_width = lv_obj_get_style_value(slider, LV_SLIDER_PART_INDIC, LV_STYLE_SHADOW_WIDTH); - lv_style_value_t indic_sh_spread = lv_obj_get_style_value(slider, LV_SLIDER_PART_INDIC, LV_STYLE_SHADOW_SPREAD); - lv_style_value_t indic_sh_ox = lv_obj_get_style_value(slider, LV_SLIDER_PART_INDIC, LV_STYLE_SHADOW_OFFSET_X); - lv_style_value_t indic_sh_oy = lv_obj_get_style_value(slider, LV_SLIDER_PART_INDIC, LV_STYLE_SHADOW_OFFSET_Y); + lv_style_int_t indic_sh_width = lv_obj_get_style_int(slider, LV_SLIDER_PART_INDIC, LV_STYLE_SHADOW_WIDTH); + lv_style_int_t indic_sh_spread = lv_obj_get_style_int(slider, LV_SLIDER_PART_INDIC, LV_STYLE_SHADOW_SPREAD); + lv_style_int_t indic_sh_ox = lv_obj_get_style_int(slider, LV_SLIDER_PART_INDIC, LV_STYLE_SHADOW_OFFSET_X); + lv_style_int_t indic_sh_oy = lv_obj_get_style_int(slider, LV_SLIDER_PART_INDIC, LV_STYLE_SHADOW_OFFSET_Y); lv_coord_t indic_size = indic_sh_width + indic_sh_spread; indic_size += LV_MATH_MAX(LV_MATH_ABS(indic_sh_ox), LV_MATH_ABS(indic_sh_oy)); @@ -433,10 +433,10 @@ static void lv_slider_position_knob(lv_obj_t * slider, lv_area_t * knob_area, lv knob_area->x2 = slider->coords.x2; } - lv_style_value_t knob_left = lv_obj_get_style_value(slider, LV_SLIDER_PART_KNOB, LV_STYLE_PAD_LEFT); - lv_style_value_t knob_right = lv_obj_get_style_value(slider, LV_SLIDER_PART_KNOB, LV_STYLE_PAD_RIGHT); - lv_style_value_t knob_top = lv_obj_get_style_value(slider, LV_SLIDER_PART_KNOB, LV_STYLE_PAD_TOP); - lv_style_value_t knob_bottom = lv_obj_get_style_value(slider, LV_SLIDER_PART_KNOB, LV_STYLE_PAD_BOTTOM); + lv_style_int_t knob_left = lv_obj_get_style_int(slider, LV_SLIDER_PART_KNOB, LV_STYLE_PAD_LEFT); + lv_style_int_t knob_right = lv_obj_get_style_int(slider, LV_SLIDER_PART_KNOB, LV_STYLE_PAD_RIGHT); + lv_style_int_t knob_top = lv_obj_get_style_int(slider, LV_SLIDER_PART_KNOB, LV_STYLE_PAD_TOP); + lv_style_int_t knob_bottom = lv_obj_get_style_int(slider, LV_SLIDER_PART_KNOB, LV_STYLE_PAD_BOTTOM); /*Apply the paddings on the knob area*/ knob_area->x1 -= knob_left; diff --git a/src/lv_objx/lv_ta.c b/src/lv_objx/lv_ta.c index ba19cdc01..862e8d5b6 100644 --- a/src/lv_objx/lv_ta.c +++ b/src/lv_objx/lv_ta.c @@ -427,7 +427,7 @@ void lv_ta_del_char(lv_obj_t * ta) /*Don't let 'width == 0' because cursor will not be visible*/ if(lv_obj_get_width(ext->label) == 0) { - lv_style_value_t line_width = lv_obj_get_style_value(ta, LV_TA_PART_CURSOR, LV_STYLE_LINE_WIDTH); + lv_style_int_t line_width = lv_obj_get_style_int(ta, LV_TA_PART_CURSOR, LV_STYLE_LINE_WIDTH); lv_obj_set_width(ext->label, line_width); } @@ -497,7 +497,7 @@ void lv_ta_set_text(lv_obj_t * ta, const char * txt) /*Don't let 'width == 0' because the cursor will not be visible*/ if(lv_obj_get_width(ext->label) == 0) { - lv_style_value_t line_width = lv_obj_get_style_value(ta, LV_TA_PART_CURSOR, LV_STYLE_LINE_WIDTH); + lv_style_int_t line_width = lv_obj_get_style_int(ta, LV_TA_PART_CURSOR, LV_STYLE_LINE_WIDTH); lv_obj_set_width(ext->label, line_width); } @@ -590,8 +590,8 @@ void lv_ta_set_cursor_pos(lv_obj_t * ta, int16_t pos) lv_obj_t * label_par = lv_obj_get_parent(ext->label); lv_point_t cur_pos; const lv_font_t * font = lv_obj_get_style_ptr(ta, LV_TA_PART_BG, LV_STYLE_FONT); - lv_style_value_t top = lv_obj_get_style_value(ta, LV_TA_PART_BG, LV_STYLE_PAD_TOP); - lv_style_value_t bottom = lv_obj_get_style_value(ta, LV_TA_PART_BG, LV_STYLE_PAD_BOTTOM); + lv_style_int_t top = lv_obj_get_style_int(ta, LV_TA_PART_BG, LV_STYLE_PAD_TOP); + lv_style_int_t bottom = lv_obj_get_style_int(ta, LV_TA_PART_BG, LV_STYLE_PAD_BOTTOM); lv_area_t label_cords; lv_area_t ta_cords; lv_label_get_letter_pos(ext->label, pos, &cur_pos); @@ -613,8 +613,8 @@ void lv_ta_set_cursor_pos(lv_obj_t * ta, int16_t pos) lv_obj_set_x(label_par, -cur_pos.x + font_h); } - lv_style_value_t right = lv_obj_get_style_value(ta, LV_TA_PART_BG, LV_STYLE_PAD_RIGHT); - lv_style_value_t left = lv_obj_get_style_value(ta, LV_TA_PART_BG, LV_STYLE_PAD_LEFT); + lv_style_int_t right = lv_obj_get_style_int(ta, LV_TA_PART_BG, LV_STYLE_PAD_RIGHT); + lv_style_int_t left = lv_obj_get_style_int(ta, LV_TA_PART_BG, LV_STYLE_PAD_LEFT); /*Check the right (use the font_h as general unit)*/ if(label_cords.x1 + cur_pos.x + font_h + right > ta_cords.x2) { lv_obj_set_x(label_par, -(cur_pos.x - lv_obj_get_width(ta) + font_h + left + right)); @@ -734,9 +734,9 @@ void lv_ta_set_one_line(lv_obj_t * ta, bool en) if(ext->one_line == en) return; if(en) { - lv_style_value_t top = lv_obj_get_style_value(ta, LV_TA_PART_BG, LV_STYLE_PAD_TOP); - lv_style_value_t bottom = lv_obj_get_style_value(ta, LV_TA_PART_BG, LV_STYLE_PAD_BOTTOM); - lv_style_value_t left = lv_obj_get_style_value(ta, LV_TA_PART_BG, LV_STYLE_PAD_LEFT); + lv_style_int_t top = lv_obj_get_style_int(ta, LV_TA_PART_BG, LV_STYLE_PAD_TOP); + lv_style_int_t bottom = lv_obj_get_style_int(ta, LV_TA_PART_BG, LV_STYLE_PAD_BOTTOM); + lv_style_int_t left = lv_obj_get_style_int(ta, LV_TA_PART_BG, LV_STYLE_PAD_LEFT); const lv_font_t * font = lv_obj_get_style_ptr(ta, LV_TA_PART_BG, LV_STYLE_FONT); lv_coord_t font_h = lv_font_get_line_height(font); @@ -747,8 +747,8 @@ void lv_ta_set_one_line(lv_obj_t * ta, bool en) if(ext->placeholder) lv_label_set_long_mode(ext->placeholder, LV_LABEL_LONG_EXPAND); lv_obj_set_pos(lv_page_get_scrl(ta), left, top); } else { - lv_style_value_t top = lv_obj_get_style_value(ta, LV_TA_PART_BG, LV_STYLE_PAD_TOP); - lv_style_value_t left = lv_obj_get_style_value(ta, LV_TA_PART_BG, LV_STYLE_PAD_LEFT); + lv_style_int_t top = lv_obj_get_style_int(ta, LV_TA_PART_BG, LV_STYLE_PAD_TOP); + lv_style_int_t left = lv_obj_get_style_int(ta, LV_TA_PART_BG, LV_STYLE_PAD_LEFT); ext->one_line = 0; lv_page_set_scrl_fit2(ta, LV_FIT_FLOOD, LV_FIT_TIGHT); lv_label_set_long_mode(ext->label, LV_LABEL_LONG_BREAK); @@ -1210,7 +1210,7 @@ void lv_ta_cursor_down(lv_obj_t * ta) /*Increment the y with one line and keep the valid x*/ - lv_style_value_t line_space = lv_obj_get_style_value(ta, LV_TA_PART_BG, LV_STYLE_LINE_SPACE); + lv_style_int_t line_space = lv_obj_get_style_int(ta, LV_TA_PART_BG, LV_STYLE_LINE_SPACE); const lv_font_t * font = lv_obj_get_style_ptr(ta, LV_TA_PART_BG, LV_STYLE_FONT); lv_coord_t font_h = lv_font_get_line_height(font); pos.y += font_h + line_space + 1; @@ -1242,7 +1242,7 @@ void lv_ta_cursor_up(lv_obj_t * ta) lv_label_get_letter_pos(ext->label, lv_ta_get_cursor_pos(ta), &pos); /*Decrement the y with one line and keep the valid x*/ - lv_style_value_t line_space = lv_obj_get_style_value(ta, LV_TA_PART_BG, LV_STYLE_LINE_SPACE); + lv_style_int_t line_space = lv_obj_get_style_int(ta, LV_TA_PART_BG, LV_STYLE_LINE_SPACE); const lv_font_t * font = lv_obj_get_style_ptr(ta, LV_TA_PART_BG, LV_STYLE_FONT); lv_coord_t font_h = lv_font_get_line_height(font); pos.y -= font_h + line_space - 1; @@ -1342,8 +1342,8 @@ static lv_design_res_t lv_ta_scrollable_design(lv_obj_t * scrl, const lv_area_t char letter_buf[8] = {0}; memcpy(letter_buf, &txt[ext->cursor.txt_byte_pos], lv_txt_encoded_size(&txt[ext->cursor.txt_byte_pos])); - lv_style_value_t left = lv_obj_get_style_value(ta, LV_TA_PART_CURSOR, LV_STYLE_PAD_LEFT); - lv_style_value_t top = lv_obj_get_style_value(ta, LV_TA_PART_CURSOR, LV_STYLE_PAD_TOP); + lv_style_int_t left = lv_obj_get_style_int(ta, LV_TA_PART_CURSOR, LV_STYLE_PAD_LEFT); + lv_style_int_t top = lv_obj_get_style_int(ta, LV_TA_PART_CURSOR, LV_STYLE_PAD_TOP); cur_area.x1 += left; cur_area.y1 += top; @@ -1394,8 +1394,8 @@ static lv_res_t lv_ta_signal(lv_obj_t * ta, lv_signal_t sign, void * param) } else if(sign == LV_SIGNAL_STYLE_CHG) { if(ext->label) { if(ext->one_line) { - lv_style_value_t top = lv_obj_get_style_value(ta, LV_TA_PART_BG, LV_STYLE_PAD_TOP); - lv_style_value_t bottom = lv_obj_get_style_value(ta, LV_TA_PART_BG, LV_STYLE_PAD_BOTTOM); + lv_style_int_t top = lv_obj_get_style_int(ta, LV_TA_PART_BG, LV_STYLE_PAD_TOP); + lv_style_int_t bottom = lv_obj_get_style_int(ta, LV_TA_PART_BG, LV_STYLE_PAD_BOTTOM); const lv_font_t * font = lv_obj_get_style_ptr(ta, LV_TA_PART_BG, LV_STYLE_FONT); /*In one line mode refresh the Text Area height because 'vpad' can modify it*/ @@ -1510,7 +1510,7 @@ static lv_res_t lv_ta_scrollable_signal(lv_obj_t * scrl, lv_signal_t sign, void if(sign == LV_SIGNAL_REFR_EXT_DRAW_PAD) { /*Set ext. size because the cursor might be out of this object*/ - lv_style_value_t line_space = lv_obj_get_style_value(ta, LV_TA_PART_BG, LV_STYLE_LINE_SPACE); + lv_style_int_t line_space = lv_obj_get_style_int(ta, LV_TA_PART_BG, LV_STYLE_LINE_SPACE); const lv_font_t * font = lv_obj_get_style_ptr(ta, LV_TA_PART_BG, LV_STYLE_FONT); lv_coord_t font_h = lv_font_get_line_height(font); scrl->ext_draw_pad = LV_MATH_MAX(scrl->ext_draw_pad, line_space + font_h); @@ -1681,7 +1681,7 @@ static void refr_cursor_area(lv_obj_t * ta) lv_ta_ext_t * ext = lv_obj_get_ext_attr(ta); const lv_font_t * font = lv_obj_get_style_ptr(ta, LV_TA_PART_BG, LV_STYLE_FONT); - lv_style_value_t line_space = lv_obj_get_style_value(ta, LV_TA_PART_BG, LV_STYLE_LINE_SPACE); + lv_style_int_t line_space = lv_obj_get_style_int(ta, LV_TA_PART_BG, LV_STYLE_LINE_SPACE); uint16_t cur_pos = lv_ta_get_cursor_pos(ta); const char * txt = lv_label_get_text(ext->label); @@ -1728,10 +1728,10 @@ static void refr_cursor_area(lv_obj_t * ta) /*Calculate the cursor according to its type*/ - lv_style_value_t top = lv_obj_get_style_value(ta, LV_TA_PART_CURSOR, LV_STYLE_PAD_TOP); - lv_style_value_t bottom = lv_obj_get_style_value(ta, LV_TA_PART_CURSOR, LV_STYLE_PAD_BOTTOM); - lv_style_value_t left = lv_obj_get_style_value(ta, LV_TA_PART_CURSOR, LV_STYLE_PAD_LEFT); - lv_style_value_t right = lv_obj_get_style_value(ta, LV_TA_PART_CURSOR, LV_STYLE_PAD_RIGHT); + lv_style_int_t top = lv_obj_get_style_int(ta, LV_TA_PART_CURSOR, LV_STYLE_PAD_TOP); + lv_style_int_t bottom = lv_obj_get_style_int(ta, LV_TA_PART_CURSOR, LV_STYLE_PAD_BOTTOM); + lv_style_int_t left = lv_obj_get_style_int(ta, LV_TA_PART_CURSOR, LV_STYLE_PAD_LEFT); + lv_style_int_t right = lv_obj_get_style_int(ta, LV_TA_PART_CURSOR, LV_STYLE_PAD_RIGHT); lv_area_t cur_area; diff --git a/src/lv_objx/lv_tabview.c b/src/lv_objx/lv_tabview.c index eb6e0e9bf..f72707ae4 100644 --- a/src/lv_objx/lv_tabview.c +++ b/src/lv_objx/lv_tabview.c @@ -330,8 +330,8 @@ void lv_tabview_set_tab_act(lv_obj_t * tabview, uint16_t id, lv_anim_enable_t an } lv_coord_t cont_x; - lv_style_value_t scrl_inner = lv_obj_get_style_value(ext->content, LV_PAGE_PART_SCRL, LV_STYLE_PAD_INNER); - lv_style_value_t scrl_left = lv_obj_get_style_value(ext->content, LV_PAGE_PART_SCRL, LV_STYLE_PAD_LEFT); + lv_style_int_t scrl_inner = lv_obj_get_style_int(ext->content, LV_PAGE_PART_SCRL, LV_STYLE_PAD_INNER); + lv_style_int_t scrl_left = lv_obj_get_style_int(ext->content, LV_PAGE_PART_SCRL, LV_STYLE_PAD_LEFT); switch(ext->btns_pos) { default: /*default case is prevented in lv_tabview_set_btns_pos(), but here for safety*/ @@ -372,9 +372,9 @@ void lv_tabview_set_tab_act(lv_obj_t * tabview, uint16_t id, lv_anim_enable_t an lv_coord_t indic_size; lv_coord_t indic_pos = 0; /*silence uninitialized variable warning*/; - lv_style_value_t btns_bg_inner = lv_obj_get_style_value(tabview, LV_TABVIEW_PART_BTNS_BG, LV_STYLE_PAD_INNER); - lv_style_value_t btns_bg_left = lv_obj_get_style_value(tabview, LV_TABVIEW_PART_BTNS_BG, LV_STYLE_PAD_LEFT); - lv_style_value_t btns_bg_top = lv_obj_get_style_value(tabview, LV_TABVIEW_PART_BTNS_BG, LV_STYLE_PAD_TOP); + lv_style_int_t btns_bg_inner = lv_obj_get_style_int(tabview, LV_TABVIEW_PART_BTNS_BG, LV_STYLE_PAD_INNER); + lv_style_int_t btns_bg_left = lv_obj_get_style_int(tabview, LV_TABVIEW_PART_BTNS_BG, LV_STYLE_PAD_LEFT); + lv_style_int_t btns_bg_top = lv_obj_get_style_int(tabview, LV_TABVIEW_PART_BTNS_BG, LV_STYLE_PAD_TOP); switch(ext->btns_pos) { default: /*default case is prevented in lv_tabview_set_btns_pos(), but here for safety*/ @@ -810,7 +810,7 @@ static void refr_indic_size(lv_obj_t * tabview) lv_tabview_ext_t * ext = lv_obj_get_ext_attr(tabview); lv_btnm_ext_t * btnm_ext = lv_obj_get_ext_attr(ext->btns); - lv_coord_t indic_size = lv_obj_get_style_value(tabview, LV_TABVIEW_PART_INDIC, LV_STYLE_SIZE); + lv_coord_t indic_size = lv_obj_get_style_int(tabview, LV_TABVIEW_PART_INDIC, LV_STYLE_SIZE); /*Set the indicator width/height*/ lv_coord_t indic_w; @@ -856,15 +856,15 @@ static void refr_btns_size(lv_obj_t * tabview) { lv_tabview_ext_t * ext = lv_obj_get_ext_attr(tabview); - lv_style_value_t btn_bg_left = lv_obj_get_style_value(tabview, LV_TABVIEW_PART_BTNS_BG, LV_STYLE_PAD_LEFT); - lv_style_value_t btn_bg_right = lv_obj_get_style_value(tabview, LV_TABVIEW_PART_BTNS_BG, LV_STYLE_PAD_RIGHT); - lv_style_value_t btn_bg_top = lv_obj_get_style_value(tabview, LV_TABVIEW_PART_BTNS_BG, LV_STYLE_PAD_TOP); - lv_style_value_t btn_bg_bottom = lv_obj_get_style_value(tabview, LV_TABVIEW_PART_BTNS_BG, LV_STYLE_PAD_BOTTOM); + lv_style_int_t btn_bg_left = lv_obj_get_style_int(tabview, LV_TABVIEW_PART_BTNS_BG, LV_STYLE_PAD_LEFT); + lv_style_int_t btn_bg_right = lv_obj_get_style_int(tabview, LV_TABVIEW_PART_BTNS_BG, LV_STYLE_PAD_RIGHT); + lv_style_int_t btn_bg_top = lv_obj_get_style_int(tabview, LV_TABVIEW_PART_BTNS_BG, LV_STYLE_PAD_TOP); + lv_style_int_t btn_bg_bottom = lv_obj_get_style_int(tabview, LV_TABVIEW_PART_BTNS_BG, LV_STYLE_PAD_BOTTOM); - lv_style_value_t btn_left = lv_obj_get_style_value(tabview, LV_TABVIEW_PART_BTNS, LV_STYLE_PAD_LEFT); - lv_style_value_t btn_right = lv_obj_get_style_value(tabview, LV_TABVIEW_PART_BTNS, LV_STYLE_PAD_RIGHT); - lv_style_value_t btn_top = lv_obj_get_style_value(tabview, LV_TABVIEW_PART_BTNS, LV_STYLE_PAD_TOP); - lv_style_value_t btn_bottom = lv_obj_get_style_value(tabview, LV_TABVIEW_PART_BTNS, LV_STYLE_PAD_BOTTOM); + lv_style_int_t btn_left = lv_obj_get_style_int(tabview, LV_TABVIEW_PART_BTNS, LV_STYLE_PAD_LEFT); + lv_style_int_t btn_right = lv_obj_get_style_int(tabview, LV_TABVIEW_PART_BTNS, LV_STYLE_PAD_RIGHT); + lv_style_int_t btn_top = lv_obj_get_style_int(tabview, LV_TABVIEW_PART_BTNS, LV_STYLE_PAD_TOP); + lv_style_int_t btn_bottom = lv_obj_get_style_int(tabview, LV_TABVIEW_PART_BTNS, LV_STYLE_PAD_BOTTOM); const lv_font_t * font = lv_obj_get_style_ptr(tabview, LV_TABVIEW_PART_BTNS, LV_STYLE_FONT); @@ -925,8 +925,8 @@ static void refr_content_size(lv_obj_t * tabview) lv_obj_set_size(ext->content, cont_w, cont_h); /*Refresh the size of the tab pages too. `ext->content` has a layout to align the pages*/ - lv_style_value_t bg_top = lv_obj_get_style_value(tabview, LV_TABVIEW_PART_BG_SCRL, LV_STYLE_PAD_TOP); - lv_style_value_t bg_bottom = lv_obj_get_style_value(tabview, LV_TABVIEW_PART_BG_SCRL, LV_STYLE_PAD_BOTTOM); + lv_style_int_t bg_top = lv_obj_get_style_int(tabview, LV_TABVIEW_PART_BG_SCRL, LV_STYLE_PAD_TOP); + lv_style_int_t bg_bottom = lv_obj_get_style_int(tabview, LV_TABVIEW_PART_BG_SCRL, LV_STYLE_PAD_BOTTOM); cont_h -= bg_top + bg_bottom; lv_obj_t * content_scrl = lv_page_get_scrl(ext->content); lv_obj_t * pages = lv_obj_get_child(content_scrl, NULL); diff --git a/src/lv_themes/lv_theme.c b/src/lv_themes/lv_theme.c index c60c70fd1..25edff838 100644 --- a/src/lv_themes/lv_theme.c +++ b/src/lv_themes/lv_theme.c @@ -53,9 +53,9 @@ lv_theme_t * lv_theme_get_act(void) return act_theme; } -lv_style_t * lv_theme_get_style(lv_theme_t * th, lv_theme_style_t name) +lv_style_t * lv_theme_get_style(lv_theme_style_t name) { - return th->get_style_cb(name); + return act_theme->get_style_cb(name); } diff --git a/src/lv_themes/lv_theme.h b/src/lv_themes/lv_theme.h index 8251931af..dec2a6490 100644 --- a/src/lv_themes/lv_theme.h +++ b/src/lv_themes/lv_theme.h @@ -103,6 +103,14 @@ typedef enum { LV_THEME_LIST_SCRLBAR, LV_THEME_LIST_EDGE_FLASH, LV_THEME_LIST_BTN, + + + LV_THEME_CALENDAR_BG, + LV_THEME_CALENDAR_HEADER, + LV_THEME_CALENDAR_DAY_NAMES, + LV_THEME_CALENDAR_DATE_NUMS, + LV_THEME_CALENDAR_TODAY_BOX, + LV_THEME_CALENDAR_WEEK_BOX, }lv_theme_style_t; typedef struct { @@ -126,12 +134,12 @@ void lv_theme_set_act(lv_theme_t * th); */ lv_theme_t * lv_theme_get_act(void); -lv_style_t * lv_theme_get_style(lv_theme_t * th, lv_theme_style_t name); +lv_style_t * lv_theme_get_style(lv_theme_style_t name); /********************** * MACROS **********************/ -#define _t(name) lv_theme_get_style(lv_theme_get_act(), LV_THEME_ ## name) +#define _t(name) lv_theme_get_style(LV_THEME_ ## name) #define _ot(obj, part, name) lv_obj_add_style_class(obj, part, _t(name)) /********************** diff --git a/src/lv_themes/lv_theme_alien.c b/src/lv_themes/lv_theme_alien.c index a925b2e29..fc5e392fb 100644 --- a/src/lv_themes/lv_theme_alien.c +++ b/src/lv_themes/lv_theme_alien.c @@ -362,42 +362,7 @@ static void chart_init(void) static void calendar_init(void) { #if LV_USE_CALENDAR - static lv_style_t header; - static lv_style_t color_text; - static lv_style_t gray_text; - static lv_style_t today_box; - lv_style_copy(&header, &def); - header.body.radius = 0; - header.body.padding.left = LV_DPI / 12; - header.body.padding.right = LV_DPI / 12; - header.body.padding.top = LV_DPI / 14; - header.body.padding.bottom = LV_DPI / 14; - header.body.main_color = lv_color_hsv_to_rgb(_hue, 30, 60); - header.body.grad_color = header.body.main_color; - header.body.border.opa = panel.body.border.opa; - header.body.border.width = panel.body.border.width; - header.body.border.color = lv_color_hsv_to_rgb(_hue, 20, 80); - header.text.color = lv_color_hsv_to_rgb(_hue, 5, 100); - - lv_style_copy(&today_box, &header); - today_box.body.main_color = lv_color_hsv_to_rgb(_hue, 40, 70); - today_box.body.grad_color = today_box.body.main_color; - today_box.body.opa = LV_OPA_TRANSP; - - lv_style_copy(&color_text, &def); - color_text.text.color = lv_color_hsv_to_rgb(_hue, 30, 80); - - lv_style_copy(&gray_text, &def); - gray_text.text.color = lv_color_hsv_to_rgb(_hue, 10, 65); - - theme.style.calendar.bg = &panel; - theme.style.calendar.header = &header; - theme.style.calendar.week_box = &header; - theme.style.calendar.today_box = &today_box; - theme.style.calendar.day_names = &color_text; - theme.style.calendar.highlighted_days = &color_text; - theme.style.calendar.inactive_days = &gray_text; #endif } @@ -689,6 +654,12 @@ lv_style_t * lv_theme_alien_get_style(lv_theme_style_t name) return &ta_cursor; case LV_THEME_LIST_BTN: return &btn; + case LV_THEME_CALENDAR_BG: + return &panel; + case LV_THEME_CALENDAR_HEADER: + case LV_THEME_CALENDAR_TODAY_BOX: + case LV_THEME_CALENDAR_WEEK_BOX: + return &btn; } return NULL;