calendar, list, arc and line improvments

This commit is contained in:
Gabor Kiss-Vamosi
2020-02-01 15:02:29 +01:00
parent 27d23dbeea
commit 24ff098588
10 changed files with 205 additions and 135 deletions

View File

@@ -1467,11 +1467,17 @@ void lv_obj_set_state(lv_obj_t * obj, lv_obj_state_t new_state)
obj->state_dsc.anim = 0; obj->state_dsc.anim = 0;
lv_obj_refresh_style(obj); lv_obj_refresh_style(obj);
} }
/*Set the new state for prev state too to get the TRANSITION_TIME for the new state*/
else { else {
obj->state_dsc.prev = obj->state_dsc.act;
obj->state_dsc.act = new_state; bool was_anim = lv_anim_del(obj, obj_state_anim_cb);
obj->state_dsc.anim = 0;
if(obj->state_dsc.anim == 0 && was_anim) {
obj->state_dsc.act = new_state;
} else {
obj->state_dsc.prev = obj->state_dsc.act;
obj->state_dsc.act = new_state;
obj->state_dsc.anim = 0;
}
lv_anim_t a; lv_anim_t a;
lv_anim_init(&a); lv_anim_init(&a);
@@ -1479,6 +1485,7 @@ void lv_obj_set_state(lv_obj_t * obj, lv_obj_state_t new_state)
lv_anim_set_values(&a, 0, 255); lv_anim_set_values(&a, 0, 255);
lv_anim_set_time(&a, t, 0); lv_anim_set_time(&a, t, 0);
lv_anim_create(&a); lv_anim_create(&a);
} }
} }
@@ -2762,6 +2769,9 @@ void lv_obj_init_draw_line_dsc(lv_obj_t * obj, uint8_t part, lv_draw_line_dsc_t
if(draw_dsc->dash_width) { if(draw_dsc->dash_width) {
draw_dsc->dash_gap = lv_obj_get_style_int(obj, part, LV_STYLE_LINE_DASH_GAP); draw_dsc->dash_gap = lv_obj_get_style_int(obj, part, LV_STYLE_LINE_DASH_GAP);
} }
draw_dsc->round_start = lv_obj_get_style_int(obj, part, LV_STYLE_LINE_ROUNDED);
draw_dsc->round_end = draw_dsc->round_start;
} }
/** /**

View File

@@ -127,8 +127,9 @@ enum {
LV_STYLE_PROP_INIT(LV_STYLE_LINE_WIDTH, 0x7, LV_STYLE_ID_VALUE + 0, LV_STYLE_ATTR_NONE), LV_STYLE_PROP_INIT(LV_STYLE_LINE_WIDTH, 0x7, LV_STYLE_ID_VALUE + 0, LV_STYLE_ATTR_NONE),
LV_STYLE_PROP_INIT(LV_STYLE_LINE_BLEND_MODE, 0x7, LV_STYLE_ID_VALUE + 1, LV_STYLE_ATTR_NONE), LV_STYLE_PROP_INIT(LV_STYLE_LINE_BLEND_MODE, 0x7, LV_STYLE_ID_VALUE + 1, LV_STYLE_ATTR_NONE),
LV_STYLE_PROP_INIT(LV_STYLE_LINE_DASH_WIDTH, 0x7, LV_STYLE_ID_VALUE + 2, LV_STYLE_ATTR_NONE), LV_STYLE_PROP_INIT(LV_STYLE_LINE_DASH_WIDTH, 0x7, LV_STYLE_ID_VALUE + 2, LV_STYLE_ATTR_NONE),
LV_STYLE_PROP_INIT(LV_STYLE_LINE_DASH_GAP, 0x7, LV_STYLE_ID_VALUE + 3, LV_STYLE_ATTR_NONE), LV_STYLE_PROP_INIT(LV_STYLE_LINE_DASH_GAP, 0x7, LV_STYLE_ID_VALUE + 3, LV_STYLE_ATTR_NONE),
LV_STYLE_PROP_INIT(LV_STYLE_LINE_ROUNDED, 0x7, LV_STYLE_ID_VALUE + 4, LV_STYLE_ATTR_NONE),
LV_STYLE_PROP_INIT(LV_STYLE_LINE_COLOR, 0x7, LV_STYLE_ID_COLOR + 0, LV_STYLE_ATTR_NONE), LV_STYLE_PROP_INIT(LV_STYLE_LINE_COLOR, 0x7, LV_STYLE_ID_COLOR + 0, LV_STYLE_ATTR_NONE),
LV_STYLE_PROP_INIT(LV_STYLE_LINE_OPA, 0x7, LV_STYLE_ID_OPA + 0, LV_STYLE_ATTR_NONE), LV_STYLE_PROP_INIT(LV_STYLE_LINE_OPA, 0x7, LV_STYLE_ID_OPA + 0, LV_STYLE_ATTR_NONE),

View File

@@ -56,38 +56,36 @@ lv_obj_t * lv_arc_create(lv_obj_t * par, const lv_obj_t * copy)
LV_LOG_TRACE("arc create started"); LV_LOG_TRACE("arc create started");
/*Create the ancestor of arc*/ /*Create the ancestor of arc*/
lv_obj_t * new_arc = lv_obj_create(par, copy); lv_obj_t * arc = lv_obj_create(par, copy);
LV_ASSERT_MEM(new_arc); LV_ASSERT_MEM(arc);
if(new_arc == NULL) return NULL; if(arc == NULL) return NULL;
/*Allocate the arc type specific extended data*/ /*Allocate the arc type specific extended data*/
lv_arc_ext_t * ext = lv_obj_allocate_ext_attr(new_arc, sizeof(lv_arc_ext_t)); lv_arc_ext_t * ext = lv_obj_allocate_ext_attr(arc, sizeof(lv_arc_ext_t));
LV_ASSERT_MEM(ext); LV_ASSERT_MEM(ext);
if(ext == NULL) { if(ext == NULL) {
lv_obj_del(new_arc); lv_obj_del(arc);
return NULL; return NULL;
} }
if(ancestor_signal == NULL) ancestor_signal = lv_obj_get_signal_cb(new_arc); if(ancestor_signal == NULL) ancestor_signal = lv_obj_get_signal_cb(arc);
if(ancestor_design == NULL) ancestor_design = lv_obj_get_design_cb(new_arc); if(ancestor_design == NULL) ancestor_design = lv_obj_get_design_cb(arc);
/*Initialize the allocated 'ext' */ /*Initialize the allocated 'ext' */
ext->angle_start = 45; ext->angle_start = 45;
ext->angle_end = 315; ext->angle_end = 315;
lv_style_list_init(&ext->style_arc);
lv_obj_set_size(new_arc, LV_DPI, LV_DPI);
lv_obj_set_size(arc, LV_DPI, LV_DPI);
/*The signal and design functions are not copied so set them here*/ /*The signal and design functions are not copied so set them here*/
lv_obj_set_signal_cb(new_arc, lv_arc_signal); lv_obj_set_signal_cb(arc, lv_arc_signal);
lv_obj_set_design_cb(new_arc, lv_arc_design); lv_obj_set_design_cb(arc, lv_arc_design);
/*Init the new arc arc*/ /*Init the new arc arc*/
if(copy == NULL) { if(copy == NULL) {
lv_style_list_init(&ext->style_arc); lv_theme_apply(arc, LV_THEME_ARC);
lv_style_list_reset(&new_arc->style_list);
_ot(new_arc, LV_ARC_PART_BG, ARC_BG);
_ot(new_arc, LV_ARC_PART_ARC, ARC);
} }
/*Copy an existing arc*/ /*Copy an existing arc*/
else { else {
@@ -96,12 +94,12 @@ lv_obj_t * lv_arc_create(lv_obj_t * par, const lv_obj_t * copy)
ext->angle_end = copy_ext->angle_end; ext->angle_end = copy_ext->angle_end;
/*Refresh the style with new signal function*/ /*Refresh the style with new signal function*/
lv_obj_refresh_style(new_arc); lv_obj_refresh_style(arc);
} }
LV_LOG_INFO("arc created"); LV_LOG_INFO("arc created");
return new_arc; return arc;
} }
/*====================== /*======================

View File

@@ -43,7 +43,7 @@ static lv_coord_t get_header_height(lv_obj_t * calendar);
static lv_coord_t get_day_names_height(lv_obj_t * calendar); static lv_coord_t get_day_names_height(lv_obj_t * calendar);
static void draw_header(lv_obj_t * calendar, const lv_area_t * mask); static void draw_header(lv_obj_t * calendar, const lv_area_t * mask);
static void draw_day_names(lv_obj_t * calendar, const lv_area_t * mask); static void draw_day_names(lv_obj_t * calendar, const lv_area_t * mask);
static void draw_days(lv_obj_t * calendar, const lv_area_t * mask); static void draw_dates(lv_obj_t * calendar, const lv_area_t * mask);
static uint8_t get_day_of_week(uint32_t year, uint32_t month, uint32_t day); static uint8_t get_day_of_week(uint32_t year, uint32_t month, uint32_t day);
static bool is_highlighted(lv_obj_t * calendar, day_draw_state_t draw_state, int32_t year, int32_t month, int32_t day); static bool is_highlighted(lv_obj_t * calendar, day_draw_state_t draw_state, int32_t year, int32_t month, int32_t day);
static bool is_pressed(lv_obj_t * calendar, day_draw_state_t draw_state, int32_t year, int32_t month, int32_t day); static bool is_pressed(lv_obj_t * calendar, day_draw_state_t draw_state, int32_t year, int32_t month, int32_t day);
@@ -128,7 +128,7 @@ lv_obj_t * lv_calendar_create(lv_obj_t * par, const lv_obj_t * copy)
if(copy == NULL) { if(copy == NULL) {
lv_theme_apply(calendar, LV_THEME_CALENDAR); lv_theme_apply(calendar, LV_THEME_CALENDAR);
lv_obj_set_size(calendar, LV_DPI * 4, LV_DPI * 3); lv_obj_set_size(calendar, 5*LV_DPI/2, 5*LV_DPI/2);
} }
/*Copy an existing calendar*/ /*Copy an existing calendar*/
@@ -391,7 +391,7 @@ static lv_design_res_t lv_calendar_design(lv_obj_t * calendar, const lv_area_t *
draw_header(calendar, clip_area); draw_header(calendar, clip_area);
draw_day_names(calendar, clip_area); draw_day_names(calendar, clip_area);
draw_days(calendar, clip_area); draw_dates(calendar, clip_area);
} }
/*Post draw when the children are drawn*/ /*Post draw when the children are drawn*/
@@ -547,7 +547,7 @@ static lv_style_list_t * lv_calendar_get_style(lv_obj_t * calendar, uint8_t part
case LV_CALENDAR_PART_DAY_NAMES: case LV_CALENDAR_PART_DAY_NAMES:
style_dsc_p = &ext->style_day_names; style_dsc_p = &ext->style_day_names;
break; break;
case LV_CALENDAR_PART_DATE_NUMS: case LV_CALENDAR_PART_DATE:
style_dsc_p = &ext->style_date_nums; style_dsc_p = &ext->style_date_nums;
break; break;
default: default:
@@ -569,14 +569,14 @@ static bool calculate_touched_day(lv_obj_t * calendar, const lv_point_t * touche
{ {
lv_area_t days_area; lv_area_t days_area;
lv_area_copy(&days_area, &calendar->coords); lv_area_copy(&days_area, &calendar->coords);
lv_style_int_t left = lv_obj_get_style_int(calendar, LV_CALENDAR_PART_BG, LV_STYLE_PAD_LEFT); lv_style_int_t left = lv_obj_get_style_int(calendar, LV_CALENDAR_PART_DATE, LV_STYLE_PAD_LEFT);
lv_style_int_t right = lv_obj_get_style_int(calendar, LV_CALENDAR_PART_BG, LV_STYLE_PAD_RIGHT); lv_style_int_t right = lv_obj_get_style_int(calendar, LV_CALENDAR_PART_DATE, LV_STYLE_PAD_RIGHT);
lv_style_int_t top = lv_obj_get_style_int(calendar, LV_CALENDAR_PART_BG, LV_STYLE_PAD_TOP); lv_style_int_t top = lv_obj_get_style_int(calendar, LV_CALENDAR_PART_DATE, LV_STYLE_PAD_TOP);
lv_style_int_t bottom = lv_obj_get_style_int(calendar, LV_CALENDAR_PART_BG, LV_STYLE_PAD_BOTTOM); lv_style_int_t bottom = lv_obj_get_style_int(calendar, LV_CALENDAR_PART_DATE, LV_STYLE_PAD_BOTTOM);
days_area.x1 += left; days_area.x1 += left;
days_area.x2 -= right; days_area.x2 -= right;
days_area.y1 = calendar->coords.y1 + top + get_header_height(calendar) + get_day_names_height(calendar); days_area.y1 = calendar->coords.y1 + get_header_height(calendar) + get_day_names_height(calendar) + top;
days_area.y2 -= bottom; days_area.y2 -= bottom;
if(lv_area_is_point_on(&days_area, touched_point, 0)) { if(lv_area_is_point_on(&days_area, touched_point, 0)) {
@@ -649,9 +649,6 @@ static lv_coord_t get_day_names_height(lv_obj_t * calendar)
*/ */
static void draw_header(lv_obj_t * calendar, const lv_area_t * mask) static void draw_header(lv_obj_t * calendar, const lv_area_t * mask)
{ {
lv_style_int_t bg_top = lv_obj_get_style_int(calendar, LV_CALENDAR_PART_BG, LV_STYLE_PAD_TOP);
lv_style_int_t header_top = lv_obj_get_style_int(calendar, LV_CALENDAR_PART_HEADER, LV_STYLE_PAD_TOP); lv_style_int_t header_top = lv_obj_get_style_int(calendar, LV_CALENDAR_PART_HEADER, LV_STYLE_PAD_TOP);
lv_style_int_t header_left = lv_obj_get_style_int(calendar, LV_CALENDAR_PART_HEADER, LV_STYLE_PAD_LEFT); lv_style_int_t header_left = lv_obj_get_style_int(calendar, LV_CALENDAR_PART_HEADER, LV_STYLE_PAD_LEFT);
lv_style_int_t header_right = lv_obj_get_style_int(calendar, LV_CALENDAR_PART_HEADER, LV_STYLE_PAD_RIGHT); lv_style_int_t header_right = lv_obj_get_style_int(calendar, LV_CALENDAR_PART_HEADER, LV_STYLE_PAD_RIGHT);
@@ -662,8 +659,8 @@ static void draw_header(lv_obj_t * calendar, const lv_area_t * mask)
lv_area_t header_area; lv_area_t header_area;
header_area.x1 = calendar->coords.x1; header_area.x1 = calendar->coords.x1;
header_area.x2 = calendar->coords.x2; header_area.x2 = calendar->coords.x2;
header_area.y1 = calendar->coords.y1 + bg_top; header_area.y1 = calendar->coords.y1 + header_top;
header_area.y2 = calendar->coords.y1 + get_header_height(calendar); header_area.y2 = calendar->coords.y1 + lv_font_get_line_height(font);
lv_draw_rect_dsc_t header_rect_dsc; lv_draw_rect_dsc_t header_rect_dsc;
lv_draw_rect_dsc_init(&header_rect_dsc); lv_draw_rect_dsc_init(&header_rect_dsc);
@@ -676,7 +673,6 @@ static void draw_header(lv_obj_t * calendar, const lv_area_t * mask)
txt_buf[4] = ' '; txt_buf[4] = ' ';
txt_buf[5] = '\0'; txt_buf[5] = '\0';
strcpy(&txt_buf[5], get_month_name(calendar, ext->showed_date.month)); strcpy(&txt_buf[5], get_month_name(calendar, ext->showed_date.month));
header_area.y1 += header_top;
lv_draw_label_dsc_t label_dsc; lv_draw_label_dsc_t label_dsc;
lv_draw_label_dsc_init(&label_dsc); lv_draw_label_dsc_init(&label_dsc);
@@ -722,15 +718,30 @@ static void draw_header(lv_obj_t * calendar, const lv_area_t * mask)
*/ */
static void draw_day_names(lv_obj_t * calendar, const lv_area_t * mask) static void draw_day_names(lv_obj_t * calendar, const lv_area_t * mask)
{ {
lv_style_int_t bg_top = lv_obj_get_style_int(calendar, LV_CALENDAR_PART_BG, LV_STYLE_PAD_TOP); lv_style_int_t date_top = lv_obj_get_style_int(calendar, LV_CALENDAR_PART_DATE, LV_STYLE_PAD_TOP);
lv_style_int_t date_bottom = lv_obj_get_style_int(calendar, LV_CALENDAR_PART_DATE, LV_STYLE_PAD_BOTTOM);
lv_style_int_t date_left = lv_obj_get_style_int(calendar, LV_CALENDAR_PART_DATE, LV_STYLE_PAD_LEFT);
lv_style_int_t date_right = lv_obj_get_style_int(calendar, LV_CALENDAR_PART_DATE, LV_STYLE_PAD_RIGHT);
lv_style_int_t date_inner = lv_obj_get_style_int(calendar, LV_CALENDAR_PART_DATE, LV_STYLE_PAD_INNER);
lv_coord_t days_w = lv_obj_get_width(calendar) - date_left - date_right;
lv_coord_t box_w = (days_w - date_inner * 6) / 7;
lv_coord_t days_y1 = calendar->coords.y1 + date_top + get_header_height(calendar) + get_day_names_height(calendar);
lv_coord_t days_h = calendar->coords.y2 - days_y1 - date_bottom;
lv_coord_t box_h = (days_h - 5 * date_inner) / 6;
lv_coord_t box_size = LV_MATH_MIN(box_w, box_h);
lv_style_int_t left = lv_obj_get_style_int(calendar, LV_CALENDAR_PART_DAY_NAMES, LV_STYLE_PAD_LEFT); lv_style_int_t left = lv_obj_get_style_int(calendar, LV_CALENDAR_PART_DAY_NAMES, LV_STYLE_PAD_LEFT);
lv_style_int_t right = lv_obj_get_style_int(calendar, LV_CALENDAR_PART_DAY_NAMES, LV_STYLE_PAD_RIGHT); lv_style_int_t right = lv_obj_get_style_int(calendar, LV_CALENDAR_PART_DAY_NAMES, LV_STYLE_PAD_RIGHT);
lv_style_int_t top = lv_obj_get_style_int(calendar, LV_CALENDAR_PART_DAY_NAMES, LV_STYLE_PAD_TOP); lv_style_int_t top = lv_obj_get_style_int(calendar, LV_CALENDAR_PART_DAY_NAMES, LV_STYLE_PAD_TOP);
const lv_font_t * font = lv_obj_get_style_ptr(calendar, LV_CALENDAR_PART_DAY_NAMES, LV_STYLE_FONT); const lv_font_t * font = lv_obj_get_style_ptr(calendar, LV_CALENDAR_PART_DAY_NAMES, LV_STYLE_FONT);
lv_coord_t w = lv_obj_get_width(calendar) - left - right; lv_coord_t w = lv_obj_get_width(calendar) - left - right;
lv_coord_t box_w = w / 7;
lv_coord_t label_w = w / 6;
lv_area_t label_area; lv_area_t label_area;
label_area.y1 = calendar->coords.y1 + get_header_height(calendar) + bg_top + top; label_area.y1 = calendar->coords.y1 + get_header_height(calendar) + top;
label_area.y2 = label_area.y1 + lv_font_get_line_height(font); label_area.y2 = label_area.y1 + lv_font_get_line_height(font);
lv_draw_label_dsc_t label_dsc; lv_draw_label_dsc_t label_dsc;
@@ -738,18 +749,13 @@ static void draw_day_names(lv_obj_t * calendar, const lv_area_t * mask)
lv_obj_init_draw_label_dsc(calendar, LV_CALENDAR_PART_DAY_NAMES, &label_dsc); lv_obj_init_draw_label_dsc(calendar, LV_CALENDAR_PART_DAY_NAMES, &label_dsc);
label_dsc.flag = LV_TXT_FLAG_CENTER; label_dsc.flag = LV_TXT_FLAG_CENTER;
lv_draw_rect_dsc_t rd;
lv_draw_rect_dsc_init(&rd);
uint32_t i; uint32_t i;
for(i = 0; i < 7; i++) { for(i = 0; i < 7; i++) {
label_area.x1 = calendar->coords.x1 + (w * i) / 7 + left;
label_area.x2 = label_area.x1 + box_w - 1;
lv_draw_rect(&label_area, mask, &rd); label_area.x1 = calendar->coords.x1 + ((w - box_size) * i) / 6 + box_size / 2 - label_w / 2 + left;
label_area.x2 = label_area.x1 + label_w - 1;
lv_draw_label(&label_area, mask, &label_dsc, get_day_name(calendar, i), NULL); lv_draw_label(&label_area, mask, &label_dsc, get_day_name(calendar, i), NULL);
} }
} }
@@ -758,22 +764,20 @@ static void draw_day_names(lv_obj_t * calendar, const lv_area_t * mask)
* @param calendar point to a calendar * @param calendar point to a calendar
* @param mask a mask for drawing * @param mask a mask for drawing
*/ */
static void draw_days(lv_obj_t * calendar, const lv_area_t * mask) static void draw_dates(lv_obj_t * calendar, const lv_area_t * mask)
{ {
lv_calendar_ext_t * ext = lv_obj_get_ext_attr(calendar); lv_calendar_ext_t * ext = lv_obj_get_ext_attr(calendar);
const lv_font_t * nums_font = lv_obj_get_style_ptr(calendar, LV_CALENDAR_PART_DATE_NUMS, LV_STYLE_FONT); const lv_font_t * nums_font = lv_obj_get_style_ptr(calendar, LV_CALENDAR_PART_DATE, LV_STYLE_FONT);
lv_style_int_t bg_top = lv_obj_get_style_int(calendar, LV_CALENDAR_PART_BG, LV_STYLE_PAD_TOP); lv_style_int_t date_top = lv_obj_get_style_int(calendar, LV_CALENDAR_PART_DATE, LV_STYLE_PAD_TOP);
lv_style_int_t bg_bottom = lv_obj_get_style_int(calendar, LV_CALENDAR_PART_BG, LV_STYLE_PAD_BOTTOM); lv_style_int_t date_bottom = lv_obj_get_style_int(calendar, LV_CALENDAR_PART_DATE, LV_STYLE_PAD_BOTTOM);
lv_style_int_t bg_left = lv_obj_get_style_int(calendar, LV_CALENDAR_PART_BG, LV_STYLE_PAD_LEFT); lv_style_int_t date_left = lv_obj_get_style_int(calendar, LV_CALENDAR_PART_DATE, LV_STYLE_PAD_LEFT);
lv_style_int_t bg_right = lv_obj_get_style_int(calendar, LV_CALENDAR_PART_BG, LV_STYLE_PAD_RIGHT); lv_style_int_t date_right = lv_obj_get_style_int(calendar, LV_CALENDAR_PART_DATE, LV_STYLE_PAD_RIGHT);
lv_style_int_t date_inner = lv_obj_get_style_int(calendar, LV_CALENDAR_PART_DATE, LV_STYLE_PAD_INNER);
lv_style_int_t days_inner = lv_obj_get_style_int(calendar, LV_CALENDAR_PART_DATE_NUMS, LV_STYLE_PAD_INNER); lv_coord_t days_y1 = calendar->coords.y1 + date_top + get_header_height(calendar) + get_day_names_height(calendar);
lv_coord_t days_h = calendar->coords.y2 - days_y1 - date_bottom;
lv_coord_t days_y1 = calendar->coords.y1 + bg_top + get_header_height(calendar) + get_day_names_height(calendar);
lv_coord_t days_h = calendar->coords.y2 - days_y1 - bg_bottom - 5 * days_inner;
/*The state changes without re-caching the styles, disable the use of cache*/ /*The state changes without re-caching the styles, disable the use of cache*/
lv_obj_state_dsc_t state_ori = calendar->state_dsc; lv_obj_state_dsc_t state_ori = calendar->state_dsc;
@@ -783,13 +787,14 @@ static void draw_days(lv_obj_t * calendar, const lv_area_t * mask)
lv_obj_state_t month_state = LV_OBJ_STATE_DISABLED; lv_obj_state_t month_state = LV_OBJ_STATE_DISABLED;
uint8_t day_cnt; uint8_t day_cnt;
lv_coord_t w = lv_obj_get_width(calendar) - bg_left - bg_right - days_inner * 6; lv_coord_t days_w = lv_obj_get_width(calendar) - date_left - date_right;
lv_coord_t box_w = w / 7; lv_coord_t box_w = (days_w - date_inner * 6) / 7;
lv_coord_t box_h = (days_h - 5 * date_inner) / 6;
lv_coord_t box_size = LV_MATH_MIN(box_w, box_h);
uint8_t month_start_day = get_day_of_week(ext->showed_date.year, ext->showed_date.month, 1); uint8_t month_start_day = get_day_of_week(ext->showed_date.year, ext->showed_date.month, 1);
day_draw_state_t draw_state; /*true: Not the prev. or next month is drawn*/ day_draw_state_t draw_state;
/*If starting with the first day of the week then the previous month is not visible*/ /*If starting with the first day of the week then the previous month is not visible*/
if(month_start_day == 0) { if(month_start_day == 0) {
@@ -817,11 +822,9 @@ static void draw_days(lv_obj_t * calendar, const lv_area_t * mask)
uint32_t week; uint32_t week;
for(week = 0; week < 6; week++) { for(week = 0; week < 6; week++) {
lv_area_t box_area; lv_area_t box_area;
box_area.y1 = days_y1 + (week * days_h) / 6;
box_area.y2 = days_y1 + ((week + 1) * days_h) / 6;
box_area.y1 += days_inner * week; box_area.y1 = days_y1 + ((days_h - box_size) * week) / 5;
box_area.y2 += days_inner * week; box_area.y2 = box_area.y1 + box_size - 1;
lv_area_t label_area; lv_area_t label_area;
label_area.y1 = box_area.y1 + (lv_area_get_height(&box_area) - lv_font_get_line_height(nums_font)) / 2; label_area.y1 = box_area.y1 + (lv_area_get_height(&box_area) - lv_font_get_line_height(nums_font)) / 2;
@@ -863,19 +866,14 @@ static void draw_days(lv_obj_t * calendar, const lv_area_t * mask)
calendar->state_dsc.act = day_state; calendar->state_dsc.act = day_state;
calendar->state_dsc.prev = day_state; calendar->state_dsc.prev = day_state;
lv_obj_init_draw_label_dsc(calendar, LV_CALENDAR_PART_DATE_NUMS, &label_dsc); lv_obj_init_draw_label_dsc(calendar, LV_CALENDAR_PART_DATE, &label_dsc);
lv_obj_init_draw_rect_dsc(calendar, LV_CALENDAR_PART_DATE_NUMS, &rect_dsc); lv_obj_init_draw_rect_dsc(calendar, LV_CALENDAR_PART_DATE, &rect_dsc);
prev_state = day_state; prev_state = day_state;
} }
label_area.x1 = calendar->coords.x1 + ((days_w - box_size) * day) / 6 + date_left;
label_area.x1 = calendar->coords.x1 + (w * day) / 7 + bg_left; label_area.x2 = label_area.x1 + box_size - 1;
label_area.x2 = label_area.x1 + box_w - 1;
label_area.x1 += days_inner * day;
label_area.x2 += days_inner * day;
box_area.x1 = label_area.x1; box_area.x1 = label_area.x1;
box_area.x2 = label_area.x2; box_area.x2 = label_area.x2;

View File

@@ -63,7 +63,7 @@ enum {
LV_CALENDAR_PART_BG, /**< Background and "normal" date numbers style */ LV_CALENDAR_PART_BG, /**< Background and "normal" date numbers style */
LV_CALENDAR_PART_HEADER, /** Calendar header style */ LV_CALENDAR_PART_HEADER, /** Calendar header style */
LV_CALENDAR_PART_DAY_NAMES, /** Day name style */ LV_CALENDAR_PART_DAY_NAMES, /** Day name style */
LV_CALENDAR_PART_DATE_NUMS, /** Day name style */ LV_CALENDAR_PART_DATE, /** Day name style */
}; };
typedef uint8_t lv_calendar_part_t; typedef uint8_t lv_calendar_part_t;

View File

@@ -61,28 +61,28 @@ lv_obj_t * lv_img_create(lv_obj_t * par, const lv_obj_t * copy)
{ {
LV_LOG_TRACE("image create started"); LV_LOG_TRACE("image create started");
lv_obj_t * new_img = NULL; lv_obj_t * img = NULL;
/*Create a basic object*/ /*Create a basic object*/
new_img = lv_obj_create(par, copy); img = lv_obj_create(par, copy);
LV_ASSERT_MEM(new_img); LV_ASSERT_MEM(img);
if(new_img == NULL) return NULL; if(img == NULL) return NULL;
if(ancestor_signal == NULL) ancestor_signal = lv_obj_get_signal_cb(new_img); if(ancestor_signal == NULL) ancestor_signal = lv_obj_get_signal_cb(img);
/*Extend the basic object to image object*/ /*Extend the basic object to image object*/
lv_img_ext_t * ext = lv_obj_allocate_ext_attr(new_img, sizeof(lv_img_ext_t)); lv_img_ext_t * ext = lv_obj_allocate_ext_attr(img, sizeof(lv_img_ext_t));
LV_ASSERT_MEM(ext); LV_ASSERT_MEM(ext);
if(ext == NULL) { if(ext == NULL) {
lv_obj_del(new_img); lv_obj_del(img);
return NULL; return NULL;
} }
ext->src = NULL; ext->src = NULL;
ext->src_type = LV_IMG_SRC_UNKNOWN; ext->src_type = LV_IMG_SRC_UNKNOWN;
ext->cf = LV_IMG_CF_UNKNOWN; ext->cf = LV_IMG_CF_UNKNOWN;
ext->w = lv_obj_get_width(new_img); ext->w = lv_obj_get_width(img);
ext->h = lv_obj_get_height(new_img); ext->h = lv_obj_get_height(img);
ext->angle = 0; ext->angle = 0;
ext->zoom = LV_IMG_ZOOM_NONE; ext->zoom = LV_IMG_ZOOM_NONE;
ext->antialias = LV_ANTIALIAS ? 1 : 0; ext->antialias = LV_ANTIALIAS ? 1 : 0;
@@ -93,12 +93,13 @@ lv_obj_t * lv_img_create(lv_obj_t * par, const lv_obj_t * copy)
ext->pivot.y = 0; ext->pivot.y = 0;
/*Init the new object*/ /*Init the new object*/
lv_obj_set_signal_cb(new_img, lv_img_signal); lv_obj_set_signal_cb(img, lv_img_signal);
lv_obj_set_design_cb(new_img, lv_img_design); lv_obj_set_design_cb(img, lv_img_design);
if(copy == NULL) { if(copy == NULL) {
lv_obj_set_click(new_img, false); lv_theme_apply(img, LV_THEME_IMAGE);
lv_obj_set_adv_hittest(new_img, true); /*Images have fast hit-testing*/ lv_obj_set_click(img, false);
lv_obj_set_adv_hittest(img, true); /*Images have fast hit-testing*/
/* Enable auto size for non screens /* Enable auto size for non screens
* because image screens are wallpapers * because image screens are wallpapers
* and must be screen sized*/ * and must be screen sized*/
@@ -110,15 +111,15 @@ lv_obj_t * lv_img_create(lv_obj_t * par, const lv_obj_t * copy)
} else { } else {
lv_img_ext_t * copy_ext = lv_obj_get_ext_attr(copy); lv_img_ext_t * copy_ext = lv_obj_get_ext_attr(copy);
ext->auto_size = copy_ext->auto_size; ext->auto_size = copy_ext->auto_size;
lv_img_set_src(new_img, copy_ext->src); lv_img_set_src(img, copy_ext->src);
// /*Refresh the style with new signal function*/ // /*Refresh the style with new signal function*/
// lv_obj_refresh_style(new_img); lv_obj_refresh_style(img);
} }
LV_LOG_INFO("image created"); LV_LOG_INFO("image created");
return new_img; return img;
} }
/*===================== /*=====================

View File

@@ -240,8 +240,6 @@ static lv_design_res_t lv_line_design(lv_obj_t * line, const lv_area_t * clip_ar
lv_draw_line_dsc_t line_dsc; lv_draw_line_dsc_t line_dsc;
lv_draw_line_dsc_init(&line_dsc); lv_draw_line_dsc_init(&line_dsc);
lv_obj_init_draw_line_dsc(line, LV_LINE_PART_MAIN, &line_dsc); lv_obj_init_draw_line_dsc(line, LV_LINE_PART_MAIN, &line_dsc);
line_dsc.round_end = 1;
line_dsc.round_start = 1;
/*Read all points and draw the lines*/ /*Read all points and draw the lines*/
for(i = 0; i < ext->point_num - 1; i++) { for(i = 0; i < ext->point_num - 1; i++) {
@@ -257,7 +255,7 @@ static lv_design_res_t lv_line_design(lv_obj_t * line, const lv_area_t * clip_ar
p2.y = h - ext->point_array[i + 1].y + y_ofs; p2.y = h - ext->point_array[i + 1].y + y_ofs;
} }
lv_draw_line(&p1, &p2, clip_area, &line_dsc); lv_draw_line(&p1, &p2, clip_area, &line_dsc);
line_dsc.round_start = 0; line_dsc.round_start = 0; /*Draw the rounding only on the end points after the first line*/
} }
} }

View File

@@ -72,16 +72,16 @@ lv_obj_t * lv_list_create(lv_obj_t * par, const lv_obj_t * copy)
LV_LOG_TRACE("list create started"); LV_LOG_TRACE("list create started");
/*Create the ancestor basic object*/ /*Create the ancestor basic object*/
lv_obj_t * new_list = lv_page_create(par, copy); lv_obj_t * list = lv_page_create(par, copy);
LV_ASSERT_MEM(new_list); LV_ASSERT_MEM(list);
if(new_list == NULL) return NULL; if(list == NULL) return NULL;
if(ancestor_page_signal == NULL) ancestor_page_signal = lv_obj_get_signal_cb(new_list); if(ancestor_page_signal == NULL) ancestor_page_signal = lv_obj_get_signal_cb(list);
lv_list_ext_t * ext = lv_obj_allocate_ext_attr(new_list, sizeof(lv_list_ext_t)); lv_list_ext_t * ext = lv_obj_allocate_ext_attr(list, sizeof(lv_list_ext_t));
LV_ASSERT_MEM(ext); LV_ASSERT_MEM(ext);
if(ext == NULL) { if(ext == NULL) {
lv_obj_del(new_list); lv_obj_del(list);
return NULL; return NULL;
} }
ext->single_mode = 0; ext->single_mode = 0;
@@ -93,15 +93,18 @@ lv_obj_t * lv_list_create(lv_obj_t * par, const lv_obj_t * copy)
ext->last_clicked_btn = NULL; ext->last_clicked_btn = NULL;
#endif #endif
lv_obj_set_signal_cb(new_list, lv_list_signal); lv_obj_set_signal_cb(list, lv_list_signal);
/*Init the new list object*/ /*Init the new list object*/
if(copy == NULL) { if(copy == NULL) {
lv_page_set_anim_time(new_list, LV_LIST_DEF_ANIM_TIME); lv_page_set_anim_time(list, LV_LIST_DEF_ANIM_TIME);
lv_page_set_scrl_fit2(new_list, LV_FIT_FLOOD, LV_FIT_TIGHT); lv_page_set_scrl_fit2(list, LV_FIT_FLOOD, LV_FIT_TIGHT);
lv_obj_set_size(new_list, 2 * LV_DPI, 3 * LV_DPI); lv_obj_set_size(list, 2 * LV_DPI, 3 * LV_DPI);
lv_page_set_scrl_layout(new_list, LV_LIST_LAYOUT_DEF); lv_page_set_scrl_layout(list, LV_LIST_LAYOUT_DEF);
lv_list_set_sb_mode(new_list, LV_SB_MODE_DRAG); lv_list_set_sb_mode(list, LV_SB_MODE_DRAG);
lv_theme_apply(list, LV_THEME_LIST);
} else { } else {
lv_list_ext_t * copy_ext = lv_obj_get_ext_attr(copy); lv_list_ext_t * copy_ext = lv_obj_get_ext_attr(copy);
@@ -112,17 +115,17 @@ lv_obj_t * lv_list_create(lv_obj_t * par, const lv_obj_t * copy)
lv_obj_t * copy_img = lv_list_get_btn_img(copy_btn); lv_obj_t * copy_img = lv_list_get_btn_img(copy_btn);
if(copy_img) img_src = lv_img_get_src(copy_img); if(copy_img) img_src = lv_img_get_src(copy_img);
#endif #endif
lv_list_add_btn(new_list, img_src, lv_list_get_btn_text(copy_btn)); lv_list_add_btn(list, img_src, lv_list_get_btn_text(copy_btn));
copy_btn = lv_list_get_next_btn(copy, copy_btn); copy_btn = lv_list_get_next_btn(copy, copy_btn);
} }
/*Refresh the style with new signal function*/ /*Refresh the style with new signal function*/
// lv_obj_refresh_style(new_list); lv_obj_refresh_style(list);
} }
LV_LOG_INFO("list created"); LV_LOG_INFO("list created");
return new_list; return list;
} }
/** /**
@@ -171,8 +174,7 @@ lv_obj_t * lv_list_add_btn(lv_obj_t * list, const void * img_src, const char * t
if(ancestor_btn_signal == NULL) ancestor_btn_signal = lv_obj_get_signal_cb(liste); if(ancestor_btn_signal == NULL) ancestor_btn_signal = lv_obj_get_signal_cb(liste);
/*Set the default styles*/ /*Set the default styles*/
lv_style_list_reset(&liste->style_list); lv_theme_apply(liste, LV_THEME_LIST_BTN);
_ot(liste, LV_BTN_PART_MAIN, LIST_BTN);
lv_page_glue_obj(liste, true); lv_page_glue_obj(liste, true);
lv_btn_set_layout(liste, LV_LAYOUT_ROW_M); lv_btn_set_layout(liste, LV_LAYOUT_ROW_M);

View File

@@ -47,7 +47,6 @@ typedef enum {
LV_THEME_IMAGE, LV_THEME_IMAGE,
LV_THEME_BTNM, LV_THEME_BTNM,
LV_THEME_BTNM_BTN,
LV_THEME_BAR, LV_THEME_BAR,
@@ -79,16 +78,12 @@ typedef enum {
LV_THEME_TA_SCRLBAR, LV_THEME_TA_SCRLBAR,
LV_THEME_LIST_BG, LV_THEME_LIST,
LV_THEME_LIST_SCRL,
LV_THEME_LIST_SCRLBAR,
LV_THEME_LIST_EDGE_FLASH,
LV_THEME_LIST_BTN, LV_THEME_LIST_BTN,
LV_THEME_CALENDAR, LV_THEME_CALENDAR,
LV_THEME_ARC_BG,
LV_THEME_ARC, LV_THEME_ARC,
LV_THEME_LED, LV_THEME_LED,

View File

@@ -81,6 +81,11 @@ static lv_style_t gauge;
static lv_style_t gauge_strong; static lv_style_t gauge_strong;
#endif #endif
#if LV_USE_LIST
static lv_style_t list_bg, list_btn;
#endif
#if LV_USE_DDLIST #if LV_USE_DDLIST
static lv_style_t ddlist_bg, ddlist_sel; static lv_style_t ddlist_bg, ddlist_sel;
#endif #endif
@@ -157,6 +162,7 @@ static void basic_init(void)
lv_style_set_color(&btn, LV_STYLE_TEXT_COLOR| LV_STYLE_STATE_PRESSED, lv_color_darken(lv_color_hex(0xffffff), LV_OPA_20)); lv_style_set_color(&btn, LV_STYLE_TEXT_COLOR| LV_STYLE_STATE_PRESSED, lv_color_darken(lv_color_hex(0xffffff), LV_OPA_20));
lv_style_set_color(&btn, LV_STYLE_TEXT_COLOR| LV_STYLE_STATE_DISABLED, lv_color_hex(0x686b70)); lv_style_set_color(&btn, LV_STYLE_TEXT_COLOR| LV_STYLE_STATE_DISABLED, lv_color_hex(0x686b70));
lv_style_set_color(&btn, LV_STYLE_IMAGE_RECOLOR, LV_COLOR_WHITE); lv_style_set_color(&btn, LV_STYLE_IMAGE_RECOLOR, LV_COLOR_WHITE);
lv_style_set_color(&btn, LV_STYLE_IMAGE_RECOLOR| LV_STYLE_STATE_PRESSED, lv_color_darken(lv_color_hex(0xffffff), LV_OPA_20));
lv_style_set_int(&btn, LV_STYLE_PAD_LEFT, LV_DPI / 5); lv_style_set_int(&btn, LV_STYLE_PAD_LEFT, LV_DPI / 5);
lv_style_set_int(&btn, LV_STYLE_PAD_RIGHT, LV_DPI / 5); lv_style_set_int(&btn, LV_STYLE_PAD_RIGHT, LV_DPI / 5);
lv_style_set_int(&btn, LV_STYLE_PAD_TOP, LV_DPI / 10); lv_style_set_int(&btn, LV_STYLE_PAD_TOP, LV_DPI / 10);
@@ -288,12 +294,13 @@ static void arc_init(void)
{ {
#if LV_USE_ARC != 0 #if LV_USE_ARC != 0
lv_style_init(&arc); lv_style_init(&arc);
lv_style_set_color(&arc, LV_STYLE_LINE_COLOR, LV_COLOR_AQUA); lv_style_set_color(&arc, LV_STYLE_LINE_COLOR, COLOR_ACCENT);
lv_style_set_int(&arc, LV_STYLE_LINE_WIDTH, 4); lv_style_set_int(&arc, LV_STYLE_LINE_WIDTH, LV_DPI / 8);
lv_style_set_int(&arc, LV_STYLE_LINE_ROUNDED, 1);
lv_style_init(&arc_bg); lv_style_init(&arc_bg);
lv_style_set_color(&arc_bg, LV_STYLE_BORDER_COLOR, LV_COLOR_GRAY); lv_style_set_color(&arc_bg, LV_STYLE_BORDER_COLOR, LV_COLOR_GRAY);
lv_style_set_int(&arc_bg, LV_STYLE_BORDER_WIDTH, 4); lv_style_set_int(&arc_bg, LV_STYLE_BORDER_WIDTH, LV_DPI / 8);
lv_style_set_opa(&arc_bg, LV_STYLE_BG_OPA, LV_OPA_TRANSP); lv_style_set_opa(&arc_bg, LV_STYLE_BG_OPA, LV_OPA_TRANSP);
#endif #endif
@@ -340,15 +347,16 @@ static void calendar_init(void)
#if LV_USE_CALENDAR #if LV_USE_CALENDAR
lv_style_init(&calendar_header); lv_style_init(&calendar_header);
lv_style_set_int(&calendar_header, LV_STYLE_PAD_LEFT , LV_DPI / 5); lv_style_set_int(&calendar_header, LV_STYLE_PAD_TOP, LV_DPI / 7);
lv_style_set_int(&calendar_header, LV_STYLE_PAD_RIGHT , LV_DPI / 5); lv_style_set_int(&calendar_header, LV_STYLE_PAD_LEFT , LV_DPI / 7);
lv_style_set_int(&calendar_header, LV_STYLE_PAD_BOTTOM , LV_DPI / 5); lv_style_set_int(&calendar_header, LV_STYLE_PAD_RIGHT , LV_DPI / 7);
lv_style_set_int(&calendar_header, LV_STYLE_PAD_BOTTOM , LV_DPI / 7);
lv_style_set_color(&calendar_header, LV_STYLE_TEXT_COLOR | LV_STYLE_STATE_PRESSED, LV_COLOR_WHITE); lv_style_set_color(&calendar_header, LV_STYLE_TEXT_COLOR | LV_STYLE_STATE_PRESSED, LV_COLOR_WHITE);
lv_style_init(&calendar_daynames); lv_style_init(&calendar_daynames);
lv_style_set_int(&calendar_daynames, LV_STYLE_PAD_LEFT , LV_DPI / 5); lv_style_set_int(&calendar_daynames, LV_STYLE_PAD_LEFT , LV_DPI / 7);
lv_style_set_int(&calendar_daynames, LV_STYLE_PAD_RIGHT , LV_DPI / 5); lv_style_set_int(&calendar_daynames, LV_STYLE_PAD_RIGHT , LV_DPI / 7);
lv_style_set_int(&calendar_daynames, LV_STYLE_PAD_BOTTOM , LV_DPI / 5); lv_style_set_int(&calendar_daynames, LV_STYLE_PAD_BOTTOM , LV_DPI / 7);
lv_style_init(&calendar_date_nums); lv_style_init(&calendar_date_nums);
lv_style_set_int(&calendar_date_nums, LV_STYLE_RADIUS, LV_DPI / 50); lv_style_set_int(&calendar_date_nums, LV_STYLE_RADIUS, LV_DPI / 50);
@@ -362,7 +370,10 @@ static void calendar_init(void)
lv_style_set_int(&calendar_date_nums, LV_STYLE_BORDER_WIDTH | LV_STYLE_STATE_CHECKED , 2); lv_style_set_int(&calendar_date_nums, LV_STYLE_BORDER_WIDTH | LV_STYLE_STATE_CHECKED , 2);
lv_style_set_int(&calendar_date_nums, LV_STYLE_BORDER_SIDE| LV_STYLE_STATE_CHECKED , LV_BORDER_SIDE_LEFT); lv_style_set_int(&calendar_date_nums, LV_STYLE_BORDER_SIDE| LV_STYLE_STATE_CHECKED , LV_BORDER_SIDE_LEFT);
lv_style_set_color(&calendar_date_nums, LV_STYLE_BORDER_COLOR | LV_STYLE_STATE_CHECKED, COLOR_ACCENT); lv_style_set_color(&calendar_date_nums, LV_STYLE_BORDER_COLOR | LV_STYLE_STATE_CHECKED, COLOR_ACCENT);
lv_style_set_int(&calendar_date_nums, LV_STYLE_PAD_INNER, LV_DPI / 20); lv_style_set_int(&calendar_date_nums, LV_STYLE_PAD_INNER, LV_DPI / 30);
lv_style_set_int(&calendar_date_nums, LV_STYLE_PAD_LEFT , LV_DPI / 7);
lv_style_set_int(&calendar_date_nums, LV_STYLE_PAD_RIGHT , LV_DPI / 7);
lv_style_set_int(&calendar_date_nums, LV_STYLE_PAD_BOTTOM , LV_DPI / 7);
#endif #endif
} }
@@ -476,6 +487,35 @@ static void spinbox_init(void)
static void list_init(void) static void list_init(void)
{ {
#if LV_USE_LIST != 0 #if LV_USE_LIST != 0
lv_style_init(&list_bg);
lv_style_copy(&list_bg, &panel);
lv_style_set_int(&list_bg, LV_STYLE_PAD_LEFT, LV_DPI / 10);
lv_style_set_int(&list_bg, LV_STYLE_PAD_RIGHT, LV_DPI / 10);
lv_style_set_int(&list_bg, LV_STYLE_PAD_TOP, 0);
lv_style_set_int(&list_bg, LV_STYLE_PAD_BOTTOM, 0);
lv_style_set_int(&list_bg, LV_STYLE_PAD_INNER, 0);
lv_style_init(&list_btn);
lv_style_set_opa(&list_btn, LV_STYLE_BG_OPA| LV_STYLE_STATE_PRESSED, LV_OPA_20);
lv_style_set_color(&list_btn, LV_STYLE_BG_COLOR | LV_STYLE_STATE_PRESSED, LV_COLOR_WHITE);
lv_style_set_color(&list_btn, LV_STYLE_BG_COLOR | LV_STYLE_STATE_DISABLED, COLOR_DISABLED);
lv_style_set_color(&list_btn, LV_STYLE_TEXT_COLOR, lv_color_hex(0xffffff));
lv_style_set_color(&list_btn, LV_STYLE_TEXT_COLOR| LV_STYLE_STATE_PRESSED, lv_color_darken(lv_color_hex(0xffffff), LV_OPA_20));
lv_style_set_color(&list_btn, LV_STYLE_TEXT_COLOR| LV_STYLE_STATE_DISABLED, lv_color_hex(0x686b70));
lv_style_set_color(&list_btn, LV_STYLE_TEXT_COLOR| LV_STYLE_STATE_FOCUS, lv_color_hex(0xff0000));
lv_style_set_color(&list_btn, LV_STYLE_IMAGE_RECOLOR, LV_COLOR_WHITE);
lv_style_set_color(&list_btn, LV_STYLE_IMAGE_RECOLOR| LV_STYLE_STATE_PRESSED, lv_color_darken(lv_color_hex(0xffffff), LV_OPA_20));
lv_style_set_opa(&list_btn, LV_STYLE_BORDER_OPA, LV_OPA_COVER);
lv_style_set_int(&list_btn, LV_STYLE_BORDER_WIDTH, 1);
lv_style_set_int(&list_btn, LV_STYLE_BORDER_SIDE, LV_BORDER_SIDE_BOTTOM);
lv_style_set_color(&list_btn, LV_STYLE_BORDER_COLOR, lv_color_hex(0x979a9f));
lv_style_set_int(&list_btn, LV_STYLE_PAD_LEFT, LV_DPI / 10);
lv_style_set_int(&list_btn, LV_STYLE_PAD_RIGHT, LV_DPI / 10);
lv_style_set_int(&list_btn, LV_STYLE_PAD_TOP, LV_DPI / 10);
lv_style_set_int(&list_btn, LV_STYLE_PAD_BOTTOM, LV_DPI / 10);
lv_style_set_int(&list_btn, LV_STYLE_PAD_INNER, LV_DPI / 10);
lv_style_set_int(&list_btn, LV_STYLE_TRANSITION_TIME, 500);
#endif #endif
} }
@@ -721,6 +761,18 @@ void lv_theme_alien_apply(lv_obj_t * obj, lv_theme_style_t name)
break; break;
#endif #endif
#if LV_USE_ARC
case LV_THEME_ARC:
list = lv_obj_get_style_list(obj, LV_ARC_PART_BG);
lv_style_list_reset(list);
lv_style_list_add_style(list, &arc_bg);
list = lv_obj_get_style_list(obj, LV_ARC_PART_ARC);
lv_style_list_reset(list);
lv_style_list_add_style(list, &arc);
break;
#endif
#if LV_USE_SLIDER #if LV_USE_SLIDER
case LV_THEME_SLIDER: case LV_THEME_SLIDER:
list = lv_obj_get_style_list(obj, LV_SLIDER_PART_BG); list = lv_obj_get_style_list(obj, LV_SLIDER_PART_BG);
@@ -805,6 +857,27 @@ void lv_theme_alien_apply(lv_obj_t * obj, lv_theme_style_t name)
break; break;
#endif #endif
#if LV_USE_DDLIST
case LV_THEME_LIST:
list = lv_obj_get_style_list(obj, LV_LIST_PART_BG);
lv_style_list_reset(list);
lv_style_list_add_style(list, &list_bg);
list = lv_obj_get_style_list(obj, LV_LIST_PART_SCRL);
lv_style_list_reset(list);
list = lv_obj_get_style_list(obj, LV_LIST_PART_SCRLBAR);
lv_style_list_reset(list);
lv_style_list_add_style(list, &sb);
break;
case LV_THEME_LIST_BTN:
list = lv_obj_get_style_list(obj, LV_BTN_PART_MAIN);
lv_style_list_reset(list);
lv_style_list_add_style(list, &list_btn);
break;
#endif
#if LV_USE_DDLIST #if LV_USE_DDLIST
case LV_THEME_DDLIST: case LV_THEME_DDLIST:
list = lv_obj_get_style_list(obj, LV_DDLIST_PART_BTN); list = lv_obj_get_style_list(obj, LV_DDLIST_PART_BTN);
@@ -889,7 +962,7 @@ void lv_theme_alien_apply(lv_obj_t * obj, lv_theme_style_t name)
lv_style_list_reset(list); lv_style_list_reset(list);
lv_style_list_add_style(list, &panel); lv_style_list_add_style(list, &panel);
list = lv_obj_get_style_list(obj, LV_CALENDAR_PART_DATE_NUMS); list = lv_obj_get_style_list(obj, LV_CALENDAR_PART_DATE);
lv_style_list_reset(list); lv_style_list_reset(list);
lv_style_list_add_style(list, &calendar_date_nums); lv_style_list_add_style(list, &calendar_date_nums);
@@ -927,12 +1000,6 @@ lv_style_t * lv_theme_alien_get_style(lv_theme_style_t name)
case LV_THEME_LIST_BTN: case LV_THEME_LIST_BTN:
return &btn; return &btn;
#endif #endif
#if LV_USE_ARC
case LV_THEME_ARC:
return &arc;
case LV_THEME_ARC_BG:
return &arc_bg;
#endif
#if LV_USE_LED #if LV_USE_LED
case LV_THEME_LED: case LV_THEME_LED: