diff --git a/src/lib/elementary/efl_ui_check.c b/src/lib/elementary/efl_ui_check.c index 26341ec756..bb25ea400b 100644 --- a/src/lib/elementary/efl_ui_check.c +++ b/src/lib/elementary/efl_ui_check.c @@ -274,39 +274,6 @@ _on_check_toggle(void *data, _activate(data); } -EOLIAN static void -_efl_ui_check_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Check_Data *_pd EINA_UNUSED) -{ - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); - - efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); - - if (!elm_layout_theme_set(obj, "check", "base", elm_widget_style_get(obj))) - CRI("Failed to set layout!"); - - edje_object_signal_callback_add - (wd->resize_obj, "elm,action,check,on", "*", - _on_check_on, obj); - edje_object_signal_callback_add - (wd->resize_obj, "elm,action,check,off", "*", - _on_check_off, obj); - edje_object_signal_callback_add - (wd->resize_obj, "elm,action,check,toggle", "*", - _on_check_toggle, obj); - - _elm_access_object_register(obj, wd->resize_obj); - _elm_access_text_set - (_elm_access_info_get(obj), ELM_ACCESS_TYPE, E_("Check")); - _elm_access_callback_set - (_elm_access_info_get(obj), ELM_ACCESS_INFO, _access_info_cb, obj); - _elm_access_callback_set - (_elm_access_info_get(obj), ELM_ACCESS_STATE, _access_state_cb, obj); - - elm_widget_can_focus_set(obj, EINA_TRUE); - elm_layout_sizing_eval(obj); -} - EOLIAN static Eina_Bool _efl_ui_check_selected_get(Eo *obj, Efl_Ui_Check_Data *pd EINA_UNUSED) { @@ -351,12 +318,34 @@ elm_check_add(Evas_Object *parent) } EOLIAN static Eo * -_efl_ui_check_efl_object_constructor(Eo *obj, Efl_Ui_Check_Data *_pd EINA_UNUSED) +_efl_ui_check_efl_object_constructor(Eo *obj, Efl_Ui_Check_Data *pd EINA_UNUSED) { obj = efl_constructor(efl_super(obj, MY_CLASS)); efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY); evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks); + elm_widget_sub_object_parent_add(obj); + + if (!elm_layout_theme_set(obj, "check", "base", elm_widget_style_get(obj))) + CRI("Failed to set layout!"); + + ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL); + efl_canvas_layout_signal_callback_add + (wd->resize_obj, "elm,action,check,on", "*", _on_check_on, obj); + efl_canvas_layout_signal_callback_add + (wd->resize_obj, "elm,action,check,off", "*", _on_check_off, obj); + efl_canvas_layout_signal_callback_add + (wd->resize_obj, "elm,action,check,toggle", "*", _on_check_toggle, obj); + efl_access_role_set(obj, EFL_ACCESS_ROLE_CHECK_BOX); + _elm_access_object_register(obj, wd->resize_obj); + _elm_access_text_set + (_elm_access_info_get(obj), ELM_ACCESS_TYPE, E_("Check")); + _elm_access_callback_set + (_elm_access_info_get(obj), ELM_ACCESS_INFO, _access_info_cb, obj); + _elm_access_callback_set + (_elm_access_info_get(obj), ELM_ACCESS_STATE, _access_state_cb, obj); + + elm_widget_can_focus_set(obj, EINA_TRUE); return obj; } @@ -419,7 +408,6 @@ ELM_WIDGET_KEY_DOWN_DEFAULT_IMPLEMENT(efl_ui_check, Efl_Ui_Check_Data) ELM_LAYOUT_TEXT_ALIASES_IMPLEMENT(MY_CLASS_PFX) #define EFL_UI_CHECK_EXTRA_OPS \ - EFL_CANVAS_GROUP_ADD_OPS(efl_ui_check), \ ELM_LAYOUT_TEXT_ALIASES_OPS(MY_CLASS_PFX) #include "efl_ui_check.eo.c" diff --git a/src/lib/elementary/efl_ui_nstate.c b/src/lib/elementary/efl_ui_nstate.c index 25a1264357..3d0a5b42fe 100644 --- a/src/lib/elementary/efl_ui_nstate.c +++ b/src/lib/elementary/efl_ui_nstate.c @@ -18,10 +18,6 @@ typedef struct int state; } Efl_Ui_Nstate_Data; -static const Evas_Smart_Cb_Description _smart_callbacks[] = { - {NULL, NULL} -}; - static Eina_Bool _key_action_activate(Evas_Object *obj, const char *params); static void _state_active(Evas_Object *obj, Efl_Ui_Nstate_Data *sd); @@ -30,12 +26,33 @@ static const Elm_Action key_actions[] = { {NULL, NULL} }; +static void +_on_state_changed(void *data, + Evas_Object *o EINA_UNUSED, + const char *emission EINA_UNUSED, + const char *source EINA_UNUSED) +{ + efl_ui_nstate_activate(data); +} + EOLIAN static Efl_Object * -_efl_ui_nstate_efl_object_constructor(Eo *obj, Efl_Ui_Nstate_Data *pd EINA_UNUSED) +_efl_ui_nstate_efl_object_constructor(Eo *obj, Efl_Ui_Nstate_Data *pd) { obj = efl_constructor(efl_super(obj, MY_CLASS)); efl_canvas_object_type_set(obj, MY_CLASS_NAME); - evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks); + elm_widget_sub_object_parent_add(obj); + + pd->state = 0; + // Default: 2 states + pd->nstate = 2; + + if (!elm_layout_theme_set(obj, "nstate", "base", elm_widget_style_get(obj))) + CRI("Failed to set layout!"); + + ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL); + efl_canvas_layout_signal_callback_add + (wd->resize_obj, "elm,action,state,changed", "*", _on_state_changed, obj); + //TODO: Add ATSPI call here return obj; @@ -60,44 +77,6 @@ _state_active(Evas_Object *obj, Efl_Ui_Nstate_Data *sd) efl_event_callback_legacy_call(obj, EFL_UI_NSTATE_EVENT_STATE_CHANGED, NULL); } -static void -_on_state_changed(void *data, - Evas_Object *o EINA_UNUSED, - const char *emission EINA_UNUSED, - const char *source EINA_UNUSED) -{ - efl_ui_nstate_activate(data); -} - -EOLIAN static void -_efl_ui_nstate_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Nstate_Data *pd) -{ - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); - - efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); - - pd->state = 0; - // Default: 2 states - pd->nstate = 2; - - if (!elm_layout_theme_set(obj, "nstate", "base", elm_widget_style_get(obj))) - CRI("Failed to set layout!"); - - edje_object_signal_callback_add(wd->resize_obj, "elm,action,state,changed", - "*", _on_state_changed, obj); -} - -EOLIAN static void -_efl_ui_nstate_efl_canvas_group_group_del(Eo *obj, Efl_Ui_Nstate_Data *pd EINA_UNUSED) -{ - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); - - edje_object_signal_callback_del_full(wd->resize_obj, "elm,action,state,changed", - "*", _on_state_changed, obj); - efl_canvas_group_del(efl_super(obj, MY_CLASS)); -} - EOLIAN static int _efl_ui_nstate_count_get(Eo *obj EINA_UNUSED, Efl_Ui_Nstate_Data *pd) { @@ -174,9 +153,4 @@ _efl_ui_nstate_class_constructor(Efl_Class *klass) ELM_WIDGET_KEY_DOWN_DEFAULT_IMPLEMENT(efl_ui_nstate, Efl_Ui_Nstate_Data) -/* Internal EO APIs and hidden overrides */ - -#define EFL_UI_NSTATE_EXTRA_OPS \ - EFL_CANVAS_GROUP_ADD_DEL_OPS(efl_ui_nstate) - #include "efl_ui_nstate.eo.c"