mirror of
https://github.com/lvgl/lvgl.git
synced 2026-05-31 16:27:03 +08:00
Merge pull request #1386 from ShenRen/dev-7.0
add a object`s user data free interface (redo)
This commit is contained in:
@@ -405,8 +405,17 @@ typedef void * lv_font_user_data_t;
|
|||||||
* LV_OBJ SETTINGS
|
* LV_OBJ SETTINGS
|
||||||
*==================*/
|
*==================*/
|
||||||
|
|
||||||
|
#if LV_USE_USER_DATA
|
||||||
/*Declare the type of the user data of object (can be e.g. `void *`, `int`, `struct`)*/
|
/*Declare the type of the user data of object (can be e.g. `void *`, `int`, `struct`)*/
|
||||||
typedef void * lv_obj_user_data_t;
|
typedef void * lv_obj_user_data_t;
|
||||||
|
/*Provide a function to free user data*/
|
||||||
|
#define LV_USE_USER_DATA_FREE 0
|
||||||
|
#if LV_USE_USER_DATA_FREE
|
||||||
|
# define LV_USER_DATA_FREE_INCLUDE "something.h" /*Header for user data free function*/
|
||||||
|
/* Function prototype : void user_data_free(lv_obj_t * obj); */
|
||||||
|
# define LV_USER_DATA_FREE (user_data_free) /*Invoking for user data free function*/
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
/*1: enable `lv_obj_realaign()` based on `lv_obj_align()` parameters*/
|
/*1: enable `lv_obj_realaign()` based on `lv_obj_align()` parameters*/
|
||||||
#define LV_USE_OBJ_REALIGN 1
|
#define LV_USE_OBJ_REALIGN 1
|
||||||
|
|||||||
@@ -31,6 +31,11 @@
|
|||||||
#include LV_GC_INCLUDE
|
#include LV_GC_INCLUDE
|
||||||
#endif /* LV_ENABLE_GC */
|
#endif /* LV_ENABLE_GC */
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(LV_USER_DATA_FREE_INCLUDE)
|
||||||
|
#include LV_USER_DATA_FREE_INCLUDE
|
||||||
|
#endif /* LV_USE_USER_DATA_FREE */
|
||||||
|
|
||||||
/*********************
|
/*********************
|
||||||
* DEFINES
|
* DEFINES
|
||||||
*********************/
|
*********************/
|
||||||
@@ -372,6 +377,11 @@ lv_res_t lv_obj_del(lv_obj_t * obj)
|
|||||||
lv_anim_del(obj, NULL);
|
lv_anim_del(obj, NULL);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*Delete the user data*/
|
||||||
|
#if LV_USE_USER_DATA_FREE
|
||||||
|
LV_USER_DATA_FREE(obj);
|
||||||
|
#endif
|
||||||
|
|
||||||
/*Recursively delete the children*/
|
/*Recursively delete the children*/
|
||||||
lv_obj_t * i;
|
lv_obj_t * i;
|
||||||
lv_obj_t * i_next;
|
lv_obj_t * i_next;
|
||||||
|
|||||||
Reference in New Issue
Block a user