Merge "deprecate elm_entry_autoperiod_set, elm_entry_autoenable_returnkey_set. There...
authorSehwan Park <sehwan@samsung.com>
Mon, 20 Feb 2012 04:39:42 +0000 (13:39 +0900)
committerGerrit Code Review <gerrit2@localhost>
Mon, 20 Feb 2012 04:39:42 +0000 (13:39 +0900)
debian/changelog
src/lib/elc_ctxpopup.c
src/lib/elc_naviframe.c
src/lib/elm_diskselector.c
src/lib/elm_flipselector.c
src/lib/elm_index.c
src/lib/elm_slideshow.c
src/lib/elm_toolbar.c
src/lib/elm_widget.c
src/lib/elm_widget.h

index ef58514..581f372 100644 (file)
@@ -1,3 +1,11 @@
+elementary (1.0.0+svn.67547slp2+build02) unstable; urgency=low
+
+  * Package Upload
+  * Git: slp/pkgs/e/elementary
+  * Tag: elementary_1.0.0+svn.67547slp2+build02
+
+ -- ChunEon Park <chuneon.park@samsung.com>  Mon, 20 Feb 2012 12:05:00 +0900
+
 elementary (1.0.0+svn.67547slp2+build01) unstable; urgency=low
 
   * Package Upload
index df4876a..e554402 100644 (file)
@@ -1308,16 +1308,16 @@ _remove_items(Widget_Data *wd)
    wd->items = NULL;
 }
 
-static void
+static Eina_Bool
 _item_del_pre_hook(Elm_Object_Item *it)
 {
-   ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
+   ELM_OBJ_ITEM_CHECK_OR_RETURN(it, EINA_FALSE);
 
    Widget_Data *wd;
    Elm_Ctxpopup_Item *ctxpopup_it = (Elm_Ctxpopup_Item *) it;
 
    wd = elm_widget_data_get(WIDGET(ctxpopup_it));
-   if (!wd) return;
+   if (!wd) return EINA_FALSE;
 
    if (ctxpopup_it->icon)
      evas_object_del(ctxpopup_it->icon);
@@ -1333,11 +1333,13 @@ _item_del_pre_hook(Elm_Object_Item *it)
    if (eina_list_count(wd->items) < 1)
      {
         evas_object_hide(WIDGET(ctxpopup_it));
-        return;
+        return EINA_TRUE;
      }
 
    if (wd->visible)
      _sizing_eval(WIDGET(ctxpopup_it));
+
+   return EINA_TRUE;
 }
 
 EAPI Evas_Object *
index c134cf6..de50ef7 100644 (file)
@@ -131,6 +131,7 @@ static Evas_Object * _title_icon_unset(Elm_Naviframe_Item *it);
 static Evas_Object * _title_content_unset(Elm_Naviframe_Item *it,
                                           const char *part);
 static void _item_del(Elm_Naviframe_Item *it);
+static Eina_Bool _item_del_pre_hook(Elm_Object_Item *it);
 static void _pushed_finished(void *data,
                              Evas_Object *obj,
                              const char *emission,
@@ -868,8 +869,38 @@ _item_del(Elm_Naviframe_Item *it)
      }
 
    eina_stringshare_del(it->style);
+}
+
+static Eina_Bool
+_item_del_pre_hook(Elm_Object_Item *it)
+{
+   ELM_OBJ_ITEM_CHECK_OR_RETURN(it, EINA_FALSE);
+   Elm_Naviframe_Item *navi_it;
+   Widget_Data *wd;
+
+   navi_it =(Elm_Naviframe_Item *) it;
+   wd = elm_widget_data_get(WIDGET(navi_it));
+   if (!wd) return EINA_FALSE;
+
+   if (it == elm_naviframe_top_item_get(WIDGET(navi_it)))
+     {
+        wd->stack = eina_inlist_remove(wd->stack, EINA_INLIST_GET(navi_it));
+        _item_del(navi_it);
+        //If the item is only one, the stack will be empty
+        if (!wd->stack) return EINA_TRUE;
+        navi_it = EINA_INLIST_CONTAINER_GET(wd->stack->last,
+                                            Elm_Naviframe_Item);
+        evas_object_show(VIEW(navi_it));
+        evas_object_raise(VIEW(navi_it));
+        elm_object_signal_emit(VIEW(navi_it), "elm,state,visible", "elm");
+     }
+   else
+     {
+        wd->stack = eina_inlist_remove(wd->stack, EINA_INLIST_GET(navi_it));
+        _item_del(navi_it);
+     }
 
-   elm_widget_item_del(it);
+   return EINA_TRUE;
 }
 
 static void
@@ -905,6 +936,7 @@ _popped_finished(void *data,
                                    SIG_POP_FINISHED,
                                    data);
    _item_del(data);
+   elm_widget_item_free(data);
 }
 
 static void
@@ -1062,6 +1094,7 @@ _item_new(Evas_Object *obj,
         return NULL;
      }
 
