From 196f55ef541c671bc8238af2288b6c38428b5a36 Mon Sep 17 00:00:00 2001 From: Sebastian Dransfeld Date: Thu, 5 Apr 2007 12:10:32 +0000 Subject: [PATCH] Remove desktop from menu. SVN revision: 29371 --- legacy/efreet/src/lib/efreet_menu.c | 26 ++++++++++++++++++++++++++ legacy/efreet/src/lib/efreet_menu.h | 1 + 2 files changed, 27 insertions(+) diff --git a/legacy/efreet/src/lib/efreet_menu.c b/legacy/efreet/src/lib/efreet_menu.c index 0330407760..84d6d769c7 100644 --- a/legacy/efreet/src/lib/efreet_menu.c +++ b/legacy/efreet/src/lib/efreet_menu.c @@ -835,6 +835,32 @@ efreet_menu_desktop_insert(Efreet_Menu *menu, Efreet_Desktop *desktop, int pos) } /** + * @param desktop: The desktop to remove + * @return Returns 1 on success, 0 on failure + * @brief Remove a desktop element in a menu structure. Only accepts desktop files + * in default directories. + */ +int +efreet_menu_desktop_remove(Efreet_Menu *menu, Efreet_Desktop *desktop) +{ + Efreet_Menu *entry; + + if (!desktop || !menu) return 0; + + entry = ecore_list_find(menu->entries, + ECORE_COMPARE_CB(efreet_menu_cb_entry_compare_desktop), + desktop); + if (entry) + { + ecore_list_remove(menu->entries); + efreet_menu_free(entry); + return 1; + } + return 0; +} + +/** + * @param menu: The menu to work with * @param menu: The menu to work with * @param indent: The indent level to print the menu at * @return Returns no value diff --git a/legacy/efreet/src/lib/efreet_menu.h b/legacy/efreet/src/lib/efreet_menu.h index 49b85d72c2..29214d7c16 100644 --- a/legacy/efreet/src/lib/efreet_menu.h +++ b/legacy/efreet/src/lib/efreet_menu.h @@ -57,6 +57,7 @@ int efreet_menu_save(Efreet_Menu *menu, const char *path); void efreet_menu_free(Efreet_Menu *menu); int efreet_menu_desktop_insert(Efreet_Menu *menu, Efreet_Desktop *desktop, int pos); +int efreet_menu_desktop_remove(Efreet_Menu *menu, Efreet_Desktop *desktop); void efreet_menu_dump(Efreet_Menu *menu, const char *indent);