diff options
Diffstat (limited to 'src/lib/elementary/elm_widget_item_static_focus.c')
-rw-r--r-- | src/lib/elementary/elm_widget_item_static_focus.c | 56 |
1 files changed, 17 insertions, 39 deletions
diff --git a/src/lib/elementary/elm_widget_item_static_focus.c b/src/lib/elementary/elm_widget_item_static_focus.c index f040cbcf4c..cb8d10bcd0 100644 --- a/src/lib/elementary/elm_widget_item_static_focus.c +++ b/src/lib/elementary/elm_widget_item_static_focus.c @@ -27,43 +27,35 @@ _realized_set(Elm_Widget_Item_Static_Focus *f) } static void -_list_realized_cb(void *data, const Efl_Event *ev) +_list_realized_cb(Eo *obj) { - if (ev->info != data) return; + _realized_set(obj); - _realized_set(data); - - if (!elm_object_item_disabled_get(data) && - elm_genlist_item_type_get(data) != ELM_GENLIST_ITEM_GROUP) - efl_ui_focus_object_setup_order(data); + if (!elm_object_item_disabled_get(obj) && + elm_genlist_item_type_get(obj) != ELM_GENLIST_ITEM_GROUP) + efl_ui_focus_object_setup_order(obj); } static void -_grid_realized_cb(void *data, const Efl_Event *ev) +_grid_realized_cb(Eo *obj) { const Elm_Gen_Item_Class *itc; Eina_Bool is_group = EINA_FALSE; - if (ev->info != data) return; - - _realized_set(data); + _realized_set(obj); - itc = elm_gengrid_item_item_class_get(data); + itc = elm_gengrid_item_item_class_get(obj); is_group = (itc && itc->item_style && !strcmp(itc->item_style, "group_index")); - if (!elm_object_item_disabled_get(data) && !is_group) - { - efl_ui_focus_object_setup_order(data); - } + if (!elm_object_item_disabled_get(obj) && !is_group) + efl_ui_focus_object_setup_order(obj); } static void -_unrealized_cb(void *data, const Efl_Event *ev EINA_UNUSED) +_unrealized_cb(Eo *obj) { - Elm_Widget_Item_Static_Focus_Data *pd = efl_data_scope_get(data, MY_CLASS); - - if (ev->info != data) return; + Elm_Widget_Item_Static_Focus_Data *pd = efl_data_scope_get(obj, MY_CLASS); if (pd) /* if the obect is dead pd is NULL */ { @@ -145,15 +137,10 @@ _elm_widget_item_static_focus_efl_object_constructor(Eo *obj, Elm_Widget_Item_St Eo *ret = efl_constructor(efl_super(obj, MY_CLASS)); if (efl_isa(wpd->widget, ELM_GENLIST_CLASS)) - { - efl_event_callback_add(wpd->widget, ELM_GENLIST_EVENT_REALIZED, _list_realized_cb, obj); - efl_event_callback_add(wpd->widget, ELM_GENLIST_EVENT_UNREALIZED, _unrealized_cb, obj); - } + wpd->func.realized = _list_realized_cb; else - { - efl_event_callback_add(wpd->widget, ELM_GENGRID_EVENT_REALIZED, _grid_realized_cb, obj); - efl_event_callback_add(wpd->widget, ELM_GENGRID_EVENT_UNREALIZED, _unrealized_cb, obj); - } + wpd->func.realized = _grid_realized_cb; + wpd->func.unrealized = _unrealized_cb; return ret; } @@ -161,17 +148,8 @@ EOLIAN static void _elm_widget_item_static_focus_efl_object_destructor(Eo *obj, Elm_Widget_Item_Static_Focus_Data *pd EINA_UNUSED) { Elm_Widget_Item_Data *wpd = efl_data_scope_get(obj, ELM_WIDGET_ITEM_CLASS); - if (efl_isa(wpd->widget, ELM_GENLIST_CLASS)) - { - efl_event_callback_del(wpd->widget, ELM_GENLIST_EVENT_REALIZED, _list_realized_cb, obj); - efl_event_callback_del(wpd->widget, ELM_GENLIST_EVENT_UNREALIZED, _unrealized_cb, obj); - } - else - { - efl_event_callback_del(wpd->widget, ELM_GENGRID_EVENT_REALIZED, _grid_realized_cb, obj); - efl_event_callback_del(wpd->widget, ELM_GENGRID_EVENT_UNREALIZED, _unrealized_cb, obj); - } - + wpd->func.realized = NULL; + wpd->func.unrealized = NULL; if (pd->adapter) efl_del(pd->adapter); |