1
0
mirror of https://github.com/lvgl/lvgl.git synced 2025-01-28 07:03:00 +08:00

refactor(obj class) add user_data parameter to lv_obj_class_create_obj()

This commit is contained in:
Gabor Kiss-Vamosi 2021-05-03 14:06:55 +02:00
parent 4f743a7aa8
commit 445c0ea9ae
31 changed files with 44 additions and 39 deletions

View File

@ -174,7 +174,7 @@ void lv_deinit(void)
lv_obj_t * lv_obj_create(lv_obj_t * parent)
{
return lv_obj_class_create_obj(&lv_obj_class, parent);
return lv_obj_class_create_obj(&lv_obj_class, parent, NULL);
}
/*=====================

View File

@ -40,7 +40,7 @@ static uint32_t get_instance_size(const lv_obj_class_t * class_p);
* GLOBAL FUNCTIONS
**********************/
lv_obj_t * lv_obj_class_create_obj(const lv_obj_class_t * class_p, lv_obj_t * parent)
lv_obj_t * lv_obj_class_create_obj(const lv_obj_class_t * class_p, lv_obj_t * parent, void * user_data)
{
LV_TRACE_OBJ_CREATE("Creating object with %p class on %p parent", class_p, parent);
uint32_t s = get_instance_size(class_p);
@ -49,6 +49,9 @@ lv_obj_t * lv_obj_class_create_obj(const lv_obj_class_t * class_p, lv_obj_t * pa
lv_memset_00(obj, s);
obj->class_p = class_p;
obj->parent = parent;
#if LV_USE_USER_DATA
obj->user_data = user_data;
#endif
/*Create a screen*/
if(parent == NULL) {

View File

@ -68,11 +68,13 @@ typedef struct _lv_obj_class_t {
/**
* Create an object form a class descriptor
* @param class_p pointer to a class
* @param parent pointer to an object where the new object should be created
* @return pointer to the created object
* @param class_p pointer to a class
* @param parent pointer to an object where the new object should be created
* @param user_data a custom user_data to set in `obj->user_data` in creation time. Requires `LV_USE_USER_DATA 1`
* As some event fire during creation it's useful make user_data available for those events too.
* @return pointer to the created object
*/
struct _lv_obj_t * lv_obj_class_create_obj(const struct _lv_obj_class_t * class_p, struct _lv_obj_t * parent);
struct _lv_obj_t * lv_obj_class_create_obj(const struct _lv_obj_class_t * class_p, struct _lv_obj_t * parent, void * user_data);
void _lv_obj_destructor(struct _lv_obj_t * obj);

View File

@ -56,7 +56,7 @@ static const char * day_names_def[7] = LV_CALENDAR_DEFAULT_DAY_NAMES;
lv_obj_t * lv_calendar_create(lv_obj_t * parent)
{
lv_obj_t * obj = lv_obj_class_create_obj(&lv_calendar_class, parent);
lv_obj_t * obj = lv_obj_class_create_obj(&lv_calendar_class, parent, NULL);
return obj;
}

View File

@ -65,7 +65,7 @@ const lv_obj_class_t lv_chart_class = {
lv_obj_t * lv_chart_create(lv_obj_t * parent)
{
LV_LOG_INFO("begin")
return lv_obj_class_create_obj(&lv_chart_class, parent);
return lv_obj_class_create_obj(&lv_chart_class, parent, NULL);
}
void lv_chart_set_type(lv_obj_t * obj, lv_chart_type_t type)

View File

@ -75,7 +75,7 @@ static bool create_knob_recolor;
lv_obj_t * lv_colorwheel_create(lv_obj_t * parent, bool knob_recolor)
{
create_knob_recolor = knob_recolor;
return lv_obj_class_create_obj(&lv_colorwheel_class, parent);
return lv_obj_class_create_obj(&lv_colorwheel_class, parent, NULL);
}
/*=====================

View File

@ -55,7 +55,7 @@ const lv_obj_class_t lv_imgbtn_class = {
*/
lv_obj_t * lv_imgbtn_create(lv_obj_t * parent)
{
return lv_obj_class_create_obj(&lv_imgbtn_class, parent);
return lv_obj_class_create_obj(&lv_imgbtn_class, parent, NULL);
}
/*=====================

View File

@ -121,7 +121,7 @@ static const lv_btnmatrix_ctrl_t * kb_ctrl[5] = {
*/
lv_obj_t * lv_keyboard_create(lv_obj_t * parent)
{
return lv_obj_class_create_obj(&lv_keyboard_class, parent);
return lv_obj_class_create_obj(&lv_keyboard_class, parent, NULL);
}
/*=====================

View File

@ -59,7 +59,7 @@ const lv_obj_class_t lv_led_class = {
*/
lv_obj_t * lv_led_create(lv_obj_t * parent)
{
return lv_obj_class_create_obj(&lv_led_class, parent);
return lv_obj_class_create_obj(&lv_led_class, parent, NULL);
}
/*=====================

View File

@ -55,7 +55,7 @@ const lv_obj_class_t lv_list_text_class = {
lv_obj_t * lv_list_create(lv_obj_t * parent)
{
lv_obj_t * list = lv_obj_class_create_obj(&lv_list_class, parent);
lv_obj_t * list = lv_obj_class_create_obj(&lv_list_class, parent, NULL);
lv_obj_set_flex_flow(list, LV_FLEX_FLOW_COLUMN);
return list;
@ -63,7 +63,7 @@ lv_obj_t * lv_list_create(lv_obj_t * parent)
lv_obj_t * lv_list_add_text(lv_obj_t * list, const char * txt)
{
lv_obj_t * label = lv_obj_class_create_obj(&lv_list_text_class, list);
lv_obj_t * label = lv_obj_class_create_obj(&lv_list_text_class, list, NULL);
lv_label_set_text(label, txt);
lv_label_set_long_mode(label, LV_LABEL_LONG_SCROLL_CIRCULAR);
lv_obj_set_width(label, LV_PCT(100));
@ -72,7 +72,7 @@ lv_obj_t * lv_list_add_text(lv_obj_t * list, const char * txt)
lv_obj_t * lv_list_add_btn(lv_obj_t * list, const char * icon, const char * txt, lv_event_cb_t event_cb)
{
lv_obj_t * btn = lv_obj_class_create_obj(&lv_list_btn_class, list);
lv_obj_t * btn = lv_obj_class_create_obj(&lv_list_btn_class, list, NULL);
lv_obj_set_size(btn, LV_PCT(100), LV_SIZE_CONTENT);
if(event_cb) {
lv_obj_add_event_cb(btn, event_cb, LV_EVENT_ALL, NULL);

View File

@ -52,7 +52,7 @@ const lv_obj_class_t lv_meter_class = {
lv_obj_t * lv_meter_create(lv_obj_t * parent)
{
LV_LOG_INFO("begin")
return lv_obj_class_create_obj(&lv_meter_class, parent);
return lv_obj_class_create_obj(&lv_meter_class, parent, NULL);
}
/*=====================

View File

@ -49,7 +49,7 @@ lv_obj_t * lv_msgbox_create(lv_obj_t * parent, const char * title, const char *
lv_obj_set_size(parent, LV_PCT(100), LV_PCT(100));
}
lv_obj_t * mbox = lv_obj_class_create_obj(&lv_msgbox_class, parent);
lv_obj_t * mbox = lv_obj_class_create_obj(&lv_msgbox_class, parent, NULL);
LV_ASSERT_MALLOC(mbox);
if(mbox == NULL) return NULL;

View File

@ -46,7 +46,7 @@ const lv_obj_class_t lv_spinbox_class = {
lv_obj_t * lv_spinbox_create(lv_obj_t * parent)
{
return lv_obj_class_create_obj(&lv_spinbox_class, parent);
return lv_obj_class_create_obj(&lv_spinbox_class, parent, NULL);
}
/*=====================

View File

@ -51,7 +51,7 @@ lv_obj_t * lv_tabview_create(lv_obj_t * parent, lv_dir_t tab_pos, lv_coord_t tab
{
tabpos_create = tab_pos;
tabsize_create = tab_size;
return lv_obj_class_create_obj(&lv_tabview_class, parent);
return lv_obj_class_create_obj(&lv_tabview_class, parent, NULL);
}
lv_obj_t * lv_tabview_add_tab(lv_obj_t * obj, const char * name)

View File

@ -50,7 +50,7 @@ static uint32_t create_row_id;
lv_obj_t * lv_tileview_create(lv_obj_t * parent)
{
return lv_obj_class_create_obj(&lv_tileview_class, parent);
return lv_obj_class_create_obj(&lv_tileview_class, parent, NULL);
}
/*======================
@ -62,7 +62,7 @@ lv_obj_t * lv_tileview_add_tile(lv_obj_t * tv, uint8_t col_id, uint8_t row_id, l
create_dir = dir;
create_col_id = col_id;
create_row_id = row_id;
return lv_obj_class_create_obj(&lv_tileview_tile_class, tv);
return lv_obj_class_create_obj(&lv_tileview_tile_class, tv, NULL);
}
void lv_obj_set_tile(lv_obj_t * tv, lv_obj_t * tile_obj, lv_anim_enable_t anim_en)

View File

@ -45,7 +45,7 @@ static lv_coord_t create_header_height;
lv_obj_t * lv_win_create(lv_obj_t * parent, lv_coord_t header_height)
{
create_header_height = header_height;
return lv_obj_class_create_obj(&lv_win_class, parent);
return lv_obj_class_create_obj(&lv_win_class, parent, NULL);
}
lv_obj_t * lv_win_add_title(lv_obj_t * win, const char * txt)

View File

@ -65,7 +65,7 @@ const lv_obj_class_t lv_arc_class = {
lv_obj_t * lv_arc_create(lv_obj_t * parent)
{
LV_LOG_INFO("begin")
return lv_obj_class_create_obj(&lv_arc_class, parent);
return lv_obj_class_create_obj(&lv_arc_class, parent, NULL);
}
/*======================

View File

@ -78,7 +78,7 @@ const lv_obj_class_t lv_bar_class = {
lv_obj_t * lv_bar_create(lv_obj_t * parent)
{
LV_LOG_INFO("begin")
return lv_obj_class_create_obj(&lv_bar_class, parent);
return lv_obj_class_create_obj(&lv_bar_class, parent, NULL);
}
/*=====================

View File

@ -48,7 +48,7 @@ const lv_obj_class_t lv_btn_class = {
lv_obj_t * lv_btn_create(lv_obj_t * parent)
{
LV_LOG_INFO("begin")
return lv_obj_class_create_obj(&lv_btn_class, parent);
return lv_obj_class_create_obj(&lv_btn_class, parent, NULL);
}
/**********************

View File

@ -79,7 +79,7 @@ const lv_obj_class_t lv_btnmatrix_class = {
lv_obj_t * lv_btnmatrix_create(lv_obj_t * parent)
{
LV_LOG_INFO("begin")
return lv_obj_class_create_obj(&lv_btnmatrix_class, parent);
return lv_obj_class_create_obj(&lv_btnmatrix_class, parent, NULL);
}
/*=====================

View File

@ -67,7 +67,7 @@ const lv_obj_class_t lv_canvas_class = {
lv_obj_t * lv_canvas_create(lv_obj_t * parent)
{
LV_LOG_INFO("begin")
return lv_obj_class_create_obj(&lv_canvas_class, parent);
return lv_obj_class_create_obj(&lv_canvas_class, parent, NULL);
}
/*=====================

View File

@ -56,7 +56,7 @@ const lv_obj_class_t lv_checkbox_class = {
lv_obj_t * lv_checkbox_create(lv_obj_t * parent)
{
LV_LOG_INFO("begin")
return lv_obj_class_create_obj(&lv_checkbox_class, parent);
return lv_obj_class_create_obj(&lv_checkbox_class, parent, NULL);
}
/*=====================

View File

@ -90,7 +90,7 @@ const lv_obj_class_t lv_dropdownlist_class = {
lv_obj_t * lv_dropdown_create(lv_obj_t * parent)
{
LV_LOG_INFO("begin")
return lv_obj_class_create_obj(&lv_dropdown_class, parent);
return lv_obj_class_create_obj(&lv_dropdown_class, parent, NULL);
}
/*=====================
@ -535,7 +535,7 @@ void lv_dropdown_close(lv_obj_t * obj)
static lv_obj_t * lv_dropdown_list_create(lv_obj_t * parent)
{
return lv_obj_class_create_obj(&lv_dropdownlist_class, parent);
return lv_obj_class_create_obj(&lv_dropdownlist_class, parent, NULL);
}
static void lv_dropdown_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj)

View File

@ -57,7 +57,7 @@ const lv_obj_class_t lv_img_class = {
lv_obj_t * lv_img_create(lv_obj_t * parent)
{
LV_LOG_INFO("begin")
return lv_obj_class_create_obj(&lv_img_class, parent);
return lv_obj_class_create_obj(&lv_img_class, parent, NULL);
}
/*=====================

View File

@ -74,7 +74,7 @@ const lv_obj_class_t lv_label_class = {
lv_obj_t * lv_label_create(lv_obj_t * parent)
{
LV_LOG_INFO("begin")
return lv_obj_class_create_obj(&lv_label_class, parent);
return lv_obj_class_create_obj(&lv_label_class, parent, NULL);
}
/*=====================

View File

@ -54,7 +54,7 @@ const lv_obj_class_t lv_line_class = {
lv_obj_t * lv_line_create(lv_obj_t * parent)
{
LV_LOG_INFO("begin")
return lv_obj_class_create_obj(&lv_line_class, parent);
return lv_obj_class_create_obj(&lv_line_class, parent, NULL);
}
/*=====================

View File

@ -77,7 +77,7 @@ const lv_obj_class_t lv_roller_label_class = {
lv_obj_t * lv_roller_create(lv_obj_t * parent)
{
LV_LOG_INFO("begin")
return lv_obj_class_create_obj(&lv_roller_class, parent);
return lv_obj_class_create_obj(&lv_roller_class, parent, NULL);
}
/*=====================
@ -297,7 +297,7 @@ static void lv_roller_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj
lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE);
lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLL_CHAIN);
lv_obj_class_create_obj(&lv_roller_label_class, obj);
lv_obj_class_create_obj(&lv_roller_label_class, obj, NULL);
lv_roller_set_options(obj, "Option 1\nOption 2\nOption 3\nOption 4\nOption 5", LV_ROLLER_MODE_NORMAL);
LV_LOG_TRACE("finshed");

View File

@ -59,7 +59,7 @@ const lv_obj_class_t lv_slider_class = {
lv_obj_t * lv_slider_create(lv_obj_t * parent)
{
LV_LOG_INFO("begin")
return lv_obj_class_create_obj(&lv_slider_class, parent);
return lv_obj_class_create_obj(&lv_slider_class, parent, NULL);
}
bool lv_slider_is_dragged(const lv_obj_t * obj)

View File

@ -61,7 +61,7 @@ const lv_obj_class_t lv_switch_class = {
lv_obj_t * lv_switch_create(lv_obj_t * parent)
{
LV_LOG_INFO("begin")
return lv_obj_class_create_obj(&lv_switch_class, parent);
return lv_obj_class_create_obj(&lv_switch_class, parent, NULL);
}
/**********************

View File

@ -64,7 +64,7 @@ const lv_obj_class_t lv_table_class = {
lv_obj_t * lv_table_create(lv_obj_t * parent)
{
LV_LOG_INFO("begin")
return lv_obj_class_create_obj(&lv_table_class, parent);
return lv_obj_class_create_obj(&lv_table_class, parent, NULL);
}
/*=====================

View File

@ -84,7 +84,7 @@ static const char * ta_insert_replace;
lv_obj_t * lv_textarea_create(lv_obj_t * parent)
{
LV_LOG_INFO("begin")
return lv_obj_class_create_obj(&lv_textarea_class, parent);
return lv_obj_class_create_obj(&lv_textarea_class, parent, NULL);
}
/*======================