From d1a593f30fcbe6cc4ba6f99cac07f4be7ad4ef11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Costa?= Date: Mon, 22 Jun 2026 09:33:50 +0200 Subject: [PATCH] feat(deprecations): add log deprecated and mark deprecated symbols (#10244) --- include/lvgl/core/lv_obj.h | 37 ++++++++++---------- include/lvgl/draw/lv_draw_buf.h | 2 ++ include/lvgl/draw/lv_snapshot.h | 2 ++ include/lvgl/logging/lv_log.h | 22 ++++++++++++ include/lvgl/lv_types.h | 32 ++++++++++++++--- include/lvgl/widgets/lv_scale.h | 1 + include/lvgl/widgets/lv_span.h | 2 ++ include/lvgl/widgets/lv_textarea.h | 1 + src/core/lv_obj.c | 37 +++++++++++--------- src/draw/lv_draw_buf.c | 4 +-- src/draw/snapshot/lv_snapshot.c | 4 +-- src/drivers/wayland/lv_wayland_window.c | 4 +-- src/layouts/lv_layout.c | 6 +--- src/others/fragment/lv_fragment.c | 2 +- src/widgets/scale/lv_scale.c | 2 +- src/widgets/span/lv_span.c | 6 ++-- src/widgets/textarea/lv_textarea.c | 2 +- tests/src/test_cases/widgets/test_objid.c | 2 ++ tests/src/test_cases/widgets/test_span.c | 37 +++++++++++--------- tests/src/test_cases/widgets/test_textarea.c | 17 +++++++++ 20 files changed, 150 insertions(+), 72 deletions(-) diff --git a/include/lvgl/core/lv_obj.h b/include/lvgl/core/lv_obj.h index 95af3d4a74..f28b217b42 100644 --- a/include/lvgl/core/lv_obj.h +++ b/include/lvgl/core/lv_obj.h @@ -439,17 +439,18 @@ void lv_obj_set_id(lv_obj_t * obj, void * id); void * lv_obj_get_id(const lv_obj_t * obj); /** - * DEPRECATED IDs are used only to print the widget trees. - * To find a widget use `lv_obj_find_by_name` * * Get the child object by its id. * It will check children and grandchildren recursively. * Function `lv_obj_id_compare` is used to matched obj id with given id. * + * @deprecated IDs are used only to print the widget trees. To find a widget use `lv_obj_find_by_name` + * * @param obj pointer to an object * @param id the id of the child object * @return pointer to the child object or NULL if not found */ +LV_DEPRECATED("IDs are used only to print the widget trees. To find a widget use lv_obj_find_by_name") lv_obj_t * lv_obj_find_by_id(const lv_obj_t * obj, const void * id); /** @@ -506,26 +507,26 @@ void lv_objid_builtin_destroy(void); **********************/ #if LV_USE_ASSERT_OBJ - /** - * @deprecated Use `LV_CHECK_OBJ(obj, cls, return)` instead. - * `LV_ASSERT_OBJ` aborts on failure; `LV_CHECK_OBJ` logs a warning - * and executes the supplied action, which is safer in production. - */ - #define LV_ASSERT_OBJ(obj_p, obj_class) \ +/** + * @deprecated Use `LV_CHECK_OBJ(obj, cls, return)` instead. + * `LV_ASSERT_OBJ` aborts on failure; `LV_CHECK_OBJ` logs a warning + * and executes the supplied action, which is safer in production. + */ +#define LV_ASSERT_OBJ(obj_p, obj_class) \ do { \ - LV_DEPRECATED_MACRO_WARN("LV_ASSERT_OBJ is deprecated. Use LV_CHECK_OBJ instead."); \ - LV_ASSERT_MSG(obj_p != NULL, "The object is NULL"); \ - LV_ASSERT_MSG(lv_obj_has_class(obj_p, obj_class) == true, "Incompatible object type."); \ - LV_ASSERT_MSG(lv_obj_is_valid(obj_p) == true, "The object is invalid, deleted or corrupted?"); \ + LV_DEPRECATED_MACRO_WARN("LV_ASSERT_OBJ is deprecated. Use LV_CHECK_OBJ instead."); \ + LV_ASSERT_MSG(obj_p != NULL, "The object is NULL"); \ + LV_ASSERT_MSG(lv_obj_has_class(obj_p, obj_class) == true, "Incompatible object type."); \ + LV_ASSERT_MSG(lv_obj_is_valid(obj_p) == true, "The object is invalid, deleted or corrupted?"); \ } while(0) # else - /** - * @deprecated Use `LV_CHECK_OBJ(obj, return)` instead. - */ - #define LV_ASSERT_OBJ(obj_p, obj_class) \ +/** + * @deprecated Use `LV_CHECK_OBJ(obj, cls, return)` instead. + */ +#define LV_ASSERT_OBJ(obj_p, obj_class) \ do { \ - LV_DEPRECATED_MACRO_WARN("LV_ASSERT_OBJ is deprecated. Use LV_CHECK_OBJ instead."); \ - LV_ASSERT_NULL(obj_p); \ + LV_DEPRECATED_MACRO_WARN("LV_ASSERT_OBJ is deprecated. Use LV_CHECK_OBJ instead."); \ + LV_ASSERT_NULL(obj_p); \ } while(0) #endif diff --git a/include/lvgl/draw/lv_draw_buf.h b/include/lvgl/draw/lv_draw_buf.h index 78d684354d..cafca0b5e0 100644 --- a/include/lvgl/draw/lv_draw_buf.h +++ b/include/lvgl/draw/lv_draw_buf.h @@ -370,12 +370,14 @@ void lv_draw_buf_set_palette(lv_draw_buf_t * draw_buf, uint8_t index, lv_color32 /** * @deprecated Use lv_draw_buf_set_palette instead. */ +LV_DEPRECATED("Use lv_draw_buf_set_palette instead.") void lv_image_buf_set_palette(lv_image_dsc_t * dsc, uint8_t id, lv_color32_t c); /** * @deprecated Use lv_draw_buffer_create/destroy instead. * Free the data pointer and dsc struct of an image. */ +LV_DEPRECATED("Use lv_draw_buf_destroy instead.") void lv_image_buf_free(lv_image_dsc_t * dsc); /********************** diff --git a/include/lvgl/draw/lv_snapshot.h b/include/lvgl/draw/lv_snapshot.h index 81b523ce6f..9d09534127 100644 --- a/include/lvgl/draw/lv_snapshot.h +++ b/include/lvgl/draw/lv_snapshot.h @@ -73,6 +73,7 @@ lv_result_t lv_snapshot_take_to_draw_buf(lv_obj_t * obj, lv_color_format_t cf, l * Free the snapshot image returned by @ref lv_snapshot_take * @param dsc the image descriptor generated by lv_snapshot_take. */ +LV_DEPRECATED("use lv_draw_buf_destroy directly") void lv_snapshot_free(lv_image_dsc_t * dsc); /** @@ -85,6 +86,7 @@ void lv_snapshot_free(lv_image_dsc_t * dsc); * @return LV_RESULT_OK on success, LV_RESULT_INVALID on error. * @deprecated Use lv_snapshot_take_to_draw_buf instead. */ +LV_DEPRECATED("use lv_snapshot_take_to_draw_buf instead.") lv_result_t lv_snapshot_take_to_buf(lv_obj_t * obj, lv_color_format_t cf, lv_image_dsc_t * dsc, void * buf, uint32_t buf_size); diff --git a/include/lvgl/logging/lv_log.h b/include/lvgl/logging/lv_log.h index 8975cddaa3..06938d208a 100644 --- a/include/lvgl/logging/lv_log.h +++ b/include/lvgl/logging/lv_log.h @@ -118,6 +118,25 @@ void lv_log_add(lv_log_level_t level, const char * file, int line, # endif #endif + +#ifndef LV_LOG_WARN_ONCE +# if LV_LOG_LEVEL <= LV_LOG_LEVEL_WARN +# define LV_LOG_WARN_ONCE(...) do { \ + static int warned = 0; \ + if(!warned) { \ + warned = 1; \ + lv_log_add(LV_LOG_LEVEL_WARN, LV_LOG_FILE, LV_LOG_LINE, __func__, __VA_ARGS__); \ + } \ + } while(0) +# else +# define LV_LOG_WARN_ONCE(...) do {}while(0) +# endif +#endif + +#ifndef LV_LOG_DEPRECATED +#define LV_LOG_DEPRECATED(msg) LV_LOG_WARN_ONCE("Deprecated: " msg) +#endif + #ifndef LV_LOG_ERROR # if LV_LOG_LEVEL <= LV_LOG_LEVEL_ERROR # define LV_LOG_ERROR(...) lv_log_add(LV_LOG_LEVEL_ERROR, LV_LOG_FILE, LV_LOG_LINE, __func__, __VA_ARGS__) @@ -151,10 +170,13 @@ void lv_log_add(lv_log_level_t level, const char * file, int line, #define LV_LOG_TRACE(...) do {}while(0) #define LV_LOG_INFO(...) do {}while(0) #define LV_LOG_WARN(...) do {}while(0) +#define LV_LOG_WARN_ONCE(...) do {}while(0) #define LV_LOG_ERROR(...) do {}while(0) #define LV_LOG_USER(...) do {}while(0) #define LV_LOG(...) do {}while(0) +#define LV_LOG_DEPRECATED(_) do {}while(0) + #endif /*LV_USE_LOG*/ #ifdef __cplusplus diff --git a/include/lvgl/lv_types.h b/include/lvgl/lv_types.h index 0b95399b77..fc3865ea4a 100644 --- a/include/lvgl/lv_types.h +++ b/include/lvgl/lv_types.h @@ -470,6 +470,28 @@ typedef struct _lv_draw_eve_unit_t lv_draw_eve_unit_t; #endif #endif /* LV_DEPRECATED not defined */ +#ifndef LV_DEPRECATIONS_IGNORE_BEGIN +#if defined(PYCPARSER) +#define LV_DEPRECATIONS_IGNORE_BEGIN +#define LV_DEPRECATIONS_IGNORE_END +#elif defined(__IAR_SYSTEMS_ICC__) +#define LV_DEPRECATIONS_IGNORE_BEGIN _Pragma("diag_suppress=Pe1444") +#define LV_DEPRECATIONS_IGNORE_END _Pragma("diag_default=Pe1444") +#elif defined(__GNUC__) || defined(__clang__) +#define LV_DEPRECATIONS_IGNORE_BEGIN \ + _Pragma("GCC diagnostic push") \ + _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") +#define LV_DEPRECATIONS_IGNORE_END \ + _Pragma("GCC diagnostic pop") +#elif defined(_MSC_VER) +#define LV_DEPRECATIONS_IGNORE_BEGIN __pragma(warning(push)) __pragma(warning(disable: 4996)) +#define LV_DEPRECATIONS_IGNORE_END __pragma(warning(pop)) +#else +#define LV_DEPRECATIONS_IGNORE_BEGIN +#define LV_DEPRECATIONS_IGNORE_END +#endif +#endif /* LV_DEPRECATIONS_IGNORE_BEGIN */ + /** * Helper used inside deprecated macro bodies to emit a compiler warning at the * expansion site in user code. @@ -488,11 +510,11 @@ typedef struct _lv_draw_eve_unit_t lv_draw_eve_unit_t; #define LV_DEPRECATED_MACRO_WARN(msg) ((void)0) #elif defined(__GNUC__) || defined(__clang__) || defined(__IAR_SYSTEMS_ICC__) #define LV_DEPRECATED_MACRO_WARN(msg) \ -do { \ -typedef int __attribute__((deprecated(msg))) __lv_deprecated_t; \ -__lv_deprecated_t __lv_deprecated_dummy; \ -(void)__lv_deprecated_dummy; \ -} while(0) + do { \ + typedef int __attribute__((deprecated(msg))) __lv_deprecated_t; \ + __lv_deprecated_t __lv_deprecated_dummy; \ + (void)__lv_deprecated_dummy; \ + } while(0) #else /* Fallback: no warning, but the macro still compiles */ #define LV_DEPRECATED_MACRO_WARN(msg) ((void)0) diff --git a/include/lvgl/widgets/lv_scale.h b/include/lvgl/widgets/lv_scale.h index 01629d7ebf..3a705bc5aa 100644 --- a/include/lvgl/widgets/lv_scale.h +++ b/include/lvgl/widgets/lv_scale.h @@ -273,6 +273,7 @@ void lv_scale_set_section_max_value(lv_obj_t * scale, lv_scale_section_t * secti * @param part the part of the Scale the style will apply to, e.g. LV_PART_INDICATOR * @param section_part_style pointer to style to apply */ +LV_DEPRECATED("use lv_scale_set_section_style_main/indicator/items instead") void lv_scale_section_set_style(lv_scale_section_t * section, lv_part_t part, lv_style_t * section_part_style); /** diff --git a/include/lvgl/widgets/lv_span.h b/include/lvgl/widgets/lv_span.h index 5bc5b0cfe4..f27eb430dd 100644 --- a/include/lvgl/widgets/lv_span.h +++ b/include/lvgl/widgets/lv_span.h @@ -176,6 +176,7 @@ void lv_spangroup_set_span_style(lv_obj_t * obj, lv_span_t * span, const lv_styl * @param obj pointer to a spangroup object. * @param align see lv_text_align_t for details. */ +LV_DEPRECATED("Use text_align style property instead") void lv_spangroup_set_align(lv_obj_t * obj, lv_text_align_t align); /** @@ -198,6 +199,7 @@ void lv_spangroup_set_indent(lv_obj_t * obj, int32_t indent); * @param obj pointer to a spangroup object. * @param mode see lv_span_mode_t for details. */ +LV_DEPRECATED("set the width to LV_SIZE_CONTENT or fixed value to control expanding/wrapping") void lv_spangroup_set_mode(lv_obj_t * obj, lv_span_mode_t mode); /** diff --git a/include/lvgl/widgets/lv_textarea.h b/include/lvgl/widgets/lv_textarea.h index e7703f5269..35f9a78713 100644 --- a/include/lvgl/widgets/lv_textarea.h +++ b/include/lvgl/widgets/lv_textarea.h @@ -206,6 +206,7 @@ void lv_textarea_set_password_show_time(lv_obj_t * obj, uint32_t time); * @param obj pointer to a text area object * @param align the align mode from ::lv_text_align_t */ +LV_DEPRECATED("Use text_align style property instead") void lv_textarea_set_align(lv_obj_t * obj, lv_text_align_t align); /*===================== diff --git a/src/core/lv_obj.c b/src/core/lv_obj.c index 40d780a828..f8d8fc3f3b 100644 --- a/src/core/lv_obj.c +++ b/src/core/lv_obj.c @@ -78,6 +78,10 @@ static void call_delete_cb(lv_event_t * e); static lv_point_t lv_obj_get_scroll_end_helper(lv_obj_t * obj); #endif +#if LV_USE_OBJ_ID + static lv_obj_t * obj_find_by_id(const lv_obj_t * obj, const void * id); +#endif + /********************** * STATIC VARIABLES **********************/ @@ -549,25 +553,10 @@ void * lv_obj_get_id(const lv_obj_t * obj) lv_obj_t * lv_obj_find_by_id(const lv_obj_t * obj, const void * id) { LV_CHECK_ARG(id != NULL, return NULL); - - LV_LOG_WARN("DEPRECATED: IDs are used only to print the widget trees. To find a widget use obj_name"); - + LV_LOG_DEPRECATED("IDs are used only to print the widget trees. To find a widget use obj_name"); if(obj == NULL) obj = lv_display_get_screen_active(NULL); if(obj == NULL) return NULL; - - uint32_t i; - uint32_t child_cnt = lv_obj_get_child_count(obj); - - for(i = 0; i < child_cnt; i++) { - lv_obj_t * child = obj->spec_attr->children[i]; - - if(lv_obj_id_compare(child->id, id) == 0) return child; - lv_obj_t * found = lv_obj_find_by_id(child, id); - - if(found != NULL) return found; - } - - return NULL; + return obj_find_by_id(obj, id); } #endif @@ -1470,3 +1459,17 @@ static lv_result_t lv_obj_get_any(const lv_obj_t * obj, lv_prop_id_t id, lv_prop } } #endif /*LV_USE_OBJ_PROPERTY*/ + +#if LV_USE_OBJ_ID +static lv_obj_t * obj_find_by_id(const lv_obj_t * obj, const void * id) +{ + uint32_t child_cnt = lv_obj_get_child_count(obj); + for(uint32_t i = 0; i < child_cnt; i++) { + lv_obj_t * child = obj->spec_attr->children[i]; + if(lv_obj_id_compare(child->id, id) == 0) return child; + lv_obj_t * found = obj_find_by_id(child, id); + if(found != NULL) return found; + } + return NULL; +} +#endif diff --git a/src/draw/lv_draw_buf.c b/src/draw/lv_draw_buf.c index 2c163c0c0b..cc2f16d7a0 100644 --- a/src/draw/lv_draw_buf.c +++ b/src/draw/lv_draw_buf.c @@ -535,13 +535,13 @@ void lv_draw_buf_to_image(const lv_draw_buf_t * buf, lv_image_dsc_t * img) void lv_image_buf_set_palette(lv_image_dsc_t * dsc, uint8_t id, lv_color32_t c) { - LV_LOG_WARN("Deprecated API, use lv_draw_buf_set_palette instead."); + LV_LOG_DEPRECATED("Use lv_draw_buf_set_palette instead."); lv_draw_buf_set_palette((lv_draw_buf_t *)dsc, id, c); } void lv_image_buf_free(lv_image_dsc_t * dsc) { - LV_LOG_WARN("Deprecated API, use lv_draw_buf_destroy instead."); + LV_LOG_DEPRECATED("Use lv_draw_buf_destroy instead."); if(dsc != NULL) { if(dsc->data != NULL) lv_free((void *)dsc->data); diff --git a/src/draw/snapshot/lv_snapshot.c b/src/draw/snapshot/lv_snapshot.c index 6fbc581dcb..2e69000441 100644 --- a/src/draw/snapshot/lv_snapshot.c +++ b/src/draw/snapshot/lv_snapshot.c @@ -203,7 +203,7 @@ lv_draw_buf_t * lv_snapshot_take(lv_obj_t * obj, lv_color_format_t cf) void lv_snapshot_free(lv_image_dsc_t * dsc) { - LV_LOG_WARN("Deprecated API, use lv_draw_buf_destroy directly."); + LV_LOG_DEPRECATED("use lv_draw_buf_destroy directly"); lv_draw_buf_destroy((lv_draw_buf_t *)dsc); } @@ -212,7 +212,7 @@ lv_result_t lv_snapshot_take_to_buf(lv_obj_t * obj, lv_color_format_t cf, lv_ima uint32_t buf_size) { lv_draw_buf_t draw_buf; - LV_LOG_WARN("Deprecated API, use lv_snapshot_take_to_draw_buf instead."); + LV_LOG_DEPRECATED("use lv_snapshot_take_to_draw_buf instead."); lv_draw_buf_init(&draw_buf, 1, 1, cf, buf_size, buf, buf_size); lv_result_t res = lv_snapshot_take_to_draw_buf(obj, cf, &draw_buf); if(res == LV_RESULT_OK) { diff --git a/src/drivers/wayland/lv_wayland_window.c b/src/drivers/wayland/lv_wayland_window.c index 2278e73e8c..5894e16c1a 100644 --- a/src/drivers/wayland/lv_wayland_window.c +++ b/src/drivers/wayland/lv_wayland_window.c @@ -49,8 +49,8 @@ lv_display_t * lv_wayland_window_create(uint32_t hor_res, uint32_t ver_res, char { lv_wayland_init(); if(close_cb) { - LV_LOG_WARN("'lv_wayland_display_close_cb_t' is deprecated and will be removed in the next release. Instead bind an LV_EVENT_DELETE to the display\ - Bind an LV_EVENT_DELETE to the display returned by `lv_wayland_window_create` instead."); + LV_LOG_DEPRECATED("'lv_wayland_display_close_cb_t' is deprecated and will be removed in the next release. " + "Bind an LV_EVENT_DELETE to the display returned by `lv_wayland_window_create` instead."); } lv_wl_window_t * window = lv_ll_ins_tail(&lv_wl_ctx.window_ll); diff --git a/src/layouts/lv_layout.c b/src/layouts/lv_layout.c index 6eb792237b..bd2ff587ed 100644 --- a/src/layouts/lv_layout.c +++ b/src/layouts/lv_layout.c @@ -68,11 +68,7 @@ uint32_t lv_layout_create(lv_layout_callbacks_t callbacks, void * user_data) uint32_t lv_layout_register(lv_layout_update_cb_t cb, void * user_data) { - static bool warned = false; - if(!warned) { - LV_LOG_WARN("`lv_layout_register` is deprecated and replaced by `lv_layout_create`."); - warned = true; - } + LV_LOG_DEPRECATED("`lv_layout_register` is deprecated and replaced by `lv_layout_create`."); lv_layout_callbacks_t cbs = {.layout_update_cb = cb, . get_min_size_cb = NULL}; return lv_layout_create(cbs, user_data); } diff --git a/src/others/fragment/lv_fragment.c b/src/others/fragment/lv_fragment.c index fcc61c06cb..cee6ab49ab 100644 --- a/src/others/fragment/lv_fragment.c +++ b/src/others/fragment/lv_fragment.c @@ -23,7 +23,7 @@ static void cb_delete_assertion(lv_event_t * event); lv_fragment_t * lv_fragment_create(const lv_fragment_class_t * cls, void * args) { - LV_LOG_WARN("lv_fragment is deprecated and will be removed in an upcoming release."); + LV_LOG_DEPRECATED("lv_fragment is deprecated and will be removed in an upcoming release."); LV_ASSERT_NULL(cls); LV_ASSERT_NULL(cls->create_obj_cb); LV_ASSERT(cls->instance_size >= sizeof(lv_fragment_t)); diff --git a/src/widgets/scale/lv_scale.c b/src/widgets/scale/lv_scale.c index 38b373ffd7..c8d3513929 100644 --- a/src/widgets/scale/lv_scale.c +++ b/src/widgets/scale/lv_scale.c @@ -504,7 +504,7 @@ void lv_scale_set_section_style_items(lv_obj_t * scale, lv_scale_section_t * sec void lv_scale_section_set_style(lv_scale_section_t * section, lv_part_t part, lv_style_t * section_part_style) { - LV_LOG_WARN("Deprecated, use lv_scale_set_section_style_main/indicator/items instead"); + LV_LOG_DEPRECATED("use lv_scale_set_section_style_main/indicator/items instead"); if(NULL == section) return; diff --git a/src/widgets/span/lv_span.c b/src/widgets/span/lv_span.c index 8c747e4c41..bdd919ddb4 100644 --- a/src/widgets/span/lv_span.c +++ b/src/widgets/span/lv_span.c @@ -89,6 +89,7 @@ static lv_span_coords_t make_span_coords(const lv_span_t * prev_span, const lv_s **********************/ #if LV_USE_OBJ_PROPERTY +LV_DEPRECATIONS_IGNORE_BEGIN static const lv_property_ops_t lv_span_properties[] = { { .id = LV_PROPERTY_SPAN_ALIGN, @@ -116,6 +117,7 @@ static const lv_property_ops_t lv_span_properties[] = { .getter = lv_spangroup_get_max_lines, }, }; +LV_DEPRECATIONS_IGNORE_END #endif const lv_obj_class_t lv_spangroup_class = { @@ -342,7 +344,7 @@ void lv_spangroup_set_span_style(lv_obj_t * obj, lv_span_t * span, const lv_styl void lv_spangroup_set_align(lv_obj_t * obj, lv_text_align_t align) { - LV_LOG_WARN("DEPRECATED. Use the text_align style property instead"); + LV_LOG_DEPRECATED("use the text_align style property instead"); lv_obj_set_style_text_align(obj, align, LV_PART_MAIN); } @@ -370,7 +372,7 @@ void lv_spangroup_set_indent(lv_obj_t * obj, int32_t indent) void lv_spangroup_set_mode(lv_obj_t * obj, lv_span_mode_t mode) { - LV_LOG_WARN("DEPRECATED, set the width to LV_SIZE_CONTENT or fixed value to control expanding/wrapping"); + LV_LOG_DEPRECATED("set the width to LV_SIZE_CONTENT or fixed value to control expanding/wrapping"); LV_CHECK_OBJ(obj, MY_CLASS, return); if(mode >= LV_SPAN_MODE_LAST) return; diff --git a/src/widgets/textarea/lv_textarea.c b/src/widgets/textarea/lv_textarea.c index 7fc456ee20..9a3b4a004e 100644 --- a/src/widgets/textarea/lv_textarea.c +++ b/src/widgets/textarea/lv_textarea.c @@ -542,7 +542,7 @@ void lv_textarea_set_password_show_time(lv_obj_t * obj, uint32_t time) void lv_textarea_set_align(lv_obj_t * obj, lv_text_align_t align) { - LV_LOG_WARN("Deprecated: use the normal text_align style property instead"); + LV_LOG_DEPRECATED("Use text_align style property instead"); lv_obj_set_style_text_align(obj, align, 0); switch(align) { diff --git a/tests/src/test_cases/widgets/test_objid.c b/tests/src/test_cases/widgets/test_objid.c index 643465638d..882dfab195 100644 --- a/tests/src/test_cases/widgets/test_objid.c +++ b/tests/src/test_cases/widgets/test_objid.c @@ -37,8 +37,10 @@ void test_obj_id_get_child(void) lv_obj_set_id(child, (void *)(lv_uintptr_t)42); lv_obj_set_id(grandchild, (void *)(lv_uintptr_t)43); + LV_DEPRECATIONS_IGNORE_BEGIN TEST_ASSERT_EQUAL_PTR(child, lv_obj_find_by_id(NULL, (void *)(lv_uintptr_t)42)); TEST_ASSERT_EQUAL_PTR(grandchild, lv_obj_find_by_id(NULL, (void *)(lv_uintptr_t)43)); + LV_DEPRECATIONS_IGNORE_END } #endif diff --git a/tests/src/test_cases/widgets/test_span.c b/tests/src/test_cases/widgets/test_span.c index 5a26607c1b..ada90c9c51 100644 --- a/tests/src/test_cases/widgets/test_span.c +++ b/tests/src/test_cases/widgets/test_span.c @@ -123,10 +123,12 @@ void test_span_set_text_static_with_previous_text_overwrites(void) void test_spangroup_set_align(void) { + LV_DEPRECATIONS_IGNORE_BEGIN const lv_text_align_t align = LV_TEXT_ALIGN_CENTER; lv_spangroup_set_align(spangroup, align); TEST_ASSERT_EQUAL(align, lv_spangroup_get_align(spangroup)); + LV_DEPRECATIONS_IGNORE_END } void test_spangroup_set_overflow(void) @@ -156,6 +158,7 @@ void test_spangroup_set_indent(void) void test_spangroup_set_mode(void) { + LV_DEPRECATIONS_IGNORE_BEGIN lv_spangroup_set_mode(spangroup, LV_SPAN_MODE_EXPAND); TEST_ASSERT_EQUAL(LV_SPAN_MODE_EXPAND, lv_spangroup_get_mode(spangroup)); @@ -164,13 +167,16 @@ void test_spangroup_set_mode(void) lv_spangroup_set_mode(spangroup, LV_SPAN_MODE_FIXED); TEST_ASSERT_EQUAL(LV_SPAN_MODE_FIXED, lv_spangroup_get_mode(spangroup)); + LV_DEPRECATIONS_IGNORE_END } void test_spangroup_set_mode_invalid_parameter_mode_not_changed(void) { + LV_DEPRECATIONS_IGNORE_BEGIN lv_spangroup_set_mode(spangroup, LV_SPAN_MODE_EXPAND); lv_spangroup_set_mode(spangroup, LV_SPAN_MODE_LAST); TEST_ASSERT_EQUAL(LV_SPAN_MODE_EXPAND, lv_spangroup_get_mode(spangroup)); + LV_DEPRECATIONS_IGNORE_END } void test_spangroup_set_max_lines(void) @@ -216,7 +222,7 @@ void test_spangroup_draw(void) { active_screen = lv_screen_active(); spangroup = lv_spangroup_create(active_screen); - lv_spangroup_set_mode(spangroup, LV_SPAN_MODE_BREAK); + lv_obj_set_height(spangroup, LV_SIZE_CONTENT); lv_obj_set_width(spangroup, 100); lv_span_t * span_1 = lv_spangroup_add_span(spangroup); lv_span_set_text(span_1, "This text is over 100 pixels width"); @@ -229,15 +235,16 @@ void test_spangroup_draw(void) TEST_ASSERT_EQUAL_SCREENSHOT("widgets/span_02.png"); - lv_spangroup_set_align(spangroup, LV_TEXT_ALIGN_CENTER); + lv_obj_set_style_text_align(spangroup, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN); TEST_ASSERT_EQUAL_SCREENSHOT("widgets/span_03.png"); - lv_spangroup_set_mode(spangroup, LV_SPAN_MODE_EXPAND); + lv_obj_set_size(spangroup, LV_SIZE_CONTENT, LV_SIZE_CONTENT); TEST_ASSERT_EQUAL_SCREENSHOT("widgets/span_04.png"); - lv_spangroup_set_mode(spangroup, LV_SPAN_MODE_FIXED); + lv_obj_set_width(spangroup, 100); + lv_obj_set_content_height(spangroup, 100); TEST_ASSERT_EQUAL_SCREENSHOT("widgets/span_05.png"); } @@ -324,8 +331,7 @@ void test_spangroup_chinese_break_line(void) active_screen = lv_screen_active(); spangroup = lv_spangroup_create(active_screen); - lv_obj_set_size(spangroup, LV_PCT(100), LV_PCT(100)); - lv_spangroup_set_mode(spangroup, LV_SPAN_MODE_BREAK); + lv_obj_set_size(spangroup, LV_PCT(100), LV_SIZE_CONTENT); lv_obj_set_style_text_font(spangroup, font, 0); lv_obj_set_style_border_width(spangroup, 2, 0); @@ -388,7 +394,7 @@ void test_spangroup_get_span_coords(void) /* Set styles and properties for the span group */ lv_obj_set_style_outline_width(spangroup, 1, 0); lv_spangroup_set_indent(spangroup, 20); - lv_spangroup_set_mode(spangroup, LV_SPAN_MODE_BREAK); + lv_obj_set_height(spangroup, LV_SIZE_CONTENT); lv_obj_set_width(spangroup, 300); lv_obj_set_style_pad_all(spangroup, 20, LV_PART_MAIN); @@ -489,7 +495,7 @@ void test_spangroup_set_right_align_on_overflow(void) lv_obj_set_width(spangroup, 180); lv_obj_set_height(spangroup, 30); - lv_spangroup_set_align(spangroup, LV_TEXT_ALIGN_RIGHT); + lv_obj_set_style_text_align(spangroup, LV_TEXT_ALIGN_RIGHT, LV_PART_MAIN); lv_span_t * span = lv_spangroup_add_span(spangroup); lv_span_set_text_static(span, "China is a beautiful country."); @@ -527,7 +533,7 @@ void test_spangroup_rtl_mode_set_left_align(void) lv_obj_set_style_text_font(spangroup, &lv_font_dejavu_16_persian_hebrew, 0); lv_obj_set_style_base_dir(spangroup, LV_BASE_DIR_RTL, 0); lv_obj_set_size(spangroup, 300, lv_font_dejavu_16_persian_hebrew.line_height); - lv_spangroup_set_align(spangroup, LV_TEXT_ALIGN_LEFT); + lv_obj_set_style_text_align(spangroup, LV_TEXT_ALIGN_LEFT, LV_PART_MAIN); lv_span_t * span = lv_spangroup_add_span(spangroup); lv_span_set_text_static(span, message); @@ -546,7 +552,7 @@ void test_spangroup_rtl_mode_set_center_align(void) lv_obj_set_style_text_font(spangroup, &lv_font_dejavu_16_persian_hebrew, 0); lv_obj_set_style_base_dir(spangroup, LV_BASE_DIR_RTL, 0); lv_obj_set_size(spangroup, 300, lv_font_dejavu_16_persian_hebrew.line_height); - lv_spangroup_set_align(spangroup, LV_TEXT_ALIGN_CENTER); + lv_obj_set_style_text_align(spangroup, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN); lv_span_t * span = lv_spangroup_add_span(spangroup); lv_span_set_text_static(span, message); @@ -571,9 +577,8 @@ void test_spangroup_set_line_space(void) active_screen = lv_screen_active(); spangroup = lv_spangroup_create(active_screen); lv_obj_set_y(spangroup, -26); - lv_obj_set_width(spangroup, 300); + lv_obj_set_size(spangroup, 300, LV_SIZE_CONTENT); lv_obj_set_style_border_width(spangroup, 2, 0); - lv_spangroup_set_mode(spangroup, LV_SPAN_MODE_BREAK); lv_obj_set_style_text_line_space(spangroup, 2, 0); lv_obj_set_style_text_font(spangroup, font, 0); @@ -668,7 +673,7 @@ void test_spangroup_ellipsis_not_shown_when_text_fits(void) lv_obj_set_style_text_font(spangroup1, font, 0); lv_obj_set_style_outline_width(spangroup1, 1, 0); lv_spangroup_set_overflow(spangroup1, LV_SPAN_OVERFLOW_ELLIPSIS); - lv_spangroup_set_mode(spangroup1, LV_SPAN_MODE_BREAK); + lv_obj_set_height(spangroup1, LV_SIZE_CONTENT); lv_span_t * span1 = lv_spangroup_add_span(spangroup1); lv_span_set_text(span1, "消息免打扰"); @@ -683,7 +688,8 @@ void test_spangroup_ellipsis_not_shown_when_text_fits(void) lv_obj_set_style_text_font(spangroup2, font, 0); lv_obj_set_style_outline_width(spangroup2, 1, 0); lv_spangroup_set_overflow(spangroup2, LV_SPAN_OVERFLOW_ELLIPSIS); - lv_spangroup_set_mode(spangroup2, LV_SPAN_MODE_BREAK); + lv_obj_set_height(spangroup2, LV_SIZE_CONTENT); + lv_obj_set_y(spangroup2, 40); lv_obj_set_width(spangroup2, 250); lv_obj_set_style_max_height(spangroup2, constrained_h, 0); @@ -716,10 +722,9 @@ void test_spangroup_ellipsis_multiline_truncated(void) int32_t line_h = lv_font_get_line_height(LV_FONT_DEFAULT); lv_obj_set_style_outline_width(spangroup, 1, 0); - lv_obj_set_width(spangroup, 100); + lv_obj_set_size(spangroup, 100, LV_SIZE_CONTENT); lv_obj_set_style_max_height(spangroup, line_h * 2, 0); lv_spangroup_set_overflow(spangroup, LV_SPAN_OVERFLOW_ELLIPSIS); - lv_spangroup_set_mode(spangroup, LV_SPAN_MODE_BREAK); lv_span_t * span = lv_spangroup_add_span(spangroup); lv_span_set_text(span, "This text is long enough to wrap into three or more lines in a 100px container"); diff --git a/tests/src/test_cases/widgets/test_textarea.c b/tests/src/test_cases/widgets/test_textarea.c index a0c3f56b34..b2a5b89fdc 100644 --- a/tests/src/test_cases/widgets/test_textarea.c +++ b/tests/src/test_cases/widgets/test_textarea.c @@ -511,6 +511,7 @@ void test_textarea_set_password_show_time(void) void test_textarea_set_align(void) { + LV_DEPRECATIONS_IGNORE_BEGIN lv_textarea_set_align(textarea, LV_TEXT_ALIGN_CENTER); lv_textarea_set_text(textarea, "1234567890"); TEST_ASSERT_EQUAL_SCREENSHOT("textarea_align_center.png"); @@ -522,6 +523,22 @@ void test_textarea_set_align(void) lv_textarea_set_align(textarea, LV_TEXT_ALIGN_RIGHT); lv_textarea_set_text(textarea, "1234567890"); TEST_ASSERT_EQUAL_SCREENSHOT("textarea_align_right.png"); + LV_DEPRECATIONS_IGNORE_END +} + +void test_textarea_text_align(void) +{ + lv_obj_set_style_text_align(textarea, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN); + lv_textarea_set_text(textarea, "1234567890"); + TEST_ASSERT_EQUAL_SCREENSHOT("textarea_align_center.png"); + + lv_obj_set_style_text_align(textarea, LV_TEXT_ALIGN_LEFT, LV_PART_MAIN); + lv_textarea_set_text(textarea, "1234567890"); + TEST_ASSERT_EQUAL_SCREENSHOT("textarea_align_left.png"); + + lv_obj_set_style_text_align(textarea, LV_TEXT_ALIGN_RIGHT, LV_PART_MAIN); + lv_textarea_set_text(textarea, "1234567890"); + TEST_ASSERT_EQUAL_SCREENSHOT("textarea_align_right.png"); } void test_textarea_cursor_show(void)