mirror of
https://github.com/lvgl/lvgl.git
synced 2026-05-21 14:32:44 +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
|
||||
*==================*/
|
||||
|
||||
#if LV_USE_USER_DATA
|
||||
/*Declare the type of the user data of object (can be e.g. `void *`, `int`, `struct`)*/
|
||||
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*/
|
||||
#define LV_USE_OBJ_REALIGN 1
|
||||
|
||||
@@ -31,6 +31,11 @@
|
||||
#include LV_GC_INCLUDE
|
||||
#endif /* LV_ENABLE_GC */
|
||||
|
||||
|
||||
#if defined(LV_USER_DATA_FREE_INCLUDE)
|
||||
#include LV_USER_DATA_FREE_INCLUDE
|
||||
#endif /* LV_USE_USER_DATA_FREE */
|
||||
|
||||
/*********************
|
||||
* DEFINES
|
||||
*********************/
|
||||
@@ -372,6 +377,11 @@ lv_res_t lv_obj_del(lv_obj_t * obj)
|
||||
lv_anim_del(obj, NULL);
|
||||
#endif
|
||||
|
||||
/*Delete the user data*/
|
||||
#if LV_USE_USER_DATA_FREE
|
||||
LV_USER_DATA_FREE(obj);
|
||||
#endif
|
||||
|
||||
/*Recursively delete the children*/
|
||||
lv_obj_t * i;
|
||||
lv_obj_t * i_next;
|
||||
|
||||
Reference in New Issue
Block a user