+   elm_widget_item_del_pre_hook_set(it, _item_del_pre_hook);
    elm_widget_item_text_set_hook_set(it, _item_text_set_hook);
    elm_widget_item_text_get_hook_set(it, _item_text_get_hook);
    elm_widget_item_content_set_hook_set(it, _item_content_set_hook);
@@ -1279,7 +1312,10 @@ elm_naviframe_item_pop(Evas_Object *obj)
         edje_object_message_signal_process(VIEW(prev_it));
      }
    else
-     _item_del(it);
+     {
+        _item_del(it);
+        elm_widget_item_free(it);
+     }
 
    return content;
 }
@@ -1307,6 +1343,8 @@ elm_naviframe_item_pop_to(Elm_Object_Item *it)
         prev_l = l->prev;
         wd->stack = eina_inlist_remove(wd->stack, l);
         _item_del(EINA_INLIST_CONTAINER_GET(l, Elm_Naviframe_Item));
+        elm_widget_item_free(EINA_INLIST_CONTAINER_GET(l,
+                                                       Elm_Naviframe_Item));
         l = prev_l;
      }
    elm_naviframe_item_pop(WIDGET(navi_it));
@@ -1348,31 +1386,7 @@ elm_naviframe_item_promote(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;
-   Widget_Data *wd;
-
-   navi_it =(Elm_Naviframe_Item *) it;
-   wd = elm_widget_data_get(WIDGET(navi_it));
-   if (!wd) return;
-
-   if (it == elm_naviframe_top_item_get(WIDGET(navi_it)))
-     {
-        wd->stack = eina_inlist_remove(wd->stack, EINA_INLIST_GET(navi_it));
-        _item_del(navi_it);
-        //If the item is only one, the stack will be empty
-        if (!wd->stack) return;
-        navi_it = EINA_INLIST_CONTAINER_GET(wd->stack->last,
-                                            Elm_Naviframe_Item);
-        evas_object_show(VIEW(navi_it));
-        evas_object_raise(VIEW(navi_it));
-        edje_object_signal_emit(VIEW(navi_it), "elm,state,visible", "elm");
-     }
-   else
-     {
-        wd->stack = eina_inlist_remove(wd->stack, EINA_INLIST_GET(navi_it));
-        _item_del(navi_it);
-     }
+   elm_object_item_del(it);
 }
 
 EAPI void
index cbfcd43..bd5ce8c 100644 (file)
@@ -226,17 +226,17 @@ _check_string(void *data)
    return EINA_FALSE;
 }
 
-static void
+static Eina_Bool
 _item_del_pre_hook(Elm_Object_Item *it)
 {
-   ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
+   ELM_OBJ_ITEM_CHECK_OR_RETURN(it, EINA_FALSE);
    Elm_Diskselector_Item *item, *item2, *dit;
    Eina_List *l;
    int i = 0;
    Widget_Data *wd;
    item = (Elm_Diskselector_Item *) it;
    wd = elm_widget_data_get(WIDGET(item));
-   if (!wd) return;
+   if (!wd) return EINA_FALSE;
 
    elm_box_unpack(wd->main_box, VIEW(item));
 
@@ -327,6 +327,7 @@ _item_del_pre_hook(Elm_Object_Item *it)
    wd->check_idler = ecore_idle_enterer_before_add(_check_string, wd);
    _sizing_eval(wd->self);
 
+   return EINA_TRUE;
 }
 
 static Elm_Diskselector_Item *
index 72702a7..e3fcba6 100644 (file)
@@ -57,7 +57,7 @@ static void _update_view(Evas_Object *obj);
 static void _callbacks_set(Evas_Object *obj);
 static void _flip_up(Widget_Data *wd);
 static void _flip_down(Widget_Data *wd);
-static void _item_del_pre_hook(Elm_Object_Item *it);
+static Eina_Bool _item_del_pre_hook(Elm_Object_Item *it);
 
 static const char SIG_SELECTED[] = "selected";
 static const char SIG_UNDERFLOWED[] = "underflowed";
@@ -576,22 +576,22 @@ _callbacks_set(Evas_Object *obj)
                                    "", _signal_val_change_stop, obj);
 }
 
-static void
+static Eina_Bool
 _item_del_pre_hook(Elm_Object_Item *it)
 {
-   ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
+   ELM_OBJ_ITEM_CHECK_OR_RETURN(it, EINA_FALSE);
    Widget_Data *wd;
    Elm_Flipselector_Item *item, *item2;
    Eina_List *l;
 
    item = (Elm_Flipselector_Item *) it;
    wd = elm_widget_data_get(WIDGET(item));
-   if (!wd) return;
+   if (!wd) return EINA_FALSE;
 
    if (wd->walking > 0)
      {
         item->deleted = EINA_TRUE;
-        return;
+        return EINA_FALSE;
      }
 
    _flipselector_walk(wd);
@@ -619,6 +619,8 @@ _item_del_pre_hook(Elm_Object_Item *it)
    eina_stringshare_del(item->label);
    _sentinel_eval(wd);
    _flipselector_unwalk(wd);
+
+   return EINA_TRUE;
 }
 
 EAPI Evas_Object *
