Efreet_Menu: The FDO Desktop Menu Specification

functions and structures More...

Data Structures

struct  Efreet_Menu
 Efreet_Menu Stores information on a entry in the menu. More...
 

Typedefs

typedef enum Efreet_Menu_Entry_Type Efreet_Menu_Entry_Type
 The type of entry.
 
typedef struct Efreet_Menu Efreet_Menu
 Efreet_Menu.
 
typedef void(* Efreet_Menu_Cb) (void *data, Efreet_Menu *menu)
 A callback used with efreet_menu_async_get() and efreet_menu_async_parse() More...
 

Enumerations

enum  Efreet_Menu_Entry_Type {
  EFREET_MENU_ENTRY_MENU,
  EFREET_MENU_ENTRY_DESKTOP,
  EFREET_MENU_ENTRY_SEPARATOR,
  EFREET_MENU_ENTRY_HEADER
}
 The type of entry.
 

Functions

int efreet_menu_kde_legacy_init (void)
 Initialize legacy kde support. This function blocks while the kde-config script is run. More...
 
Efreet_Menuefreet_menu_new (const char *name)
 Creates a new menu. More...
 
void efreet_menu_file_set (const char *file)
 Override which file is used for menu creation. More...
 
void efreet_menu_async_get (Efreet_Menu_Cb func, const void *data)
 Creates the Efreet_Menu representation of the default menu or NULL if none found and returns it in the callback. More...
 
Efreet_Menuefreet_menu_get (void)
 Creates the default menu representation. More...
 
void efreet_menu_async_parse (const char *path, Efreet_Menu_Cb func, const void *data)
 Parses the given .menu file and creates the menu representation, and returns it in the callback. More...
 
Efreet_Menuefreet_menu_parse (const char *path)
 Parses the given .menu file and creates the menu representation. More...
 
int efreet_menu_save (Efreet_Menu *menu, const char *path)
 Saves the menu to file. More...
 
void efreet_menu_free (Efreet_Menu *menu)
 Frees the given structure. More...
 
int efreet_menu_desktop_insert (Efreet_Menu *menu, Efreet_Desktop *desktop, int pos)
 Insert a desktop element in a menu structure. Only accepts desktop files in default directories. More...
 
int efreet_menu_desktop_remove (Efreet_Menu *menu, Efreet_Desktop *desktop)
 Remove a desktop element in a menu structure. Only accepts desktop files in default directories. More...
 
void efreet_menu_dump (Efreet_Menu *menu, const char *indent)
 Dumps the contents of the menu to the command line. More...
 

Detailed Description

functions and structures

Typedef Documentation

typedef void(* Efreet_Menu_Cb) (void *data, Efreet_Menu *menu)

A callback used with efreet_menu_async_get() and efreet_menu_async_parse()

Since
1.8

Function Documentation

int efreet_menu_kde_legacy_init ( void  )

Initialize legacy kde support. This function blocks while the kde-config script is run.

Returns
Returns no value

References EAPI, eina_list_append(), eina_log_domain_unregister(), eina_stringshare_add(), and eina_stringshare_del().

Efreet_Menu* efreet_menu_new ( const char *  name)

Creates a new menu.

Parameters
nameThe internal name of the menu
Returns
Returns the Efreet_Menu on success or NULL on failure

References EAPI, eina_stringshare_add(), and name.

void efreet_menu_file_set ( const char *  file)

Override which file is used for menu creation.

Parameters
fileThe file to use for menu creation

This file is only used if it exists, else the standard files will be used for the menu.

References EAPI, and eina_stringshare_add().

void efreet_menu_async_get ( Efreet_Menu_Cb  func,
const void *  data 
)

Creates the Efreet_Menu representation of the default menu or NULL if none found and returns it in the callback.

Parameters
funcfunction to call when menu is created
datauser data to return in callback
Since
1.8

References EAPI, ecore_file_exists(), efreet_config_dirs_get(), efreet_config_home_get(), efreet_menu_async_parse(), and EINA_LIST_FOREACH.

Efreet_Menu* efreet_menu_get ( void  )

Creates the default menu representation.

Returns
Returns the Efreet_Menu representation of the default menu or NULL if none found

References EAPI, ecore_file_exists(), efreet_config_dirs_get(), efreet_config_home_get(), efreet_menu_parse(), and EINA_LIST_FOREACH.

void efreet_menu_async_parse ( const char *  path,
Efreet_Menu_Cb  func,
const void *  data 
)

Parses the given .menu file and creates the menu representation, and returns it in the callback.

Parameters
pathThe path of the menu to load
funcfunction to call when menu is created
datauser data to return in callback
Since
1.8

References EAPI, ecore_thread_run(), and eina_stringshare_add().

Referenced by efreet_menu_async_get().

Efreet_Menu* efreet_menu_parse ( const char *  path)

Parses the given .menu file and creates the menu representation.

Parameters
pathThe path of the menu to load
Returns
Returns the Efreet_Menu representation on success or NULL on failure

References EAPI, eina_hash_string_superfast_new(), and Efreet_Xml::tag.

Referenced by efreet_menu_free(), and efreet_menu_get().

int efreet_menu_save ( Efreet_Menu menu,
const char *  path 
)

Saves the menu to file.

Parameters
menuThe menu to work with
pathThe path where the menu should be saved
Returns
Returns 1 on success, 0 on failure

References EAPI.

int efreet_menu_desktop_insert ( Efreet_Menu menu,
Efreet_Desktop desktop,
int  pos 
)

Insert a desktop element in a menu structure. Only accepts desktop files in default directories.

Parameters
menuThe menu to work with
desktopThe desktop to insert
posThe position to place the new desktop
Returns
Returns 1 on success, 0 on failure

References desktop, EAPI, efreet_desktop_ref(), efreet_util_path_to_file_id(), eina_list_append(), eina_list_append_relative(), eina_list_count(), eina_list_nth(), eina_stringshare_add(), entries, icon, _Efreet_Desktop::icon, id, name, _Efreet_Desktop::name, and _Efreet_Desktop::orig_path.

int efreet_menu_desktop_remove ( Efreet_Menu menu,
Efreet_Desktop desktop 
)

Remove a desktop element in a menu structure. Only accepts desktop files in default directories.

Parameters
menuThe menu to work with
desktopThe desktop to remove
Returns
Returns 1 on success, 0 on failure

References EAPI, efreet_menu_free(), EINA_COMPARE_CB, eina_list_remove(), eina_list_search_unsorted(), and entries.