From f7f675afd828e0827f61a218a4637eee98b2a863 Mon Sep 17 00:00:00 2001 From: Wielebny666 <31576684+Wielebny666@users.noreply.github.com> Date: Sat, 25 Apr 2020 13:52:08 +0200 Subject: [PATCH 1/9] Fix compile warning in `lv_spinbox_set_style` (#1473) discards 'const' qualifier from pointer --- src/lv_objx/lv_spinbox.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lv_objx/lv_spinbox.h b/src/lv_objx/lv_spinbox.h index ea60169e3..396159590 100644 --- a/src/lv_objx/lv_spinbox.h +++ b/src/lv_objx/lv_spinbox.h @@ -82,7 +82,7 @@ lv_obj_t * lv_spinbox_create(lv_obj_t * par, const lv_obj_t * copy); * @param type which style should be set * @param style pointer to a style */ -static inline void lv_spinbox_set_style(lv_obj_t * spinbox, lv_spinbox_style_t type, lv_style_t * style) +static inline void lv_spinbox_set_style(lv_obj_t * spinbox, lv_spinbox_style_t type, const lv_style_t * style) { lv_ta_set_style(spinbox, type, style); } From 271ec3f6ee371d66c0b54808af9ea4ee592964aa Mon Sep 17 00:00:00 2001 From: Wielebny666 <31576684+Wielebny666@users.noreply.github.com> Date: Sat, 25 Apr 2020 18:11:10 +0200 Subject: [PATCH 2/9] Fix error in indev driver template (#1476) --- porting/lv_port_indev_template.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/porting/lv_port_indev_template.c b/porting/lv_port_indev_template.c index 54b8c9fda..bf4a6436f 100644 --- a/porting/lv_port_indev_template.c +++ b/porting/lv_port_indev_template.c @@ -140,14 +140,14 @@ void lv_port_indev_init(void) /*Register a encoder input device*/ lv_indev_drv_init(&indev_drv); - indev_drv.type = LV_INDEV_TYPE_KEYPAD; + indev_drv.type = LV_INDEV_TYPE_ENCODER; indev_drv.read_cb = encoder_read; indev_encoder = lv_indev_drv_register(&indev_drv); /* Later you should create group(s) with `lv_group_t * group = lv_group_create()`, * add objects to the group with `lv_group_add_obj(group, obj)` * and assign this input device to group to navigate in it: - * `lv_indev_set_group(indev_keypad, group);` */ + * `lv_indev_set_group(indev_encoder, group);` */ /*------------------ * Button From 3c8c67a22ebe7ac5d49cf1496ff938d8befc119d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Kurzawa?= Date: Wed, 29 Apr 2020 10:29:48 +0200 Subject: [PATCH 3/9] Missing scroll bar modifier in tab --- src/lv_objx/lv_tabview.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/lv_objx/lv_tabview.h b/src/lv_objx/lv_tabview.h index f7546d0ce..59f84e3c1 100644 --- a/src/lv_objx/lv_tabview.h +++ b/src/lv_objx/lv_tabview.h @@ -158,6 +158,16 @@ void lv_tabview_set_btns_pos(lv_obj_t * tabview, lv_tabview_btns_pos_t btns_pos) */ void lv_tabview_set_btns_hidden(lv_obj_t * tabview, bool en); +/** + * Set the scroll bar mode of a tabview + * @param tabview pointer to a tabview object + * @param sb_mode the new mode from 'lv_page_sb_mode_t' enum + */ +static inline void lv_tabview_set_sb_mode(lv_obj_t * tabview, lv_sb_mode_t mode) +{ + lv_page_set_sb_mode(tabview, mode); +} + /*===================== * Getter functions *====================*/ From af5ed425c003ff3bbadf93a5c4aac3adec752eab Mon Sep 17 00:00:00 2001 From: Gabor Kiss-Vamosi Date: Wed, 29 Apr 2020 11:17:42 +0200 Subject: [PATCH 4/9] fix comment of lv_tabview_clean --- src/lv_objx/lv_tabview.c | 10 +++++----- src/lv_objx/lv_tabview.h | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/lv_objx/lv_tabview.c b/src/lv_objx/lv_tabview.c index 681ef8324..1769c8b66 100644 --- a/src/lv_objx/lv_tabview.c +++ b/src/lv_objx/lv_tabview.c @@ -200,14 +200,14 @@ lv_obj_t * lv_tabview_create(lv_obj_t * par, const lv_obj_t * copy) } /** - * Delete all children of the scrl object, without deleting scrl child. - * @param tabview pointer to an object + * Delete all children of a tab created by `lv_tabview_add_tab`. + * @param tab pointer to a tab */ -void lv_tabview_clean(lv_obj_t * tabview) +void lv_tabview_clean(lv_obj_t * tab) { - LV_ASSERT_OBJ(tabview, LV_OBJX_NAME); + LV_ASSERT_OBJ(tab, "lv_page"); - lv_obj_t * scrl = lv_page_get_scrl(tabview); + lv_obj_t * scrl = lv_page_get_scrl(tab); lv_obj_clean(scrl); } diff --git a/src/lv_objx/lv_tabview.h b/src/lv_objx/lv_tabview.h index f7546d0ce..c66f04c9d 100644 --- a/src/lv_objx/lv_tabview.h +++ b/src/lv_objx/lv_tabview.h @@ -93,10 +93,10 @@ typedef uint8_t lv_tabview_style_t; lv_obj_t * lv_tabview_create(lv_obj_t * par, const lv_obj_t * copy); /** - * Delete all children of the scrl object, without deleting scrl child. - * @param tabview pointer to an object + * Delete all children of a tab created by `lv_tabview_add_tab`. + * @param tab pointer to a tab */ -void lv_tabview_clean(lv_obj_t * tabview); +void lv_tabview_clean(lv_obj_t * tab); /*====================== * Add/remove functions From c2404c307c569b4bdc0b9de1174988c799e5ec84 Mon Sep 17 00:00:00 2001 From: Wielebny666 Date: Wed, 29 Apr 2020 13:24:07 +0200 Subject: [PATCH 5/9] Adjusting min and max values to the number format --- src/lv_misc/lv_math.c | 20 ++++++++++++++++++++ src/lv_misc/lv_math.h | 8 ++++++++ src/lv_objx/lv_spinbox.c | 7 +++++++ src/lv_objx/lv_spinbox.h | 2 +- 4 files changed, 36 insertions(+), 1 deletion(-) diff --git a/src/lv_misc/lv_math.c b/src/lv_misc/lv_math.c index f015456e4..74ddbe49c 100644 --- a/src/lv_misc/lv_math.c +++ b/src/lv_misc/lv_math.c @@ -198,6 +198,26 @@ uint32_t lv_sqrt(uint32_t num) return root; } +/** + * Calculate the integer exponents. + * @param base + * @param power + * @return base raised to the power exponent + */ +int64_t lv_pow(int64_t base, int8_t exp) +{ + int64_t result = 1; + while (exp) + { + if (exp & 1) + result *= base; + exp >>= 1; + base *= base; + } + + return result; +} + /********************** * STATIC FUNCTIONS **********************/ diff --git a/src/lv_misc/lv_math.h b/src/lv_misc/lv_math.h index 0f93a7c6a..7fadc8590 100644 --- a/src/lv_misc/lv_math.h +++ b/src/lv_misc/lv_math.h @@ -74,6 +74,14 @@ uint16_t lv_atan2(int x, int y); */ uint32_t lv_sqrt(uint32_t num); +/** + * Calculate the integer exponents. + * @param base + * @param power + * @return base raised to the power exponent + */ +int64_t lv_pow(int64_t base, int8_t exp); + /********************** * MACROS **********************/ diff --git a/src/lv_objx/lv_spinbox.c b/src/lv_objx/lv_spinbox.c index 21a19205d..e89570856 100644 --- a/src/lv_objx/lv_spinbox.c +++ b/src/lv_objx/lv_spinbox.c @@ -154,6 +154,13 @@ void lv_spinbox_set_digit_format(lv_obj_t * spinbox, uint8_t digit_count, uint8_ if(separator_position > LV_SPINBOX_MAX_DIGIT_COUNT) separator_position = LV_SPINBOX_MAX_DIGIT_COUNT; + if(digit_count < LV_SPINBOX_MAX_DIGIT_COUNT) + { + uint64_t max_val = lv_pow(10, digit_count); + if(ext->range_max > max_val - 1) ext->range_max = max_val - 1; + if(ext->range_min < - max_val + 1) ext->range_min = - max_val + 1; + } + ext->digit_count = digit_count; ext->dec_point_pos = separator_position; diff --git a/src/lv_objx/lv_spinbox.h b/src/lv_objx/lv_spinbox.h index 396159590..5e7f3c17d 100644 --- a/src/lv_objx/lv_spinbox.h +++ b/src/lv_objx/lv_spinbox.h @@ -32,7 +32,7 @@ extern "C" { /********************* * DEFINES *********************/ -#define LV_SPINBOX_MAX_DIGIT_COUNT 16 +#define LV_SPINBOX_MAX_DIGIT_COUNT 10 /********************** * TYPEDEFS From 929bbcaee4793f118440205e8c59240cf5a4db67 Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Thu, 30 Apr 2020 10:36:54 -0400 Subject: [PATCH 6/9] Fix misleading comment in `lv_btnm` https://forum.littlevgl.com/t/comment-refers-to-nonexisting-function/2175 --- src/lv_objx/lv_btnm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lv_objx/lv_btnm.c b/src/lv_objx/lv_btnm.c index d8d5f7004..192910428 100644 --- a/src/lv_objx/lv_btnm.c +++ b/src/lv_objx/lv_btnm.c @@ -447,7 +447,7 @@ void lv_btnm_set_btn_width(const lv_obj_t * btnm, uint16_t btn_id, uint8_t width /** * Make the button matrix like a selector widget (only one button may be toggled at a time). * - * Toggling must be enabled on the buttons you want to be selected with `lv_btnm_set_ctrl` or + * Toggling must be enabled on the buttons you want to be selected with `lv_btnm_set_btn_ctrl` or * `lv_btnm_set_btn_ctrl_all`. * * @param btnm Button matrix object From 69b14a6146f4fa2f0d1eb0910e321d0dfe3a177d Mon Sep 17 00:00:00 2001 From: fstengel Date: Mon, 4 May 2020 15:56:13 +0200 Subject: [PATCH 7/9] indev_button_proc: fix crash if points array not set (#1486) --- src/lv_core/lv_indev.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/lv_core/lv_indev.c b/src/lv_core/lv_indev.c index cf5b909ba..38808d3ea 100644 --- a/src/lv_core/lv_indev.c +++ b/src/lv_core/lv_indev.c @@ -660,6 +660,12 @@ static void indev_encoder_proc(lv_indev_t * i, lv_indev_data_t * data) */ static void indev_button_proc(lv_indev_t * i, lv_indev_data_t * data) { + /* Die gracefully if i->btn_points is NULL */ + if (i->btn_points == NULL) { + LV_LOG_WARN("indev_button_proc: btn_points was NULL"); + return; + } + i->proc.types.pointer.act_point.x = i->btn_points[data->btn_id].x; i->proc.types.pointer.act_point.y = i->btn_points[data->btn_id].y; From 18010c2eaa97e6b4e0324d82fc24b6c24c3de2fd Mon Sep 17 00:00:00 2001 From: Gabor Kiss-Vamosi Date: Wed, 6 May 2020 09:40:26 +0200 Subject: [PATCH 8/9] chart: fix overflow in tick drawing --- src/lv_objx/lv_chart.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/lv_objx/lv_chart.c b/src/lv_objx/lv_chart.c index 2dfdef0e9..7a8a4ff22 100644 --- a/src/lv_objx/lv_chart.c +++ b/src/lv_objx/lv_chart.c @@ -1270,10 +1270,10 @@ static void lv_chart_draw_y_ticks(lv_obj_t * chart, const lv_area_t * mask, uint const lv_style_t * style = lv_obj_get_style(chart); lv_opa_t opa_scale = lv_obj_get_opa_scale(chart); - uint8_t i; - uint8_t num_of_labels; - uint8_t num_scale_ticks; - int8_t major_tick_len, minor_tick_len; + uint32_t i; + uint32_t num_of_labels; + uint32_t num_scale_ticks; + int32_t major_tick_len, minor_tick_len; uint8_t iter_dir; lv_point_t p1; @@ -1396,10 +1396,10 @@ static void lv_chart_draw_x_ticks(lv_obj_t * chart, const lv_area_t * mask) const lv_style_t * style = lv_obj_get_style(chart); lv_opa_t opa_scale = lv_obj_get_opa_scale(chart); - uint8_t i; - uint8_t num_of_labels; - uint8_t num_scale_ticks; - uint8_t major_tick_len, minor_tick_len; + uint32_t i; + uint32_t num_of_labels; + uint32_t num_scale_ticks; + uint32_t major_tick_len, minor_tick_len; lv_chart_label_iterator_t iter; lv_point_t p1; lv_point_t p2; From 6a96e07f18760cdbb0a9363553970c212f00c82c Mon Sep 17 00:00:00 2001 From: Anton Konev Date: Thu, 7 May 2020 16:44:02 +0500 Subject: [PATCH 9/9] Minor fixes (#1488) * lvgl/lv_onjx/lv_chart: fixed variable type (uint8_t was compared with 256) * lvgl/lv_core/lv_refr: fixed double assignemnt Co-authored-by: anton.konev --- src/lv_core/lv_refr.c | 2 +- src/lv_objx/lv_chart.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lv_core/lv_refr.c b/src/lv_core/lv_refr.c index 11172ec97..67c0776b5 100644 --- a/src/lv_core/lv_refr.c +++ b/src/lv_core/lv_refr.c @@ -305,7 +305,7 @@ static void lv_refr_area(const lv_area_t * area_p) lv_coord_t w = lv_area_get_width(area_p); lv_coord_t h = lv_area_get_height(area_p); lv_coord_t y2 = - area_p->y2 >= lv_disp_get_ver_res(disp_refr) ? y2 = lv_disp_get_ver_res(disp_refr) - 1 : area_p->y2; + area_p->y2 >= lv_disp_get_ver_res(disp_refr) ? lv_disp_get_ver_res(disp_refr) - 1 : area_p->y2; int32_t max_row = (uint32_t)vdb->size / w; diff --git a/src/lv_objx/lv_chart.c b/src/lv_objx/lv_chart.c index 7a8a4ff22..44b89c5d3 100644 --- a/src/lv_objx/lv_chart.c +++ b/src/lv_objx/lv_chart.c @@ -1192,7 +1192,7 @@ static lv_chart_label_iterator_t lv_chart_create_label_iter(const char * list, u */ static void lv_chart_get_next_label(lv_chart_label_iterator_t * iterator, char * buf) { - uint8_t label_len = 0; + uint32_t label_len = 0; if (iterator->is_reverse_iter) { const char * label_start; /* count the length of the current label*/