/build/buildd/efreet-0.5.0.49898/src/lib/efreet_desktop.h
Go to the documentation of this file.
00001 /* vim: set sw=4 ts=4 sts=4 et: */ 00002 #ifndef EFREET_DESKTOP_H 00003 #define EFREET_DESKTOP_H 00004 00015 EAPI extern int EFREET_DESKTOP_TYPE_APPLICATION; 00016 EAPI extern int EFREET_DESKTOP_TYPE_LINK; 00017 EAPI extern int EFREET_DESKTOP_TYPE_DIRECTORY; 00018 00024 EAPI extern int EFREET_EVENT_DESKTOP_CACHE_UPDATE; 00025 00029 typedef struct _Efreet_Desktop Efreet_Desktop; 00030 00034 typedef struct _Efreet_Event_Cache_Update Efreet_Event_Cache_Update; 00035 00039 typedef void *(*Efreet_Desktop_Command_Cb) (void *data, Efreet_Desktop *desktop, 00040 char *command, int remaining); 00041 00045 typedef int (*Efreet_Desktop_Progress_Cb) (void *data, Efreet_Desktop *desktop, 00046 char *uri, long int total, long int current); 00047 00051 typedef void *(*Efreet_Desktop_Type_Parse_Cb) (Efreet_Desktop *desktop, Efreet_Ini *ini); 00052 00056 typedef void (*Efreet_Desktop_Type_Save_Cb) (Efreet_Desktop *desktop, Efreet_Ini *ini); 00057 00061 typedef void *(*Efreet_Desktop_Type_Free_Cb) (void *data); 00062 00067 struct _Efreet_Desktop 00068 { 00069 int type; 00071 int ref; 00073 char *version; 00075 char *orig_path; 00076 long long load_time; 00078 char *name; 00079 char *generic_name; 00080 char *comment; 00081 char *icon; 00082 char *try_exec; 00083 char *exec; 00084 char *path; 00085 char *startup_wm_class; 00087 char *url; 00089 Eina_List *only_show_in; 00091 Eina_List *not_show_in; 00093 Eina_List *categories; 00094 Eina_List *mime_types; 00096 unsigned char no_display; 00097 unsigned char hidden; 00098 unsigned char terminal; 00099 unsigned char startup_notify; 00100 unsigned char cached:1; 00101 unsigned char eet:1; 00103 Eina_Hash *x; 00104 void *type_data; 00105 }; 00106 00111 struct _Efreet_Event_Cache_Update 00112 { 00113 int dummy; 00114 }; 00115 00116 EAPI Efreet_Desktop *efreet_desktop_get(const char *file); 00117 EAPI int efreet_desktop_ref(Efreet_Desktop *desktop); 00118 EAPI Efreet_Desktop *efreet_desktop_empty_new(const char *file); 00119 EAPI Efreet_Desktop *efreet_desktop_new(const char *file); 00120 EAPI Efreet_Desktop *efreet_desktop_uncached_new(const char *file); 00121 EAPI void efreet_desktop_free(Efreet_Desktop *desktop); 00122 #define efreet_desktop_unref(desktop) efreet_desktop_free((desktop)) 00123 00124 EAPI int efreet_desktop_save(Efreet_Desktop *desktop); 00125 EAPI int efreet_desktop_save_as(Efreet_Desktop *desktop, 00126 const char *file); 00127 00128 EAPI void efreet_desktop_exec(Efreet_Desktop *desktop, 00129 Eina_List *files, void *data); 00130 00131 EAPI void efreet_desktop_environment_set(const char *environment); 00132 EAPI const char *efreet_desktop_environment_get(void); 00133 EAPI void *efreet_desktop_command_progress_get(Efreet_Desktop *desktop, 00134 Eina_List *files, 00135 Efreet_Desktop_Command_Cb cb_command, 00136 Efreet_Desktop_Progress_Cb cb_prog, 00137 void *data); 00138 EAPI void *efreet_desktop_command_get(Efreet_Desktop *desktop, 00139 Eina_List *files, 00140 Efreet_Desktop_Command_Cb func, 00141 void *data); 00142 EAPI Eina_List * efreet_desktop_command_local_get(Efreet_Desktop *desktop, 00143 Eina_List *files); 00144 00145 EAPI unsigned int efreet_desktop_category_count_get(Efreet_Desktop *desktop); 00146 EAPI void efreet_desktop_category_add(Efreet_Desktop *desktop, 00147 const char *category); 00148 EAPI int efreet_desktop_category_del(Efreet_Desktop *desktop, 00149 const char *category); 00150 00151 EAPI int efreet_desktop_type_add(const char *type, 00152 Efreet_Desktop_Type_Parse_Cb parse_func, 00153 Efreet_Desktop_Type_Save_Cb save_func, 00154 Efreet_Desktop_Type_Free_Cb free_func); 00155 EAPI int efreet_desktop_type_alias (int from_type, 00156 const char *alias); 00157 EAPI void *efreet_desktop_type_data_get(Efreet_Desktop *desktop); 00158 00159 EAPI Eina_List *efreet_desktop_string_list_parse(const char *string); 00160 EAPI char *efreet_desktop_string_list_join(Eina_List *list); 00161 00162 EAPI Eina_Bool efreet_desktop_x_field_set(Efreet_Desktop *desktop, const char *key, const char *data); 00163 EAPI const char * efreet_desktop_x_field_get(Efreet_Desktop *desktop, const char *key); 00164 EAPI Eina_Bool efreet_desktop_x_field_del(Efreet_Desktop *desktop, const char *key); 00165 00170 #endif