[elc_naviframe]: elm_naviframe_item_del API added.
authorShilpa Singh <shilpa.singh@samsung.com>
Thu, 6 Oct 2011 07:40:10 +0000 (16:40 +0900)
committerShilpa Singh <shilpa.singh@samsung.com>
Thu, 6 Oct 2011 08:37:39 +0000 (17:37 +0900)
Change-Id: I0e397835afb9677e07d507bd900512d16d62ba28

src/lib/Elementary.h.in
src/lib/elc_naviframe.c

index 9fbca58..f749661 100644 (file)
@@ -8378,6 +8378,12 @@ extern "C" {
     */
    EAPI void                elm_naviframe_item_pop_to(Elm_Object_Item *it) EINA_ARG_NONNULL(1);
    /**
+    * @brief Delete's the given item.
+    *
+    * @param it The naviframe item
+    */
+   EAPI void                elm_naviframe_item_del(Elm_Object_Item *it) EINA_ARG_NONNULL(1);
+   /**
     * @brief preserve the content objects when items are popped.
     *
     * @param obj The naviframe object
index fd4f11b..5af6e32 100644 (file)
@@ -847,8 +847,6 @@ elm_naviframe_item_push(Evas_Object *obj,
                                 "elm,state,new,pushed",
                                 "elm");
      }
-   else
-     edje_object_signal_emit(it->base.view, "elm,state,visible", "elm");
    it->title_visible = EINA_TRUE;
    wd->stack = eina_list_append(wd->stack, it);
    return ELM_CAST(it);
@@ -917,6 +915,24 @@ elm_naviframe_item_pop_to(Elm_Object_Item *it)
 }
 
 EAPI void
+elm_naviframe_item_del(Elm_Object_Item *it)
+{
+   ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
+   Elm_Naviframe_Item *navi_it = ELM_CAST(it);
+   Widget_Data *wd = elm_widget_data_get(navi_it->base.widget);
+   if (it == elm_naviframe_top_item_get(navi_it->base.widget))
+     {
+        _item_del(navi_it);
+        navi_it = ELM_CAST(eina_list_last(wd->stack)->data);
+        evas_object_show(navi_it->base.view);
+        evas_object_raise(navi_it->base.view);
+        edje_object_signal_emit(navi_it->base.view, "elm,state,visible", "elm");
+     }
+   else
+     _item_del(navi_it);
+}
+
+EAPI void
 elm_naviframe_content_preserve_on_pop_set(Evas_Object *obj, Eina_Bool preserve)
 {
    ELM_CHECK_WIDTYPE(obj, widtype);