index 0ac7e7c..dc771c4 100644 (file)
@@ -227,14 +227,15 @@ _sizing_eval(Evas_Object *obj)
    evas_object_size_hint_max_set(obj, maxw, maxh);
 }
 
-static void
+static Eina_Bool
 _item_del_pre_hook(Elm_Object_Item *it)
 {
-   ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
+   ELM_OBJ_ITEM_CHECK_OR_RETURN(it, EINA_FALSE);
    Widget_Data *wd = elm_widget_data_get(WIDGET(it));
-   if (!wd) return;
+   if (!wd) return EINA_FALSE;
    _item_free((Elm_Index_Item *) it);
    _index_box_clear(WIDGET(it), wd->bx[wd->level], wd->level);
+   return EINA_TRUE;
 }
 
 static Elm_Index_Item *
index 9871282..bc241b1 100644 (file)
@@ -349,14 +349,15 @@ _timer_cb(void *data)
    return ECORE_CALLBACK_CANCEL;
 }
 
-static void
+static Eina_Bool
 _item_del_pre_hook(Elm_Object_Item *it)
 {
-   ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
+   ELM_OBJ_ITEM_CHECK_OR_RETURN(it, EINA_FALSE);
 
    Elm_Slideshow_Item *item = (Elm_Slideshow_Item *) it;
    Widget_Data *wd = elm_widget_data_get(WIDGET(item));
-   if (!wd) return;
+   if (!wd) return EINA_FALSE;
+
    if (wd->previous == item) wd->previous = NULL;
    if (wd->current == item)
      {
@@ -379,6 +380,8 @@ _item_del_pre_hook(Elm_Object_Item *it)
 
    if ((VIEW(item)) && (item->itc->func.del))
      item->itc->func.del(elm_widget_item_data_get(item), VIEW(item));
+
+   return EINA_TRUE;
 }
 
 EAPI Evas_Object *
index 7de897b..5cac094 100644 (file)
@@ -764,10 +764,10 @@ _access_state_cb(void *data __UNUSED__, Evas_Object *obj __UNUSED__, Elm_Widget_
    return NULL;
 }
 
-static void
+static Eina_Bool
 _item_del_pre_hook(Elm_Object_Item *it)
 {
-   ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
+   ELM_OBJ_ITEM_CHECK_OR_RETURN(it, EINA_FALSE);
 
    Widget_Data *wd;
    Evas_Object *obj2;
@@ -775,7 +775,8 @@ _item_del_pre_hook(Elm_Object_Item *it)
    item = (Elm_Toolbar_Item *) it;
 
    wd = elm_widget_data_get(WIDGET(item));
-   if (!wd) return;
+   if (!wd) return EINA_FALSE;
+
    obj2 = WIDGET(item);
    next = ELM_TOOLBAR_ITEM_FROM_INLIST(EINA_INLIST_GET(item)->next);
    wd->items = eina_inlist_remove(wd->items, EINA_INLIST_GET(item));
@@ -784,6 +785,8 @@ _item_del_pre_hook(Elm_Object_Item *it)
    if (wd->always_select && item->selected && next) _item_select(next);
    _item_del(item);
    _theme_hook(obj2);
+
+   return EINA_TRUE;
 }
 
 static Elm_Toolbar_Item *
index cde7778..d45ab97 100644 (file)
@@ -2850,11 +2850,12 @@ _elm_widget_item_del(Elm_Widget_Item *item)
 {
    ELM_WIDGET_ITEM_CHECK_OR_RETURN(item);
 
-   //Widget delete callback
+   //Widget item delete callback
    if (item->del_pre_func)
-     item->del_pre_func((Elm_Object_Item *) item);
-
-   _elm_widget_item_free(item);
+     {
+        if (item->del_pre_func((Elm_Object_Item *) item))
+          _elm_widget_item_free(item);
+     }
 }
 
 /**
index 9921d4d..24ade60 100644 (file)
@@ -207,7 +207,7 @@ typedef Evas_Object          *(*Elm_Widget_Content_Get_Cb)(const void *data, con
 typedef Evas_Object          *(*Elm_Widget_Content_Unset_Cb)(const void *data, const char *part);
 typedef void                  (*Elm_Widget_Signal_Emit_Cb)(void *data, const char *emission, const char *source);
 typedef void                  (*Elm_Widget_Disable_Cb)(void *data);
-typedef void                  (*Elm_Widget_Del_Pre_Cb)(void *data);
+typedef Eina_Bool             (*Elm_Widget_Del_Pre_Cb)(void *data);
 
 #define ELM_ACCESS_TYPE    0    // when reading out widget or item this is read first
 #define ELM_ACCESS_INFO    1    // next read is info - this is normally label