lib/efreet_desktop.h
Go to the documentation of this file.
00001 #ifndef EFREET_DESKTOP_H 00002 #define EFREET_DESKTOP_H 00003 00014 EAPI extern int EFREET_DESKTOP_TYPE_APPLICATION; 00015 EAPI extern int EFREET_DESKTOP_TYPE_LINK; 00016 EAPI extern int EFREET_DESKTOP_TYPE_DIRECTORY; 00017 00023 EAPI extern int EFREET_EVENT_DESKTOP_CACHE_UPDATE; 00024 00028 typedef struct _Efreet_Desktop Efreet_Desktop; 00029 00033 typedef void *(*Efreet_Desktop_Command_Cb) (void *data, Efreet_Desktop *desktop, 00034 char *command, int remaining); 00035 00039 typedef int (*Efreet_Desktop_Progress_Cb) (void *data, Efreet_Desktop *desktop, 00040 char *uri, long int total, long int current); 00041 00045 typedef void *(*Efreet_Desktop_Type_Parse_Cb) (Efreet_Desktop *desktop, Efreet_Ini *ini); 00046 00050 typedef void (*Efreet_Desktop_Type_Save_Cb) (Efreet_Desktop *desktop, Efreet_Ini *ini); 00051 00055 typedef void *(*Efreet_Desktop_Type_Free_Cb) (void *data); 00056 00061 struct _Efreet_Desktop 00062 { 00063 int type; 00065 int ref; 00067 char *version; 00069 char *orig_path; 00070 long long load_time; 00072 char *name; 00073 char *generic_name; 00074 char *comment; 00075 char *icon; 00076 char *try_exec; 00077 char *exec; 00078 char *path; 00079 char *startup_wm_class; 00081 char *url; 00083 Eina_List *only_show_in; 00085 Eina_List *not_show_in; 00087 Eina_List *categories; 00088 Eina_List *mime_types; 00090 unsigned char no_display; 00091 unsigned char hidden; 00092 unsigned char terminal; 00093 unsigned char startup_notify; 00094 unsigned char cached:1; 00095 unsigned char eet:1; 00097 Eina_Hash *x; 00098 void *type_data; 00099 }; 00100 00101 EAPI Efreet_Desktop *efreet_desktop_get(const char *file); 00102 EAPI int efreet_desktop_ref(Efreet_Desktop *desktop); 00103 EAPI Efreet_Desktop *efreet_desktop_empty_new(const char *file); 00104 EAPI Efreet_Desktop *efreet_desktop_new(const char *file); 00105 EAPI Efreet_Desktop *efreet_desktop_uncached_new(const char *file); 00106 EAPI void efreet_desktop_free(Efreet_Desktop *desktop); 00111 #define efreet_desktop_unref(desktop) efreet_desktop_free((desktop)) 00112 00113 EAPI int efreet_desktop_save(Efreet_Desktop *desktop); 00114 EAPI int efreet_desktop_save_as(Efreet_Desktop *desktop, 00115 const char *file); 00116 00117 EAPI void efreet_desktop_exec(Efreet_Desktop *desktop, 00118 Eina_List *files, void *data); 00119 00120 EAPI void efreet_desktop_environment_set(const char *environment); 00121 EAPI const char *efreet_desktop_environment_get(void); 00122 EAPI void *efreet_desktop_command_progress_get(Efreet_Desktop *desktop, 00123 Eina_List *files, 00124 Efreet_Desktop_Command_Cb cb_command, 00125 Efreet_Desktop_Progress_Cb cb_prog, 00126 void *data); 00127 EAPI void *efreet_desktop_command_get(Efreet_Desktop *desktop, 00128 Eina_List *files, 00129 Efreet_Desktop_Command_Cb func, 00130 void *data); 00131 EAPI Eina_List * efreet_desktop_command_local_get(Efreet_Desktop *desktop, 00132 Eina_List *files); 00133 00134 EAPI unsigned int efreet_desktop_category_count_get(Efreet_Desktop *desktop); 00135 EAPI void efreet_desktop_category_add(Efreet_Desktop *desktop, 00136 const char *category); 00137 EAPI int efreet_desktop_category_del(Efreet_Desktop *desktop, 00138 const char *category); 00139 00140 EAPI int efreet_desktop_type_add(const char *type, 00141 Efreet_Desktop_Type_Parse_Cb parse_func, 00142 Efreet_Desktop_Type_Save_Cb save_func, 00143 Efreet_Desktop_Type_Free_Cb free_func); 00144 EAPI int efreet_desktop_type_alias (int from_type, 00145 const char *alias); 00146 EAPI void *efreet_desktop_type_data_get(Efreet_Desktop *desktop); 00147 00148 EAPI Eina_List *efreet_desktop_string_list_parse(const char *string); 00149 EAPI char *efreet_desktop_string_list_join(Eina_List *list); 00150 00151 EAPI Eina_Bool efreet_desktop_x_field_set(Efreet_Desktop *desktop, const char *key, const char *data); 00152 EAPI const char * efreet_desktop_x_field_get(Efreet_Desktop *desktop, const char *key); 00153 EAPI Eina_Bool efreet_desktop_x_field_del(Efreet_Desktop *desktop, const char *key); 00154 00159 #endif