elm_menu: added elm_menu_item_subitems_clear.

This commit is contained in:
Daniel Juyung Seo 2013-09-21 20:22:10 +09:00
parent a7cd873410
commit f88c1c8f2f
4 changed files with 33 additions and 3 deletions

View File

@ -1644,3 +1644,7 @@
2013-09-21 Daniel Juyung Seo (SeoZ)
* menu: added "dismissed" callback.
2013-09-21 Daniel Juyung Seo (SeoZ)
* menu: added elm_menu_item_subitems_clear.

View File

@ -93,6 +93,7 @@ Additions:
* Add elm_widget_item_part_text_custom_set(), elm_widget_item_part_text_custom_get(), elm_widget_item_part_text_custom_update().
* Add "dismissed" smart callback for hover.
* Add "dismissed" smart callback for menu.
* Add elm_menu_item_subitems_clear().
Improvements:

View File

@ -897,12 +897,10 @@ static Eina_Bool
_item_del_pre_hook(Elm_Object_Item *it)
{
Elm_Menu_Item *item = (Elm_Menu_Item *)it;
Elm_Object_Item *_item;
ELM_MENU_DATA_GET(WIDGET(item), sd);
EINA_LIST_FREE(item->submenu.items, _item)
elm_object_item_del(_item);
elm_menu_item_subitems_clear(it);
if (item->label) eina_stringshare_del(item->label);
if (item->content) evas_object_del(item->content);
if (item->submenu.hv) evas_object_del(item->submenu.hv);
@ -1114,6 +1112,18 @@ elm_menu_item_subitems_get(const Elm_Object_Item *it)
return ((Elm_Menu_Item *)it)->submenu.items;
}
EAPI void
elm_menu_item_subitems_clear(Elm_Object_Item *it)
{
Elm_Object_Item *sub_it;
Eina_List *l, *l_next;
ELM_MENU_ITEM_CHECK_OR_RETURN(it);
EINA_LIST_FOREACH_SAFE(((Elm_Menu_Item *)it)->submenu.items,
l, l_next, sub_it)
elm_object_item_del(sub_it);
}
EAPI const Eina_List *
elm_menu_items_get(const Evas_Object *obj)
{

View File

@ -82,6 +82,21 @@ EAPI Eina_Bool elm_menu_item_is_separator(Elm_Object_Item *it
*/
EAPI const Eina_List *elm_menu_item_subitems_get(const Elm_Object_Item *it);
/**
* Remove all sub-items (children) of the given item
* @since 1.8
*
* @param it The item
*
* This removes all items that are children (and their descendants) of the
* given item @p it.
*
* @see elm_object_item_del()
*
* @ingroup Menu
*/
EAPI void elm_menu_item_subitems_clear(Elm_Object_Item *it);
/**
* @brief Get the position of a menu item
*