elementary: add del_cb to hoversel items
authorBoris Faure <billiob@gmail.com>
Sun, 8 Nov 2009 22:20:46 +0000 (22:20 +0000)
committerBoris Faure <billiob@gmail.com>
Sun, 8 Nov 2009 22:20:46 +0000 (22:20 +0000)
SVN revision: 43550

src/lib/elc_hoversel.c
src/lib/elm_list.c

index 098e5041689f3c64d17d0eab300ab8f2df63667b..f3068f52bedfb213576d93da56d1ae5e1d266685 100644 (file)
@@ -36,6 +36,7 @@ struct _Elm_Hoversel_Item
    const char *icon_group;
    Elm_Icon_Type icon_type;
    void (*func) (void *data, Evas_Object *obj, void *event_info);
+   void (*del_cb) (void *data, Evas_Object *obj, void *event_info);
    void *data;
 };
 
@@ -63,6 +64,7 @@ _del_hook(Evas_Object *obj)
    elm_hoversel_hover_end(obj);
    EINA_LIST_FREE(wd->items, it)
      {
+       if (it->del_cb) it->del_cb((void *)it->data, it->obj, it);
        eina_stringshare_del(it->label);
        eina_stringshare_del(it->icon_file);
        eina_stringshare_del(it->icon_group);
@@ -469,6 +471,7 @@ elm_hoversel_item_del(Elm_Hoversel_Item *it)
 {
    Widget_Data *wd = elm_widget_data_get(it->obj);
 
+   if (it->del_cb) it->del_cb((void *)it->data, it->obj, it);
    if (!wd) return;
    elm_hoversel_hover_end(it->obj);
    wd->items = eina_list_remove(wd->items, it);
@@ -478,6 +481,20 @@ elm_hoversel_item_del(Elm_Hoversel_Item *it)
    free(it);
 }
 
+/**
+ * Set the function called when an hoversel item is freed.
+ *
+ * @param it The item to set the callback on
+ * @param func The function called
+ *
+ * @ingroup Hoversel
+ */
+EAPI void
+elm_hoversel_item_del_cb_set(Elm_Hoversel_Item *it, void (*func)(void *data, Evas_Object *obj, void *event_info))
+{
+   it->del_cb = func;
+}
+
 /**
  * Get the data pointer passed to the item add function
  *
index a26fae84e4bec32f117fe4e656af86f17f427c43..794882bb32b0d00c918112d7cf6245e87c4c9c9b 100644 (file)
@@ -701,6 +701,14 @@ elm_list_item_del(Elm_List_Item *it)
    free(it);
 }
 
+/**
+ * Set the function called when a list item is freed.
+ *
+ * @param it The item to set the callback on
+ * @param func The function called
+ *
+ * @ingroup Hoversel
+ */
 EAPI void
 elm_list_item_del_cb_set(Elm_List_Item *it, void (*func)(void *data, Evas_Object *obj, void *event_info))
 {