Specification functions and structures. More...
| Data Structures | |
| struct | _Efreet_Desktop_Action | 
| Efreet_Desktop_Action.  More... | |
| struct | _Efreet_Desktop | 
| Efreet_Desktop.  More... | |
| Macros | |
| #define | efreet_desktop_unref(desktop) efreet_desktop_free((desktop)) | 
| Alias for efreet_desktop_free(desktop) | |
| Typedefs | |
| typedef struct _Efreet_Desktop_Action | Efreet_Desktop_Action | 
| Efreet_Desktop_Action.  More... | |
| typedef struct _Efreet_Desktop | Efreet_Desktop | 
| Efreet_Desktop. | |
| typedef void *(* | Efreet_Desktop_Command_Cb) (void *data, Efreet_Desktop *desktop, char *command, int remaining) | 
| A callback used with efreet_desktop_command_get() | |
| typedef int(* | Efreet_Desktop_Progress_Cb) (void *data, Efreet_Desktop *desktop, char *uri, long int total, long int current) | 
| A callback used to get download progress of remote uris. | |
| typedef void *(* | Efreet_Desktop_Type_Parse_Cb) (Efreet_Desktop *desktop, Efreet_Ini *ini) | 
| A callback used to parse data for custom types. | |
| typedef void(* | Efreet_Desktop_Type_Save_Cb) (Efreet_Desktop *desktop, Efreet_Ini *ini) | 
| A callback used to save data for custom types. | |
| typedef void *(* | Efreet_Desktop_Type_Free_Cb) (void *data) | 
| A callback used to free data for custom types. | |
| Functions | |
| Efreet_Desktop * | efreet_desktop_get (const char *file) | 
| Gets a reference to an Efreet_Desktop structure representing the contents of file or NULL if file is not a valid .desktop file.  More... | |
| int | efreet_desktop_ref (Efreet_Desktop *desktop) | 
| Increases reference count on desktop.  More... | |
| Efreet_Desktop * | efreet_desktop_empty_new (const char *file) | 
| Creates a new empty Efreet_Desktop structure or NULL on failure.  More... | |
| Efreet_Desktop * | efreet_desktop_new (const char *file) | 
| Gets a reference to an Efreet_Desktop structure representing the contents of file or NULL if file is not a valid .desktop file.  More... | |
| Efreet_Desktop * | efreet_desktop_uncached_new (const char *file) | 
| Creates a new Efreet_Desktop structure initialized from the contents of file or NULL on failure.  More... | |
| void | efreet_desktop_free (Efreet_Desktop *desktop) | 
| Frees the Efreet_Desktop structure and all of it's data.  More... | |
| int | efreet_desktop_save (Efreet_Desktop *desktop) | 
| Saves any changes made to desktop back to the file on the filesystem.  More... | |
| int | efreet_desktop_save_as (Efreet_Desktop *desktop, const char *file) | 
| Saves desktop to file.  More... | |
| void | efreet_desktop_exec (Efreet_Desktop *desktop, Eina_List *files, void *data) | 
| Parses the desktop exec line and runs the command.  More... | |
| void | efreet_desktop_environment_set (const char *environment) | 
| sets the global desktop environment name  More... | |
| const char * | efreet_desktop_environment_get (void) | 
| gets the global desktop environment name (e.g. "Enlightenment" or "Gnome")  More... | |
| void * | efreet_desktop_command_progress_get (Efreet_Desktop *desktop, Eina_List *files, Efreet_Desktop_Command_Cb cb_command, Efreet_Desktop_Progress_Cb cb_prog, void *data) | 
| Get a command to use to execute a desktop entry, and receive progress updates for downloading of remote URI's passed in.  More... | |
| void * | efreet_desktop_command_get (Efreet_Desktop *desktop, Eina_List *files, Efreet_Desktop_Command_Cb func, void *data) | 
| Get a command to use to execute a desktop entry.  More... | |
| Eina_List * | efreet_desktop_command_local_get (Efreet_Desktop *desktop, Eina_List *files) | 
| Get the command to use to execute a desktop entry.  More... | |
| unsigned int | efreet_desktop_category_count_get (Efreet_Desktop *desktop) | 
| Retrieves the number of categories the given desktop belongs too.  More... | |
| void | efreet_desktop_category_add (Efreet_Desktop *desktop, const char *category) | 
| add a category to a desktop  More... | |
| int | efreet_desktop_category_del (Efreet_Desktop *desktop, const char *category) | 
| removes a category from a desktop  More... | |
| int | efreet_desktop_type_add (const char *type, Efreet_Desktop_Type_Parse_Cb parse_func, Efreet_Desktop_Type_Save_Cb save_func, Efreet_Desktop_Type_Free_Cb free_func) | 
| Adds the given type to the list of types in the system.  More... | |
| int | efreet_desktop_type_alias (int from_type, const char *alias) | 
| Add an alias for an existing desktop type.  More... | |
| void * | efreet_desktop_type_data_get (Efreet_Desktop *desktop) | 
| get type specific data for custom desktop types  More... | |
| Eina_List * | efreet_desktop_string_list_parse (const char *string) | 
| Parse ';' separate list of strings according to the desktop spec.  More... | |
| char * | efreet_desktop_string_list_join (Eina_List *list) | 
| Create a ';' separate list of strings according to the desktop spec.  More... | |
| Eina_Bool | efreet_desktop_x_field_set (Efreet_Desktop *desktop, const char *key, const char *data) | 
| Set the value for a X- field (Non spec) in the structure.  More... | |
| const char * | efreet_desktop_x_field_get (Efreet_Desktop *desktop, const char *key) | 
| Get the value for a X- field (Non spec) in the structure.  More... | |
| Eina_Bool | efreet_desktop_x_field_del (Efreet_Desktop *desktop, const char *key) | 
| Delete the key and value for a X- field (Non spec) in the structure.  More... | |
| Variables | |
| int | EFREET_DESKTOP_TYPE_APPLICATION | 
| int | EFREET_DESKTOP_TYPE_LINK | 
| int | EFREET_DESKTOP_TYPE_DIRECTORY | 
| int | EFREET_EVENT_DESKTOP_CACHE_UPDATE | 
| Event id for cache update.  More... | |
| int | EFREET_EVENT_DESKTOP_CACHE_BUILD | 
| Event id for cache build complete.  More... | |
Specification functions and structures.
| typedef struct _Efreet_Desktop_Action Efreet_Desktop_Action | 
Efreet_Desktop_Action.
| Efreet_Desktop* efreet_desktop_get | ( | const char * | file | ) | 
Gets a reference to an Efreet_Desktop structure representing the contents of file or NULL if file is not a valid .desktop file.
| file | The file to get the Efreet_Desktop from | 
Users of this command should listen to EFREET_EVENT_DESKTOP_CACHE_UPDATE event, if the application is to keep the reference. When the event fires the Efreet_Desktop struct should be invalidated and reloaded from a new cache file.
| int efreet_desktop_ref | ( | Efreet_Desktop * | desktop | ) | 
Increases reference count on desktop.
| desktop | The Efreet_Desktop to ref | 
| Efreet_Desktop* efreet_desktop_empty_new | ( | const char * | file | ) | 
Creates a new empty Efreet_Desktop structure or NULL on failure.
| file | The file to create the Efreet_Desktop from | 
| Efreet_Desktop* efreet_desktop_new | ( | const char * | file | ) | 
Gets a reference to an Efreet_Desktop structure representing the contents of file or NULL if file is not a valid .desktop file.
| file | The file to get the Efreet_Desktop from | 
| Efreet_Desktop* efreet_desktop_uncached_new | ( | const char * | file | ) | 
Creates a new Efreet_Desktop structure initialized from the contents of file or NULL on failure.
| file | The file to create the Efreet_Desktop from | 
Data in the structure is allocated with strdup, so use free and strdup to change values.
| void efreet_desktop_free | ( | Efreet_Desktop * | desktop | ) | 
Frees the Efreet_Desktop structure and all of it's data.
| desktop | The Efreet_Desktop to work with | 
References _Efreet_Desktop::actions, _Efreet_Desktop::categories, _Efreet_Desktop::comment, _Efreet_Desktop::eet, EINA_LIST_FREE, eina_list_nth(), eina_lock_release(), eina_lock_take(), eina_stringshare_del(), _Efreet_Desktop_Action::exec, _Efreet_Desktop::exec, _Efreet_Desktop::generic_name, _Efreet_Desktop_Action::icon, _Efreet_Desktop::icon, _Efreet_Desktop::implements, _Efreet_Desktop_Action::key, _Efreet_Desktop::keywords, _Efreet_Desktop::mime_types, _Efreet_Desktop_Action::name, _Efreet_Desktop::name, _Efreet_Desktop::not_show_in, _Efreet_Desktop::only_show_in, _Efreet_Desktop::orig_path, _Efreet_Desktop::path, _Efreet_Desktop::ref, _Efreet_Desktop::startup_wm_class, _Efreet_Desktop::try_exec, _Efreet_Desktop::type, _Efreet_Desktop::type_data, _Efreet_Desktop::url, _Efreet_Desktop::version, and _Efreet_Desktop::x.
Referenced by efreet_menu_free().
| int efreet_desktop_save | ( | Efreet_Desktop * | desktop | ) | 
Saves any changes made to desktop back to the file on the filesystem.
| desktop | The desktop file to save | 
| int efreet_desktop_save_as | ( | Efreet_Desktop * | desktop, | 
| const char * | file | ||
| ) | 
Saves desktop to file.
| desktop | The desktop file to save | 
| file | The filename to save as | 
| void efreet_desktop_exec | ( | Efreet_Desktop * | desktop, | 
| Eina_List * | files, | ||
| void * | data | ||
| ) | 
Parses the desktop exec line and runs the command.
| desktop | The desktop file to work with | 
| files | The files to be substituted into the exec line | 
| data | The data pointer to pass | 
References efreet_desktop_command_get().
| void efreet_desktop_environment_set | ( | const char * | environment | ) | 
sets the global desktop environment name
| environment | the environment name | 
| const char* efreet_desktop_environment_get | ( | void | ) | 
gets the global desktop environment name (e.g. "Enlightenment" or "Gnome")
| void* efreet_desktop_command_progress_get | ( | Efreet_Desktop * | desktop, | 
| Eina_List * | files, | ||
| Efreet_Desktop_Command_Cb | cb_command, | ||
| Efreet_Desktop_Progress_Cb | cb_prog, | ||
| void * | data | ||
| ) | 
Get a command to use to execute a desktop entry, and receive progress updates for downloading of remote URI's passed in.
| desktop | the desktop entry | 
| files | an eina list of file names to execute, as either absolute paths, relative paths, or uris | 
| cb_command | a callback to call for each prepared command line | 
| cb_prog | a callback to get progress for the downloads | 
| data | user data passed to the callback | 
Referenced by efreet_desktop_command_get().
| void* efreet_desktop_command_get | ( | Efreet_Desktop * | desktop, | 
| Eina_List * | files, | ||
| Efreet_Desktop_Command_Cb | func, | ||
| void * | data | ||
| ) | 
Get a command to use to execute a desktop entry.
| desktop | the desktop entry | 
| files | an eina list of file names to execute, as either absolute paths, relative paths, or uris | 
| func | a callback to call for each prepared command line | 
| data | user data passed to the callback | 
func on success or NULL on failure References efreet_desktop_command_progress_get().
Referenced by efreet_desktop_exec().
| Eina_List* efreet_desktop_command_local_get | ( | Efreet_Desktop * | desktop, | 
| Eina_List * | files | ||
| ) | 
Get the command to use to execute a desktop entry.
| desktop | the desktop entry | 
| files | an eina list of local files, as absolute paths, local paths, or file// uris (or NULL to get exec string with no files appended) | 
| unsigned int efreet_desktop_category_count_get | ( | Efreet_Desktop * | desktop | ) | 
Retrieves the number of categories the given desktop belongs too.
| desktop | The desktop to work with | 
| void efreet_desktop_category_add | ( | Efreet_Desktop * | desktop, | 
| const char * | category | ||
| ) | 
add a category to a desktop
| desktop | the desktop | 
| category | the category name | 
| int efreet_desktop_category_del | ( | Efreet_Desktop * | desktop, | 
| const char * | category | ||
| ) | 
removes a category from a desktop
| desktop | the desktop | 
| category | the category name | 
| int efreet_desktop_type_add | ( | const char * | type, | 
| Efreet_Desktop_Type_Parse_Cb | parse_func, | ||
| Efreet_Desktop_Type_Save_Cb | save_func, | ||
| Efreet_Desktop_Type_Free_Cb | free_func | ||
| ) | 
Adds the given type to the list of types in the system.
| type | The type to add to the list of matching types | 
| parse_func | a function to parse out custom fields | 
| save_func | a function to save data returned from parse_func | 
| free_func | a function to free data returned from parse_func | 
References eina_list_append(), eina_list_count(), and eina_stringshare_add().
Referenced by efreet_desktop_type_alias().
| int efreet_desktop_type_alias | ( | int | from_type, | 
| const char * | alias | ||
| ) | 
Add an alias for an existing desktop type.
| from_type | the type to alias (e.g. EFREE_DESKTOP_TYPE_APPLICATION) | 
| alias | the alias | 
from_type was not validThis allows applications to add non-standard types that behave exactly as standard types.
References efreet_desktop_type_add(), and eina_list_nth().
| void* efreet_desktop_type_data_get | ( | Efreet_Desktop * | desktop | ) | 
get type specific data for custom desktop types
| desktop | the desktop | 
| Eina_List* efreet_desktop_string_list_parse | ( | const char * | string | ) | 
Parse ';' separate list of strings according to the desktop spec.
| string | the raw string list | 
Referenced by efreet_desktop_string_list_join().
| char* efreet_desktop_string_list_join | ( | Eina_List * | list | ) | 
Create a ';' separate list of strings according to the desktop spec.
| list | Eina_List with strings | 
References _Efreet_Desktop::actions, _Efreet_Desktop::categories, _Efreet_Desktop::comment, Efreet_Ini::data, _Efreet_Desktop::dbus_activatable, ecore_file_mod_time(), efreet_desktop_string_list_join(), efreet_desktop_string_list_parse(), EINA_FREE_CB, eina_hash_add(), eina_hash_del_by_key(), eina_hash_foreach(), eina_hash_string_superfast_new(), eina_list_append(), EINA_LIST_FOREACH, eina_list_free(), EINA_LIST_FREE, eina_stringshare_add(), eina_stringshare_del(), EINA_TRUE, EINA_UNUSED, ERR, _Efreet_Desktop_Action::exec, _Efreet_Desktop::exec, _Efreet_Desktop::generic_name, _Efreet_Desktop::hidden, _Efreet_Desktop_Action::icon, _Efreet_Desktop::icon, _Efreet_Desktop::implements, _Efreet_Desktop_Action::key, _Efreet_Desktop::keywords, _Efreet_Desktop::load_time, _Efreet_Desktop::mime_types, _Efreet_Desktop_Action::name, _Efreet_Desktop::name, _Efreet_Desktop::no_display, _Efreet_Desktop::not_show_in, _Efreet_Desktop::only_show_in, _Efreet_Desktop::orig_path, _Efreet_Desktop::path, Efreet_Ini::section, _Efreet_Desktop::startup_notify, _Efreet_Desktop::startup_wm_class, _Efreet_Desktop::terminal, _Efreet_Desktop::try_exec, _Efreet_Desktop::type, _Efreet_Desktop::type_data, _Efreet_Desktop::url, _Efreet_Desktop::version, and _Efreet_Desktop::x.
Referenced by efreet_desktop_string_list_join().
| Eina_Bool efreet_desktop_x_field_set | ( | Efreet_Desktop * | desktop, | 
| const char * | key, | ||
| const char * | data | ||
| ) | 
Set the value for a X- field (Non spec) in the structure.
| desktop | the desktop | 
| key | the key name to set | 
| data | the value to set | 
The key has to start with "X-"
| const char* efreet_desktop_x_field_get | ( | Efreet_Desktop * | desktop, | 
| const char * | key | ||
| ) | 
Get the value for a X- field (Non spec) in the structure.
| desktop | the desktop | 
| key | the key | 
| Eina_Bool efreet_desktop_x_field_del | ( | Efreet_Desktop * | desktop, | 
| const char * | key | ||
| ) | 
Delete the key and value for a X- field (Non spec) in the structure.
| desktop | the desktop | 
| key | the key | 
| int EFREET_EVENT_DESKTOP_CACHE_UPDATE | 
Event id for cache update.
All users of efreet_desktop_get must listen to this event and refetch. The old eet cache will be closed and mem will be invalidated.
| int EFREET_EVENT_DESKTOP_CACHE_BUILD | 
Event id for cache build complete.