jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=1e83dd84c6d41dbb977eb6820f5ba26dc8b11e07

commit 1e83dd84c6d41dbb977eb6820f5ba26dc8b11e07
Author: Jean-Philippe Andre <jp.an...@samsung.com>
Date:   Tue Oct 24 11:13:51 2017 +0900

    nstate: Remove some legacy code
    
    This uses constructor/destructor instead of group_add/group_del.
    
    Note: finalize can't be used for theme loading as any action done inside
    efl_add(...) would be lost (eg. part text set).
---
 src/lib/elementary/efl_ui_check.c  | 58 ++++++++++++------------------
 src/lib/elementary/efl_ui_nstate.c | 72 ++++++++++++--------------------------
 2 files changed, 46 insertions(+), 84 deletions(-)

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"

-- 


Reply via email to