}
void
+_push_finished_item_activated(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info)
+{
+ Elm_Object_Item *it = event_info;
+ printf("Item Push is Finished! Item(%p) becomes Activated! The Title is \"%s\"\n",
+ it, elm_object_item_text_get(it));
+}
+
+void
+_push_finished_item_deactivated(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info)
+{
+ Elm_Object_Item *it = event_info;
+ printf("Item Push is Finished! Item(%p) becomes Deactivated! The Title is \"%s\"\n",
+ it, elm_object_item_text_get(it));
+}
+
+void
+_pop_finished_item_activated(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info)
+{
+ Elm_Object_Item *it = event_info;
+ printf("Item Pop is Finished! Item(%p) becomes Activated! The Title is \"%s\"\n",
+ it, elm_object_item_text_get(it));
+}
+
+void
+_pop_finished_item_deactivated(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info)
+{
+ Elm_Object_Item *it = event_info;
+ printf("Item Pop is Finished! Item(%p) becomes Deactivated! The Title is \"%s\"\n",
+ it, elm_object_item_text_get(it));
+}
+
+void
_title_visible(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
elm_naviframe_item_title_enabled_set(data,
elm_win_resize_object_add(win, nf);
evas_object_show(nf);
evas_object_smart_callback_add(nf, "title,clicked", _title_clicked, 0);
+ evas_object_smart_callback_add(nf, "push,finished,item,activated", _push_finished_item_activated, NULL);
+ evas_object_smart_callback_add(nf, "push,finished,item,deactivated", _push_finished_item_deactivated, NULL);
+ evas_object_smart_callback_add(nf, "pop,finished,item,activated", _pop_finished_item_activated, NULL);
+ evas_object_smart_callback_add(nf, "pop,finished,item,deactivated", _pop_finished_item_deactivated, NULL);
btn = elm_button_add(nf);
evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
static const char SIG_TRANSITION_FINISHED[] = "transition,finished";
static const char SIG_TITLE_TRANSITION_FINISHED[] = "title,transition,finished";
static const char SIG_TITLE_CLICKED[] = "title,clicked";
+static const char SIG_PUSH_FINISHED_ITEM_ACTIVATED[] = "push,finished,item,activated";
+static const char SIG_PUSH_FINISHED_ITEM_DEACTIVATED[] = "push,finished,item,deactivated";
+static const char SIG_POP_FINISHED_ITEM_ACTIVATED[] = "pop,finished,item,activated";
+static const char SIG_POP_FINISHED_ITEM_DEACTIVATED[] = "pop,finished,item,deactivated";
static const Evas_Smart_Cb_Description _smart_callbacks[] = {
{SIG_TRANSITION_FINISHED, ""},
{SIG_WIDGET_ACCESS_CHANGED, ""}, /**< handled by elm_widget */
{SIG_LAYOUT_FOCUSED, ""}, /**< handled by elm_layout */
{SIG_LAYOUT_UNFOCUSED, ""}, /**< handled by elm_layout */
+ {SIG_PUSH_FINISHED_ITEM_ACTIVATED, ""},
+ {SIG_PUSH_FINISHED_ITEM_DEACTIVATED, ""},
+ {SIG_POP_FINISHED_ITEM_ACTIVATED, ""},
+ {SIG_POP_FINISHED_ITEM_DEACTIVATED, ""},
{NULL, NULL}
};
if (!prev_it)
{
elm_widget_tree_unfocusable_set(VIEW(nit), EINA_TRUE);
+ efl_event_callback_legacy_call(WIDGET(nit), ELM_NAVIFRAME_EVENT_POP_FINISHED_ITEM_DEACTIVATED, EO_OBJ(nit));
goto end;
}
_prev_page_focus_recover(prev_it);
elm_object_signal_emit(VIEW(prev_it), "elm,state,visible", "elm");
+
+ efl_event_callback_legacy_call(WIDGET(nit), ELM_NAVIFRAME_EVENT_POP_FINISHED_ITEM_ACTIVATED, EO_OBJ(prev_it));
+ efl_event_callback_legacy_call(WIDGET(nit), ELM_NAVIFRAME_EVENT_POP_FINISHED_ITEM_DEACTIVATED, EO_OBJ(nit));
}
end:
}
_item_free(nit);
-
efl_destructor(efl_super(eo_item, ELM_NAVIFRAME_ITEM_CLASS));
}
if (sd->freeze_events)
evas_object_freeze_events_set(VIEW(it), EINA_FALSE);
+
+ efl_event_callback_legacy_call(WIDGET(it), ELM_NAVIFRAME_EVENT_PUSH_FINISHED_ITEM_DEACTIVATED, EO_OBJ(it));
}
/* "elm,state,cur,popped"
elm_widget_tree_unfocusable_set(VIEW(it), EINA_FALSE);
sd->popping = eina_list_remove(sd->popping, it);
+ efl_event_callback_legacy_call(WIDGET(it), ELM_NAVIFRAME_EVENT_POP_FINISHED_ITEM_DEACTIVATED, EO_OBJ(it));
elm_wdg_item_del(EO_OBJ(it));
}
if (sd->freeze_events)
evas_object_freeze_events_set(VIEW(it), EINA_FALSE);
+ Eina_Bool is_pushed = it->pushing;
it->pushing = EINA_FALSE;
efl_event_callback_legacy_call(WIDGET(it), ELM_NAVIFRAME_EVENT_TRANSITION_FINISHED, EO_OBJ(it));
+
+ if (EO_OBJ(it) == elm_naviframe_top_item_get(WIDGET(it)))
+ {
+ if (is_pushed)
+ efl_event_callback_legacy_call(WIDGET(it), ELM_NAVIFRAME_EVENT_PUSH_FINISHED_ITEM_ACTIVATED, EO_OBJ(it));
+ else
+ efl_event_callback_legacy_call(WIDGET(it), ELM_NAVIFRAME_EVENT_POP_FINISHED_ITEM_ACTIVATED, EO_OBJ(it));
+ }
}
static void
elm_object_signal_emit(VIEW(item), "elm,state,visible", "elm");
elm_layout_sizing_eval(obj);
+
+ if (!top_item)
+ efl_event_callback_legacy_call(obj, ELM_NAVIFRAME_EVENT_PUSH_FINISHED_ITEM_ACTIVATED, EO_OBJ(item));
}
EAPI Evas_Object *
elm_layout_sizing_eval(obj);
+ if (top_inserted)
+ {
+ efl_event_callback_legacy_call(obj, ELM_NAVIFRAME_EVENT_PUSH_FINISHED_ITEM_ACTIVATED, eo_item);
+ efl_event_callback_legacy_call(obj, ELM_NAVIFRAME_EVENT_PUSH_FINISHED_ITEM_DEACTIVATED, EO_OBJ(after));
+ }
+
return eo_item;
}
_schedule_deferred(nfo, sd);
}
else
- elm_wdg_item_del(eo_item);
+ {
+ efl_event_callback_legacy_call(obj, ELM_NAVIFRAME_EVENT_POP_FINISHED_ITEM_DEACTIVATED, eo_item);
+ elm_wdg_item_del(eo_item);
+ }
on_error:
return content;