diff --git a/src/core/lv_obj.c b/src/core/lv_obj.c index 76931fa25..23a86d5fa 100644 --- a/src/core/lv_obj.c +++ b/src/core/lv_obj.c @@ -174,7 +174,10 @@ void lv_deinit(void) lv_obj_t * lv_obj_create(lv_obj_t * parent) { - return lv_obj_class_create_obj(&lv_obj_class, parent, NULL); + LV_LOG_INFO("begin") + lv_obj_t * obj = lv_obj_class_create_obj(MY_CLASS, parent); + lv_obj_class_init_obj(obj); + return obj; } /*===================== diff --git a/src/core/lv_obj_class.c b/src/core/lv_obj_class.c index 98491c60f..df090efa7 100644 --- a/src/core/lv_obj_class.c +++ b/src/core/lv_obj_class.c @@ -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, void * user_data) +lv_obj_t * lv_obj_class_create_obj(const lv_obj_class_t * class_p, lv_obj_t * parent) { LV_TRACE_OBJ_CREATE("Creating object with %p class on %p parent", class_p, parent); uint32_t s = get_instance_size(class_p); @@ -49,11 +49,6 @@ 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; -#else - LV_UNUSED(user_data); -#endif /*Create a screen*/ if(parent == NULL) { @@ -99,6 +94,11 @@ lv_obj_t * lv_obj_class_create_obj(const lv_obj_class_t * class_p, lv_obj_t * pa } } + return obj; +} + +void lv_obj_class_init_obj(lv_obj_t * obj) +{ lv_obj_mark_layout_as_dirty(obj); lv_obj_enable_style_refresh(false); @@ -116,6 +116,7 @@ lv_obj_t * lv_obj_class_create_obj(const lv_obj_class_t * class_p, lv_obj_t * pa lv_group_add_obj(def_group, obj); } + lv_obj_t * parent = lv_obj_get_parent(obj); if(parent) { /*Call the ancestor's event handler to the parent to notify it about the new child. *Also triggers layout update*/ @@ -124,8 +125,6 @@ lv_obj_t * lv_obj_class_create_obj(const lv_obj_class_t * class_p, lv_obj_t * pa /*Invalidate the area if not screen created*/ lv_obj_invalidate(obj); } - - return obj; } void _lv_obj_destructor(lv_obj_t * obj) diff --git a/src/core/lv_obj_class.h b/src/core/lv_obj_class.h index 7b42b7b40..3b51e4d7a 100644 --- a/src/core/lv_obj_class.h +++ b/src/core/lv_obj_class.h @@ -70,11 +70,11 @@ 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 - * @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, void * user_data); +struct _lv_obj_t * lv_obj_class_create_obj(const struct _lv_obj_class_t * class_p, struct _lv_obj_t * parent); + +void lv_obj_class_init_obj(struct _lv_obj_t * obj); void _lv_obj_destructor(struct _lv_obj_t * obj); diff --git a/src/extra/widgets/animimg/lv_animimg.c b/src/extra/widgets/animimg/lv_animimg.c index 8dc309b41..7d7cdfe65 100644 --- a/src/extra/widgets/animimg/lv_animimg.c +++ b/src/extra/widgets/animimg/lv_animimg.c @@ -57,10 +57,12 @@ const lv_obj_class_t lv_animimg_class = { lv_obj_t * lv_animimg_create(lv_obj_t * parent) { LV_LOG_INFO("begin") - return lv_obj_class_create_obj(&lv_animimg_class, parent, NULL); + lv_obj_t * obj = lv_obj_class_create_obj(&lv_animimg_class, parent); + lv_obj_class_init_obj(obj); + return obj; } -void lv_animimg_set_src(lv_obj_t * obj, lv_img_dsc_t ** dsc, uint8_t num) +void lv_animimg_set_src(lv_obj_t * obj, lv_img_dsc_t * dsc[], uint8_t num) { lv_animimg_t * animimg = (lv_animimg_t *)obj; animimg->dsc = dsc; diff --git a/src/extra/widgets/calendar/lv_calendar.c b/src/extra/widgets/calendar/lv_calendar.c index f7ddc8e68..7e84fd285 100644 --- a/src/extra/widgets/calendar/lv_calendar.c +++ b/src/extra/widgets/calendar/lv_calendar.c @@ -56,8 +56,9 @@ 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, NULL); - + LV_LOG_INFO("begin") + lv_obj_t * obj = lv_obj_class_create_obj(&lv_calendar_class, parent); + lv_obj_class_init_obj(obj); return obj; } diff --git a/src/extra/widgets/chart/lv_chart.c b/src/extra/widgets/chart/lv_chart.c index 4103e85b1..c5c59e28c 100644 --- a/src/extra/widgets/chart/lv_chart.c +++ b/src/extra/widgets/chart/lv_chart.c @@ -65,7 +65,9 @@ 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, NULL); + lv_obj_t * obj = lv_obj_class_create_obj(MY_CLASS, parent); + lv_obj_class_init_obj(obj); + return obj; } void lv_chart_set_type(lv_obj_t * obj, lv_chart_type_t type) diff --git a/src/extra/widgets/colorwheel/lv_colorwheel.c b/src/extra/widgets/colorwheel/lv_colorwheel.c index cfb90696f..9eed9843f 100644 --- a/src/extra/widgets/colorwheel/lv_colorwheel.c +++ b/src/extra/widgets/colorwheel/lv_colorwheel.c @@ -74,8 +74,12 @@ static bool create_knob_recolor; */ lv_obj_t * lv_colorwheel_create(lv_obj_t * parent, bool knob_recolor) { + LV_LOG_INFO("begin") create_knob_recolor = knob_recolor; - return lv_obj_class_create_obj(&lv_colorwheel_class, parent, NULL); + + lv_obj_t * obj = lv_obj_class_create_obj(MY_CLASS, parent); + lv_obj_class_init_obj(obj); + return obj; } /*===================== diff --git a/src/extra/widgets/imgbtn/lv_imgbtn.c b/src/extra/widgets/imgbtn/lv_imgbtn.c index 22565001f..77ae4147a 100644 --- a/src/extra/widgets/imgbtn/lv_imgbtn.c +++ b/src/extra/widgets/imgbtn/lv_imgbtn.c @@ -55,7 +55,10 @@ 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, NULL); + LV_LOG_INFO("begin") + lv_obj_t * obj = lv_obj_class_create_obj(MY_CLASS, parent); + lv_obj_class_init_obj(obj); + return obj; } /*===================== diff --git a/src/extra/widgets/keyboard/lv_keyboard.c b/src/extra/widgets/keyboard/lv_keyboard.c index 513fc43b1..de845defe 100644 --- a/src/extra/widgets/keyboard/lv_keyboard.c +++ b/src/extra/widgets/keyboard/lv_keyboard.c @@ -121,7 +121,10 @@ 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, NULL); + LV_LOG_INFO("begin") + lv_obj_t * obj = lv_obj_class_create_obj(&lv_keyboard_class, parent); + lv_obj_class_init_obj(obj); + return obj; } /*===================== diff --git a/src/extra/widgets/led/lv_led.c b/src/extra/widgets/led/lv_led.c index 2f858d3b1..2cf082c5d 100644 --- a/src/extra/widgets/led/lv_led.c +++ b/src/extra/widgets/led/lv_led.c @@ -59,7 +59,10 @@ 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, NULL); + LV_LOG_INFO("begin") + lv_obj_t * obj = lv_obj_class_create_obj(MY_CLASS, parent); + lv_obj_class_init_obj(obj); + return obj; } /*===================== diff --git a/src/extra/widgets/list/lv_list.c b/src/extra/widgets/list/lv_list.c index b401eecc3..15a60e35d 100644 --- a/src/extra/widgets/list/lv_list.c +++ b/src/extra/widgets/list/lv_list.c @@ -55,42 +55,45 @@ 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, NULL); - lv_obj_set_flex_flow(list, LV_FLEX_FLOW_COLUMN); - - return list; + LV_LOG_INFO("begin") + lv_obj_t * obj = lv_obj_class_create_obj(&lv_list_class, parent); + lv_obj_class_init_obj(obj); + lv_obj_set_flex_flow(obj, LV_FLEX_FLOW_COLUMN); + return obj; } 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, 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)); - return label; + LV_LOG_INFO("begin") + lv_obj_t * obj = lv_obj_class_create_obj(&lv_list_text_class, list); + lv_obj_class_init_obj(obj); + lv_label_set_text(obj, txt); + lv_label_set_long_mode(obj, LV_LABEL_LONG_SCROLL_CIRCULAR); + lv_obj_set_width(obj, LV_PCT(100)); + return obj; } 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, 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); - } + LV_LOG_INFO("begin") + lv_obj_t * obj = lv_obj_class_create_obj(&lv_list_btn_class, list); + lv_obj_class_init_obj(obj); + lv_obj_set_size(obj, LV_PCT(100), LV_SIZE_CONTENT); + if(event_cb) lv_obj_add_event_cb(obj, event_cb, LV_EVENT_ALL, NULL); if(icon) { - lv_obj_t * img = lv_img_create(btn); + lv_obj_t * img = lv_img_create(obj); lv_img_set_src(img, icon); } if(txt) { - lv_obj_t * label = lv_label_create(btn); + lv_obj_t * label = lv_label_create(obj); lv_label_set_text(label, txt); lv_label_set_long_mode(label, LV_LABEL_LONG_SCROLL_CIRCULAR); lv_obj_set_flex_grow(label, 1); } - return btn; + return obj; } const char * lv_list_get_btn_text(lv_obj_t * list, lv_obj_t * btn) diff --git a/src/extra/widgets/meter/lv_meter.c b/src/extra/widgets/meter/lv_meter.c index d42ed3dc5..ceb7ae9f0 100644 --- a/src/extra/widgets/meter/lv_meter.c +++ b/src/extra/widgets/meter/lv_meter.c @@ -52,7 +52,9 @@ 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, NULL); + lv_obj_t * obj = lv_obj_class_create_obj(MY_CLASS, parent); + lv_obj_class_init_obj(obj); + return obj; } /*===================== diff --git a/src/extra/widgets/msgbox/lv_msgbox.c b/src/extra/widgets/msgbox/lv_msgbox.c index cf4cca091..ad093cbb3 100644 --- a/src/extra/widgets/msgbox/lv_msgbox.c +++ b/src/extra/widgets/msgbox/lv_msgbox.c @@ -39,6 +39,7 @@ const lv_obj_class_t lv_msgbox_class = {.base_class = &lv_obj_class}; lv_obj_t * lv_msgbox_create(lv_obj_t * parent, const char * title, const char * txt, const char * btn_txts[], bool add_close_btn) { + LV_LOG_INFO("begin") bool auto_parent = false; if(parent == NULL) { auto_parent = true; @@ -49,7 +50,8 @@ 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, NULL); + lv_obj_t * mbox = lv_obj_class_create_obj(&lv_msgbox_class, parent); + lv_obj_class_init_obj(mbox); LV_ASSERT_MALLOC(mbox); if(mbox == NULL) return NULL; diff --git a/src/extra/widgets/spinbox/lv_spinbox.c b/src/extra/widgets/spinbox/lv_spinbox.c index e4dbe2b5a..66bfdd0e6 100644 --- a/src/extra/widgets/spinbox/lv_spinbox.c +++ b/src/extra/widgets/spinbox/lv_spinbox.c @@ -46,7 +46,10 @@ 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, NULL); + LV_LOG_INFO("begin") + lv_obj_t * obj = lv_obj_class_create_obj(MY_CLASS, parent); + lv_obj_class_init_obj(obj); + return obj; } /*===================== diff --git a/src/extra/widgets/tabview/lv_tabview.c b/src/extra/widgets/tabview/lv_tabview.c index 27c36317c..e79c3d3f9 100644 --- a/src/extra/widgets/tabview/lv_tabview.c +++ b/src/extra/widgets/tabview/lv_tabview.c @@ -49,9 +49,13 @@ static lv_coord_t tabsize_create; lv_obj_t * lv_tabview_create(lv_obj_t * parent, lv_dir_t tab_pos, lv_coord_t tab_size) { + LV_LOG_INFO("begin") tabpos_create = tab_pos; tabsize_create = tab_size; - return lv_obj_class_create_obj(&lv_tabview_class, parent, NULL); + + lv_obj_t * obj = lv_obj_class_create_obj(&lv_tabview_class, parent); + lv_obj_class_init_obj(obj); + return obj; } lv_obj_t * lv_tabview_add_tab(lv_obj_t * obj, const char * name) diff --git a/src/extra/widgets/tileview/lv_tileview.c b/src/extra/widgets/tileview/lv_tileview.c index 3c651d0fa..21cd55d3a 100644 --- a/src/extra/widgets/tileview/lv_tileview.c +++ b/src/extra/widgets/tileview/lv_tileview.c @@ -50,7 +50,10 @@ 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, NULL); + LV_LOG_INFO("begin") + lv_obj_t * obj = lv_obj_class_create_obj(&lv_tileview_class, parent); + lv_obj_class_init_obj(obj); + return obj; } /*====================== @@ -59,10 +62,14 @@ lv_obj_t * lv_tileview_create(lv_obj_t * parent) lv_obj_t * lv_tileview_add_tile(lv_obj_t * tv, uint8_t col_id, uint8_t row_id, lv_dir_t dir) { + LV_LOG_INFO("begin") create_dir = dir; create_col_id = col_id; create_row_id = row_id; - return lv_obj_class_create_obj(&lv_tileview_tile_class, tv, NULL); + + lv_obj_t * obj = lv_obj_class_create_obj(&lv_tileview_tile_class, tv); + lv_obj_class_init_obj(obj); + return obj; } void lv_obj_set_tile(lv_obj_t * tv, lv_obj_t * tile_obj, lv_anim_enable_t anim_en) diff --git a/src/extra/widgets/win/lv_win.c b/src/extra/widgets/win/lv_win.c index 6afdc165f..0a0854373 100644 --- a/src/extra/widgets/win/lv_win.c +++ b/src/extra/widgets/win/lv_win.c @@ -44,8 +44,12 @@ static lv_coord_t create_header_height; lv_obj_t * lv_win_create(lv_obj_t * parent, lv_coord_t header_height) { + LV_LOG_INFO("begin") create_header_height = header_height; - return lv_obj_class_create_obj(&lv_win_class, parent, NULL); + + lv_obj_t * obj = lv_obj_class_create_obj(&lv_win_class, parent); + lv_obj_class_init_obj(obj); + return obj; } lv_obj_t * lv_win_add_title(lv_obj_t * win, const char * txt) diff --git a/src/widgets/lv_arc.c b/src/widgets/lv_arc.c index 436835fea..9d918b19b 100644 --- a/src/widgets/lv_arc.c +++ b/src/widgets/lv_arc.c @@ -65,7 +65,9 @@ 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, NULL); + lv_obj_t * obj = lv_obj_class_create_obj(MY_CLASS, parent); + lv_obj_class_init_obj(obj); + return obj; } /*====================== diff --git a/src/widgets/lv_bar.c b/src/widgets/lv_bar.c index 54a905490..2b380c16d 100644 --- a/src/widgets/lv_bar.c +++ b/src/widgets/lv_bar.c @@ -78,7 +78,9 @@ 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, NULL); + lv_obj_t * obj = lv_obj_class_create_obj(MY_CLASS, parent); + lv_obj_class_init_obj(obj); + return obj; } /*===================== diff --git a/src/widgets/lv_btn.c b/src/widgets/lv_btn.c index f6ac48d90..3605ccc7d 100644 --- a/src/widgets/lv_btn.c +++ b/src/widgets/lv_btn.c @@ -15,6 +15,7 @@ /********************* * DEFINES *********************/ +#define MY_CLASS &lv_btn_class /********************** * TYPEDEFS @@ -48,7 +49,9 @@ 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, NULL); + lv_obj_t * obj = lv_obj_class_create_obj(MY_CLASS, parent); + lv_obj_class_init_obj(obj); + return obj; } /********************** diff --git a/src/widgets/lv_btnmatrix.c b/src/widgets/lv_btnmatrix.c index 9981e24bd..152c79be8 100644 --- a/src/widgets/lv_btnmatrix.c +++ b/src/widgets/lv_btnmatrix.c @@ -79,7 +79,9 @@ 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, NULL); + lv_obj_t * obj = lv_obj_class_create_obj(MY_CLASS, parent); + lv_obj_class_init_obj(obj); + return obj; } /*===================== diff --git a/src/widgets/lv_canvas.c b/src/widgets/lv_canvas.c index fc45cf046..5101276fa 100644 --- a/src/widgets/lv_canvas.c +++ b/src/widgets/lv_canvas.c @@ -67,7 +67,9 @@ 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, NULL); + lv_obj_t * obj = lv_obj_class_create_obj(MY_CLASS, parent); + lv_obj_class_init_obj(obj); + return obj; } /*===================== diff --git a/src/widgets/lv_checkbox.c b/src/widgets/lv_checkbox.c index 95ba6dedc..c173fd0e8 100644 --- a/src/widgets/lv_checkbox.c +++ b/src/widgets/lv_checkbox.c @@ -56,7 +56,9 @@ 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, NULL); + lv_obj_t * obj = lv_obj_class_create_obj(MY_CLASS, parent); + lv_obj_class_init_obj(obj); + return obj; } /*===================== diff --git a/src/widgets/lv_dropdown.c b/src/widgets/lv_dropdown.c index 992f7b3bc..d85916b66 100644 --- a/src/widgets/lv_dropdown.c +++ b/src/widgets/lv_dropdown.c @@ -90,7 +90,9 @@ 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, NULL); + lv_obj_t * obj = lv_obj_class_create_obj(&lv_dropdown_class, parent); + lv_obj_class_init_obj(obj); + return obj; } /*===================== @@ -517,7 +519,10 @@ 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, NULL); + LV_LOG_INFO("begin") + lv_obj_t * obj = lv_obj_class_create_obj(&lv_dropdownlist_class, parent); + lv_obj_class_init_obj(obj); + return obj; } static void lv_dropdown_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj) diff --git a/src/widgets/lv_img.c b/src/widgets/lv_img.c index abf995018..62551b161 100644 --- a/src/widgets/lv_img.c +++ b/src/widgets/lv_img.c @@ -57,7 +57,9 @@ 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, NULL); + lv_obj_t * obj = lv_obj_class_create_obj(MY_CLASS, parent); + lv_obj_class_init_obj(obj); + return obj; } /*===================== diff --git a/src/widgets/lv_label.c b/src/widgets/lv_label.c index 18ae9d3d5..91268e552 100644 --- a/src/widgets/lv_label.c +++ b/src/widgets/lv_label.c @@ -73,7 +73,9 @@ 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, NULL); + lv_obj_t * obj = lv_obj_class_create_obj(MY_CLASS, parent); + lv_obj_class_init_obj(obj); + return obj; } /*===================== diff --git a/src/widgets/lv_line.c b/src/widgets/lv_line.c index 5e941fa77..26a23538e 100644 --- a/src/widgets/lv_line.c +++ b/src/widgets/lv_line.c @@ -54,7 +54,9 @@ 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, NULL); + lv_obj_t * obj = lv_obj_class_create_obj(MY_CLASS, parent); + lv_obj_class_init_obj(obj); + return obj; } /*===================== diff --git a/src/widgets/lv_roller.c b/src/widgets/lv_roller.c index 2cdaedba2..c16b9ee51 100644 --- a/src/widgets/lv_roller.c +++ b/src/widgets/lv_roller.c @@ -77,7 +77,9 @@ 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, NULL); + lv_obj_t * obj = lv_obj_class_create_obj(MY_CLASS, parent); + lv_obj_class_init_obj(obj); + return obj; } /*===================== @@ -297,7 +299,9 @@ 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, NULL); + LV_LOG_INFO("begin") + lv_obj_t * label = lv_obj_class_create_obj(&lv_roller_label_class, obj); + lv_obj_class_init_obj(label); lv_roller_set_options(obj, "Option 1\nOption 2\nOption 3\nOption 4\nOption 5", LV_ROLLER_MODE_NORMAL); LV_LOG_TRACE("finshed"); diff --git a/src/widgets/lv_slider.c b/src/widgets/lv_slider.c index 429092554..835f82bb2 100644 --- a/src/widgets/lv_slider.c +++ b/src/widgets/lv_slider.c @@ -59,7 +59,9 @@ 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, NULL); + lv_obj_t * obj = lv_obj_class_create_obj(MY_CLASS, parent); + lv_obj_class_init_obj(obj); + return obj; } bool lv_slider_is_dragged(const lv_obj_t * obj) diff --git a/src/widgets/lv_switch.c b/src/widgets/lv_switch.c index 62d0a07e1..6603e1365 100644 --- a/src/widgets/lv_switch.c +++ b/src/widgets/lv_switch.c @@ -61,7 +61,9 @@ 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, NULL); + lv_obj_t * obj = lv_obj_class_create_obj(MY_CLASS, parent); + lv_obj_class_init_obj(obj); + return obj; } /********************** diff --git a/src/widgets/lv_table.c b/src/widgets/lv_table.c index 15d4db898..16c53a666 100644 --- a/src/widgets/lv_table.c +++ b/src/widgets/lv_table.c @@ -64,7 +64,9 @@ 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, NULL); + lv_obj_t * obj = lv_obj_class_create_obj(MY_CLASS, parent); + lv_obj_class_init_obj(obj); + return obj; } /*===================== diff --git a/src/widgets/lv_textarea.c b/src/widgets/lv_textarea.c index e35f4b7cf..2eca5ceda 100644 --- a/src/widgets/lv_textarea.c +++ b/src/widgets/lv_textarea.c @@ -84,7 +84,9 @@ 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, NULL); + lv_obj_t * obj = lv_obj_class_create_obj(MY_CLASS, parent); + lv_obj_class_init_obj(obj); + return obj; } /*======================