Merge pull request #1386 from ShenRen/dev-7.0

add a object`s user data free interface (redo)
This commit is contained in:
Gabor Kiss-Vamosi
2020-02-17 06:03:47 +01:00
committed by GitHub
2 changed files with 19 additions and 0 deletions
+9
View File
@@ -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
+10
View File
@@ -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;