1 /* vim: set sw=4 ts=4 sts=4 et: */
7 * @brief Contains the structures and methods to support the Desktop
9 * @addtogroup Efreet_Menu Efreet_Menu: The FDO Desktop Menu Specification
10 * functions and structures
18 enum Efreet_Menu_Entry_Type
20 EFREET_MENU_ENTRY_MENU,
21 EFREET_MENU_ENTRY_DESKTOP,
22 EFREET_MENU_ENTRY_SEPARATOR,
23 EFREET_MENU_ENTRY_HEADER
27 * Efreet_Menu_Entry_Type
29 typedef enum Efreet_Menu_Entry_Type Efreet_Menu_Entry_Type;
34 typedef struct Efreet_Menu Efreet_Menu;
38 * Stores information on a entry in the menu
42 Efreet_Menu_Entry_Type type;
43 const char *id; /**< File-id for desktop and relative name for menu */
45 const char *name; /**< Name this entry should show */
46 const char *icon; /**< Icon for this entry */
48 Efreet_Desktop *desktop; /**< The desktop we refer too */
49 Ecore_List *entries; /**< The menu items */
52 EAPI int efreet_menu_kde_legacy_init(void);
54 EAPI Efreet_Menu *efreet_menu_new(const char *name);
55 EAPI void efreet_menu_file_set(const char *file);
56 EAPI Efreet_Menu *efreet_menu_get(void);
57 EAPI Efreet_Menu *efreet_menu_parse(const char *path);
58 EAPI int efreet_menu_save(Efreet_Menu *menu, const char *path);
59 EAPI void efreet_menu_free(Efreet_Menu *menu);
61 EAPI int efreet_menu_desktop_insert(Efreet_Menu *menu,
62 Efreet_Desktop *desktop,
64 EAPI int efreet_menu_desktop_remove(Efreet_Menu *menu,
65 Efreet_Desktop *desktop);
67 EAPI void efreet_menu_dump(Efreet_Menu *menu, const char *indent);