elm_bg_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
elm_button_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
elm_check_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
elm_flip_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
elm_frame_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
elm_image_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- Evas_Object *obj = efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ Evas_Object *obj = elm_legacy_add(MY_CLASS, parent);
EFL_UI_IMAGE_DATA_GET(obj, priv);
efl_event_callback_add(obj, EFL_GFX_EVENT_CHANGE_SIZE_HINTS, _on_size_hints_changed, priv);
elm_photocam_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
static inline void
elm_layout_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
elm_multibuttonentry_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
static void
elm_panes_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EAPI void
elm_progressbar_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- Eo *obj = efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ Eo *obj = elm_legacy_add(MY_CLASS, parent);
elm_progressbar_unit_format_set(obj, "%.0f %%");
return obj;
elm_radio_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EAPI void
elm_slider_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EAPI void
elm_video_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
return obj;
}
-EOLIAN static void
-_efl_ui_win_efl_canvas_object_legacy_ctor(Eo *obj, Efl_Ui_Win_Data *sd)
-{
- sd->legacy.ctor = EINA_TRUE;
- efl_canvas_object_legacy_ctor(efl_super(obj, MY_CLASS));
-}
-
EOLIAN static Efl_Ui_Focus_Manager*
_efl_ui_win_elm_widget_focus_manager_create(Eo *obj EINA_UNUSED, Efl_Ui_Win_Data *pd EINA_UNUSED, Efl_Ui_Focus_Object *root)
{
default: break;
}
- return efl_add(klass, parent,
- efl_canvas_object_legacy_ctor(efl_added),
- efl_ui_win_name_set(efl_added, name),
- efl_ui_win_type_set(efl_added, type));
+ return elm_legacy_add(klass, parent,
+ efl_ui_win_name_set(efl_added, name),
+ efl_ui_win_type_set(efl_added, type));
}
EAPI Evas_Object *
elm_win_fake_add(Ecore_Evas *ee)
{
- return efl_add(MY_CLASS, NULL,
- efl_canvas_object_legacy_ctor(efl_added),
- _fake_canvas_set(efl_added, ee),
- efl_ui_win_name_set(efl_added, NULL),
- efl_ui_win_type_set(efl_added, ELM_WIN_FAKE));
+ return elm_legacy_add(MY_CLASS, NULL,
+ _fake_canvas_set(efl_added, ee),
+ efl_ui_win_name_set(efl_added, NULL),
+ efl_ui_win_type_set(efl_added, ELM_WIN_FAKE));
}
EAPI Evas_Object *
{
Evas_Object *win;
- win = efl_add(EFL_UI_WIN_CLASS, NULL,
- efl_canvas_object_legacy_ctor(efl_added),
- efl_text_set(efl_added, title),
- efl_ui_win_name_set(efl_added, name),
- efl_ui_win_type_set(efl_added, EFL_UI_WIN_BASIC));
+ win = elm_legacy_add(EFL_UI_WIN_CLASS, NULL,
+ efl_text_set(efl_added, title),
+ efl_ui_win_name_set(efl_added, name),
+ efl_ui_win_type_set(efl_added, EFL_UI_WIN_BASIC));
if (!win) return NULL;
_elm_win_standard_init(win);
{
Evas_Object *win;
- win = efl_add(EFL_UI_WIN_CLASS, parent,
- efl_canvas_object_legacy_ctor(efl_added),
- efl_text_set(efl_added, title),
- efl_ui_win_name_set(efl_added, name),
- efl_ui_win_type_set(efl_added, EFL_UI_WIN_DIALOG_BASIC));
+ win = elm_legacy_add(EFL_UI_WIN_CLASS, parent,
+ efl_text_set(efl_added, title),
+ efl_ui_win_name_set(efl_added, name),
+ efl_ui_win_type_set(efl_added, EFL_UI_WIN_DIALOG_BASIC));
if (!win) return NULL;
_elm_win_standard_init(win);
#define EFL_UI_WIN_EXTRA_OPS \
EFL_CANVAS_GROUP_ADD_DEL_OPS(efl_ui_win), \
- ELM_PART_CONTENT_DEFAULT_OPS(efl_ui_win), \
- EFL_OBJECT_OP_FUNC(efl_canvas_object_legacy_ctor, _efl_ui_win_efl_canvas_object_legacy_ctor)
+ ELM_PART_CONTENT_DEFAULT_OPS(efl_ui_win)
#include "efl_ui_win.eo.c"
elm_combobox_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
-}
-
-static inline void
-_hover_ctor(Eo *parent, Eo *hover)
-{
- ELM_WIDGET_DATA_GET_OR_RETURN(parent, wd);
- if (wd->legacy)
- efl_canvas_object_legacy_ctor(hover);
- efl_gfx_visible_set(hover, EINA_FALSE);
+ return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
snprintf(buf, sizeof(buf), "combobox_vertical/%s", elm_widget_style_get(obj));
//hover
- sd->hover = efl_add(ELM_HOVER_CLASS, sd->hover_parent,
- _hover_ctor(obj, efl_added),
- efl_ui_widget_style_set(efl_added, buf));
+ if (elm_widget_is_legacy(obj))
+ {
+ sd->hover = elm_legacy_add(ELM_HOVER_CLASS, sd->hover_parent,
+ efl_gfx_visible_set(efl_added, EINA_FALSE),
+ efl_ui_widget_style_set(efl_added, buf));
+ }
+ else
+ {
+ sd->hover = efl_add(ELM_HOVER_CLASS, sd->hover_parent,
+ efl_gfx_visible_set(efl_added, EINA_FALSE),
+ efl_ui_widget_style_set(efl_added, buf));
+ }
+
evas_object_layer_set(sd->hover, EVAS_LAYER_MAX);
efl_ui_mirrored_automatic_set(sd->hover, EINA_FALSE);
elm_hover_target_set(sd->hover, obj);
elm_ctxpopup_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- Evas_Object *obj = efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ Evas_Object *obj = elm_legacy_add(MY_CLASS, parent);
/* access: parent could be any object such as elm_list which does
not know elc_ctxpopup as its child object in the focus_next(); */
elm_fileselector_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
elm_fileselector_button_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
elm_fileselector_entry_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
elm_hoversel_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
elm_naviframe_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
elm_player_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
elm_popup_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- Evas_Object *obj = efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ Evas_Object *obj = elm_legacy_add(MY_CLASS, parent);
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL);
wd->highlight_root = EINA_TRUE;
_elm_access_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
elm_actionslider_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
elm_box_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
elm_bubble_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
elm_calendar_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
elm_clock_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
elm_code_widget_add(Evas_Object *parent, Elm_Code *code)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, elm_obj_code_widget_code_set(efl_added, code),
- efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent, elm_obj_code_widget_code_set(efl_added, code));
}
EOLIAN static Eo *
}
static inline void
-_palette_box_prepare(Eo *o, Eina_Bool legacy)
+_palette_box_prepare(Eo *o)
{
- if (legacy) efl_canvas_object_legacy_ctor(o);
efl_ui_direction_set(o, EFL_UI_DIR_HORIZONTAL);
efl_gfx_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
efl_gfx_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
if (sd->palette_box) return;
- sd->palette_box = efl_add(EFL_UI_BOX_FLOW_CLASS, obj,
- _palette_box_prepare(efl_added, wd->legacy));
+ if (elm_widget_is_legacy(obj))
+ {
+ sd->palette_box = elm_legacy_add(EFL_UI_BOX_FLOW_CLASS, obj,
+ _palette_box_prepare(efl_added));
+ }
+ else
+ {
+ sd->palette_box = efl_add(EFL_UI_BOX_FLOW_CLASS, obj,
+ _palette_box_prepare(efl_added));
+ }
hpadstr = edje_object_data_get(wd->resize_obj, "horizontal_pad");
if (hpadstr) h_pad = atoi(hpadstr);
elm_colorselector_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
elm_conformant_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
elm_datetime_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(EFL_UI_CLOCK_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(EFL_UI_CLOCK_CLASS, parent);
}
EAPI void
elm_dayselector_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
elm_diskselector_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
elm_entry_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
static void
elm_flipselector_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EAPI void
elm_gengrid_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
static void
elm_genlist_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
elm_gesture_layer_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
elm_glview_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent,
- elm_obj_glview_version_constructor(efl_added, EVAS_GL_GLES_2_X),
- efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent,
+ elm_obj_glview_version_constructor(efl_added, EVAS_GL_GLES_2_X));
}
EAPI Evas_Object *
elm_glview_version_add(Evas_Object *parent, Evas_GL_Context_Version version)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent,
- elm_obj_glview_version_constructor(efl_added, version),
- efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent,
+ elm_obj_glview_version_constructor(efl_added, version));
}
EOLIAN static void
elm_grid_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
elm_hover_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
elm_icon_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
elm_index_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EAPI void elm_index_horizontal_set(Evas_Object *obj, Eina_Bool horizontal)
static Evas_Object *
_elm_pan_add(Evas *evas)
{
- return efl_add(MY_PAN_CLASS, evas, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_PAN_CLASS, evas);
}
EOLIAN static Eo *
elm_win_inwin_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
elm_label_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
elm_list_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
elm_map_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
elm_mapbuf_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
elm_menu_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Efl_Ui_Focus_Manager*
elm_notify_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
elm_panel_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- Evas_Object *obj = efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ Evas_Object *obj = elm_legacy_add(MY_CLASS, parent);
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL);
wd->highlight_root = EINA_TRUE;
elm_photo_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
elm_plug_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
return NULL;
}
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
elm_route_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
elm_scroller_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
static void
elm_segment_control_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
elm_separator_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
elm_slideshow_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
elm_spinner_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EAPI void
elm_table_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
elm_thumb_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
elm_toolbar_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
- return efl_add(MY_CLASS, parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eina_Bool
{
if (!parent || !ewm.class_get) return NULL;
- return efl_add(ewm.class_get(), parent, efl_canvas_object_legacy_ctor(efl_added));
+ return elm_legacy_add(ewm.class_get(), parent);
}
EAPI const Efl_Class *
typedef struct _Elm_Label_Data Elm_Label_Data;
typedef struct _Elm_Translate_String_Data Elm_Translate_String_Data;
+Eina_Bool _elm_legacy_add = EINA_FALSE;
+
struct _Elm_Event_Cb_Data
{
Elm_Event_Cb func;
EOLIAN static Efl_Ui_Theme_Apply
_elm_widget_style_set(Eo *obj, Elm_Widget_Smart_Data *sd, const char *style)
{
- if (!sd->legacy && efl_finalized_get(obj))
+ if (!elm_widget_is_legacy(obj) && efl_finalized_get(obj))
{
ERR("Efl.Ui.Widget.style can only be set before finalize!");
return EFL_UI_THEME_APPLY_FAILED;
Eo *parent = NULL;
sd->on_create = EINA_TRUE;
+ sd->legacy = _elm_legacy_add;
+ _elm_legacy_add = EINA_FALSE;
efl_canvas_group_clipped_set(obj, EINA_FALSE);
obj = efl_constructor(efl_super(obj, MY_CLASS));
efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
{
efl_canvas_object_legacy_ctor(efl_super(obj, MY_CLASS));
sd->legacy = EINA_TRUE;
+ _elm_legacy_add = EINA_FALSE;
}
EOLIAN static void
return ret;
}
+/* Internal hack to mark legacy objects as such before construction.
+ * No need for TLS: Only UI objects created in the main loop matter. */
+extern Eina_Bool _elm_legacy_add;
+#define elm_legacy_add(k, p, ...) ({ _elm_legacy_add = 1; \
+ efl_add(k, p, efl_canvas_object_legacy_ctor(efl_added), ##__VA_ARGS__); })
+
static inline Eina_Bool
elm_widget_is_legacy(const Eo *obj)
{
- Elm_Widget_Smart_Data *sd = (Elm_Widget_Smart_Data *)
- efl_data_scope_safe_get(obj, ELM_WIDGET_CLASS);
+ Elm_Widget_Smart_Data *sd;
+
+ if (_elm_legacy_add) return EINA_TRUE;
+ sd = (Elm_Widget_Smart_Data *) efl_data_scope_safe_get(obj, ELM_WIDGET_CLASS);
return sd ? sd->legacy : EINA_FALSE;
}