}
}
+static void
+_item_del_pre_hook(Elm_Object_Item *it)
+{
+ ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
+ Elm_Gen_Item *_it = (Elm_Gen_Item *) it;
+ if ((_it->relcount > 0) || (_it->walking > 0))
+ {
+ _elm_genlist_item_del_notserious(_it);
+ return;
+ }
+
+ _item_del(_it);
+}
+
static Elm_Gen_Item *
_item_new(Widget_Data *wd,
const Elm_Gengrid_Item_Class *itc,
it = _elm_genlist_item_new(wd, itc, data, NULL, func, func_data);
if (!it) return NULL;
elm_widget_item_disable_hook_set(it, _item_disable_hook);
+ elm_widget_item_del_pre_hook_set(it, _item_del_pre_hook);
it->item = ELM_NEW(Elm_Gen_Item_Type);
wd->count++;
it->group = it->itc->item_style && (!strcmp(it->itc->item_style, "group_index"));
EAPI void
elm_gengrid_item_del(Elm_Object_Item *it)
{
- ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
- Elm_Gen_Item *_it = (Elm_Gen_Item *) it;
- if ((_it->relcount > 0) || (_it->walking > 0))
- {
- _elm_genlist_item_del_notserious(_it);
- return;
- }
-
- _item_del(_it);
- elm_widget_item_free(it);
+ elm_object_item_del(it);
}
EAPI void
* "source" arguments, respectively, when the state is true (the
* default is false), where @c XXX is the name of the (state) part.
* See #Elm_Gengrid_Item_State_Get_Cb.
- * - @c func.del - This is called when elm_gengrid_item_del() is
+ * - @c func.del - This is called when elm_object_item_del() is
* called on an item or elm_gengrid_clear() is called on the
* gengrid. This is intended for use when gengrid items are
* deleted, so any data attached to the item (e.g. its data
* @see elm_gengrid_group_item_size_set()
* @see elm_gengrid_horizontal_set()
* @see elm_gengrid_item_append()
- * @see elm_gengrid_item_del()
+ * @see elm_object_item_del()
* @see elm_gengrid_clear()
*
* @ingroup Gengrid
* @see elm_gengrid_item_prepend()
* @see elm_gengrid_item_insert_before()
* @see elm_gengrid_item_insert_after()
- * @see elm_gengrid_item_del()
+ * @see elm_object_item_del()
*
* @ingroup Gengrid
*/
* @see elm_gengrid_item_append()
* @see elm_gengrid_item_insert_before()
* @see elm_gengrid_item_insert_after()
- * @see elm_gengrid_item_del()
+ * @see elm_object_item_del()
*
* @ingroup Gengrid
*/
* @see elm_gengrid_item_append()
* @see elm_gengrid_item_prepend()
* @see elm_gengrid_item_insert_after()
- * @see elm_gengrid_item_del()
+ * @see elm_object_item_del()
*
* @ingroup Gengrid
*/
* @see elm_gengrid_item_append()
* @see elm_gengrid_item_prepend()
* @see elm_gengrid_item_insert_after()
- * @see elm_gengrid_item_del()
+ * @see elm_object_item_del()
*
* @ingroup Gengrid
*/
* @see elm_gengrid_item_append()
* @see elm_gengrid_item_prepend()
* @see elm_gengrid_item_insert_after()
- * @see elm_gengrid_item_del()
+ * @see elm_object_item_del()
* @see elm_gengrid_item_direct_sorted_insert()
*
* @ingroup Gengrid
* @see elm_gengrid_item_append()
* @see elm_gengrid_item_prepend()
* @see elm_gengrid_item_insert_after()
- * @see elm_gengrid_item_del()
+ * @see elm_object_item_del()
* @see elm_gengrid_item_sorted_insert()
*
* @ingroup Gengrid
EAPI Elm_Object_Item *elm_gengrid_item_prev_get(const Elm_Object_Item *it);
/**
- * Remove a gengrid item from its parent, deleting it.
- *
- * @param it The item to be removed.
- * @return @c EINA_TRUE on success or @c EINA_FALSE, otherwise.
- *
- * @see elm_gengrid_clear(), to remove all items in a gengrid at
- * once.
- *
- * @ingroup Gengrid
- */
-EAPI void elm_gengrid_item_del(Elm_Object_Item *it);
-
-/**
* Update the contents of a given gengrid item
*
* @param it The gengrid item
* This removes (and deletes) all items in @p obj, leaving it
* empty.
*
- * @see elm_gengrid_item_del(), to remove just one item.
+ * @see elm_object_item_del(), to remove just one item.
*
* @ingroup Gengrid
*/
*
* Set the function to notify to widgets when item is being deleted by user.
*
- * This function will complain if there was a callback set already,
- * however it will set the new one.
- *
* @param item a valid #Elm_Widget_Item to be notified
* @see elm_widget_item_del_pre_hook_set() convenience macro.
* @ingroup Widget
_elm_widget_item_del_pre_hook_set(Elm_Widget_Item *item, Elm_Widget_Del_Pre_Cb func)
{
ELM_WIDGET_ITEM_CHECK_OR_RETURN(item);
- if ((item->del_pre_func) && (item->del_pre_func != func))
- WRN("You're replacing a previously set del_pre_cb %p of item %p with %p", item->del_pre_func, item, func);
item->del_pre_func = func;
}