mirror of
https://github.com/lvgl/lvgl.git
synced 2025-01-28 07:03:00 +08:00
Merge branch 'chartSerieClear' of https://github.com/AloyseTech/lvgl into AloyseTech-chartSerieClear
This commit is contained in:
commit
f1b59388bb
@ -138,7 +138,7 @@ lv_chart_series_t * lv_chart_add_series(lv_obj_t * chart, lv_color_t color)
|
|||||||
lv_mem_assert(ser);
|
lv_mem_assert(ser);
|
||||||
if(ser == NULL) return NULL;
|
if(ser == NULL) return NULL;
|
||||||
|
|
||||||
lv_coord_t def = (ext->ymin + ext->ymax) >> 1; /*half range as default value*/
|
lv_coord_t def = LV_CHART_POINT_DEF;
|
||||||
|
|
||||||
if(ser == NULL) return NULL;
|
if(ser == NULL) return NULL;
|
||||||
|
|
||||||
@ -164,6 +164,24 @@ lv_chart_series_t * lv_chart_add_series(lv_obj_t * chart, lv_color_t color)
|
|||||||
return ser;
|
return ser;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clear the point of a serie
|
||||||
|
* @param chart pointer to a chart object
|
||||||
|
* @param serie pointer to the chart's serie to clear
|
||||||
|
*/
|
||||||
|
void lv_chart_clear_serie(lv_obj_t * chart, lv_chart_series_t * serie)
|
||||||
|
{
|
||||||
|
if(chart == NULL || serie == NULL)
|
||||||
|
return;
|
||||||
|
lv_chart_ext_t * ext = lv_obj_get_ext_attr(chart);
|
||||||
|
if(ext == NULL)
|
||||||
|
return;
|
||||||
|
for(uint32_t i = 0; i < ext->point_cnt; i++)
|
||||||
|
{
|
||||||
|
serie->points[i] = -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*=====================
|
/*=====================
|
||||||
* Setter functions
|
* Setter functions
|
||||||
*====================*/
|
*====================*/
|
||||||
@ -230,7 +248,7 @@ void lv_chart_set_point_count(lv_obj_t * chart, uint16_t point_cnt)
|
|||||||
lv_chart_series_t * ser;
|
lv_chart_series_t * ser;
|
||||||
uint16_t point_cnt_old = ext->point_cnt;
|
uint16_t point_cnt_old = ext->point_cnt;
|
||||||
uint16_t i;
|
uint16_t i;
|
||||||
lv_coord_t def = (ext->ymin + ext->ymax) >> 1; /*half range as default value*/
|
lv_coord_t def = LV_CHART_POINT_DEF;
|
||||||
|
|
||||||
if(point_cnt < 1) point_cnt = 1;
|
if(point_cnt < 1) point_cnt = 1;
|
||||||
|
|
||||||
@ -589,7 +607,8 @@ static void lv_chart_draw_lines(lv_obj_t * chart, const lv_area_t * mask)
|
|||||||
y_tmp = y_tmp / (ext->ymax - ext->ymin);
|
y_tmp = y_tmp / (ext->ymax - ext->ymin);
|
||||||
p2.y = h - y_tmp + y_ofs;
|
p2.y = h - y_tmp + y_ofs;
|
||||||
|
|
||||||
lv_draw_line(&p1, &p2, mask, &style, opa_scale);
|
if(ser->points[i - 1] >= 0 && ser->points[i] >= 0)
|
||||||
|
lv_draw_line(&p1, &p2, mask, &style, opa_scale);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -637,7 +656,8 @@ static void lv_chart_draw_points(lv_obj_t * chart, const lv_area_t * mask)
|
|||||||
cir_a.y2 = cir_a.y1 + style_point.body.radius;
|
cir_a.y2 = cir_a.y1 + style_point.body.radius;
|
||||||
cir_a.y1 -= style_point.body.radius;
|
cir_a.y1 -= style_point.body.radius;
|
||||||
|
|
||||||
lv_draw_rect(&cir_a, mask, &style_point, lv_obj_get_opa_scale(chart));
|
if(ser->points[i] >= 0)
|
||||||
|
lv_draw_rect(&cir_a, mask, &style_point, lv_obj_get_opa_scale(chart));
|
||||||
}
|
}
|
||||||
series_cnt++;
|
series_cnt++;
|
||||||
}
|
}
|
||||||
@ -692,7 +712,7 @@ static void lv_chart_draw_cols(lv_obj_t * chart, const lv_area_t * mask)
|
|||||||
col_a.y1 = h - y_tmp + chart->coords.y1;
|
col_a.y1 = h - y_tmp + chart->coords.y1;
|
||||||
|
|
||||||
mask_ret = lv_area_intersect(&col_mask, mask, &col_a);
|
mask_ret = lv_area_intersect(&col_mask, mask, &col_a);
|
||||||
if(mask_ret != false) {
|
if(mask_ret != false && ser->points[i] >= 0) {
|
||||||
lv_draw_rect(&chart->coords, &col_mask, &rects, lv_obj_get_opa_scale(chart));
|
lv_draw_rect(&chart->coords, &col_mask, &rects, lv_obj_get_opa_scale(chart));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -27,6 +27,7 @@ extern "C" {
|
|||||||
/*********************
|
/*********************
|
||||||
* DEFINES
|
* DEFINES
|
||||||
*********************/
|
*********************/
|
||||||
|
#define LV_CHART_POINT_DEF (LV_COORD_MIN)
|
||||||
|
|
||||||
/**********************
|
/**********************
|
||||||
* TYPEDEFS
|
* TYPEDEFS
|
||||||
@ -91,6 +92,13 @@ lv_obj_t * lv_chart_create(lv_obj_t * par, const lv_obj_t * copy);
|
|||||||
*/
|
*/
|
||||||
lv_chart_series_t * lv_chart_add_series(lv_obj_t * chart, lv_color_t color);
|
lv_chart_series_t * lv_chart_add_series(lv_obj_t * chart, lv_color_t color);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clear the point of a serie
|
||||||
|
* @param chart pointer to a chart object
|
||||||
|
* @param serie pointer to the chart's serie to clear
|
||||||
|
*/
|
||||||
|
void lv_chart_clear_serie(lv_obj_t * chart, lv_chart_series_t * serie);
|
||||||
|
|
||||||
/*=====================
|
/*=====================
|
||||||
* Setter functions
|
* Setter functions
|
||||||
*====================*/
|
*====================*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user