lib/efreet_desktop.h
Go to the documentation of this file.00001
00002 #ifndef EFREET_DESKTOP_H
00003 #define EFREET_DESKTOP_H
00004
00005 #include "efreet_ini.h"
00006
00017 extern int EFREET_DESKTOP_TYPE_APPLICATION;
00018 extern int EFREET_DESKTOP_TYPE_LINK;
00019 extern int EFREET_DESKTOP_TYPE_DIRECTORY;
00020
00024 typedef enum Efreet_Desktop_Type Efreet_Desktop_Type;
00025
00029 typedef struct Efreet_Desktop Efreet_Desktop;
00030
00034 typedef void (*Efreet_Desktop_Command_Cb) (void *data, Efreet_Desktop *desktop,
00035 char *command, int remaining);
00036
00040 typedef int (*Efreet_Desktop_Progress_Cb) (void *data, Efreet_Desktop *desktop,
00041 char *uri, long int total, long int current);
00042
00046 typedef void *(*Efreet_Desktop_Type_Parse_Cb) (Efreet_Desktop *desktop, Efreet_Ini *ini);
00047
00051 typedef void (*Efreet_Desktop_Type_Save_Cb) (Efreet_Desktop *desktop, Efreet_Ini *ini);
00052
00056 typedef void *(*Efreet_Desktop_Type_Free_Cb) (void *data);
00057
00062 struct Efreet_Desktop
00063 {
00064 int type;
00066 double version;
00068 char *orig_path;
00069 double load_time;
00071 char *name;
00072 char *generic_name;
00073 char *comment;
00074 char *icon;
00075 char *try_exec;
00076 char *exec;
00077 char *path;
00078 char *startup_wm_class;
00080 char *url;
00082 Ecore_List *only_show_in;
00084 Ecore_List *not_show_in;
00086 Ecore_List *categories;
00087 Ecore_List *mime_types;
00089 unsigned char no_display:1;
00090 unsigned char hidden:1;
00091 unsigned char terminal:1;
00092 unsigned char startup_notify:1;
00094 Ecore_Hash *x;
00095 void *type_data;
00096 };
00097
00098 Efreet_Desktop *efreet_desktop_get(const char *file);
00099 Efreet_Desktop *efreet_desktop_empty_new(const char *file);
00100 void efreet_desktop_free(Efreet_Desktop *desktop);
00101
00102 int efreet_desktop_save(Efreet_Desktop *desktop);
00103 int efreet_desktop_save_as(Efreet_Desktop *desktop,
00104 const char *file);
00105
00106 void efreet_desktop_exec(Efreet_Desktop *desktop,
00107 Ecore_List *files, void *data);
00108
00109 void efreet_desktop_environment_set(const char *environment);
00110 int efreet_desktop_command_progress_get(Efreet_Desktop *desktop,
00111 Ecore_List *files,
00112 Efreet_Desktop_Command_Cb cb_command,
00113 Efreet_Desktop_Progress_Cb cb_prog,
00114 void *data);
00115 int efreet_desktop_command_get(Efreet_Desktop *desktop,
00116 Ecore_List *files,
00117 Efreet_Desktop_Command_Cb func,
00118 void *data);
00119
00120 unsigned int efreet_desktop_category_count_get(Efreet_Desktop *desktop);
00121 void efreet_desktop_category_add(Efreet_Desktop *desktop,
00122 const char *category);
00123 int efreet_desktop_category_del(Efreet_Desktop *desktop,
00124 const char *category);
00125
00126 int efreet_desktop_type_add(const char *type,
00127 Efreet_Desktop_Type_Parse_Cb parse_func,
00128 Efreet_Desktop_Type_Save_Cb save_func,
00129 Efreet_Desktop_Type_Free_Cb free_func);
00130 void *efreet_desktop_type_data_get(Efreet_Desktop *desktop);
00131
00132 Ecore_List *efreet_desktop_string_list_parse(const char *string);
00133 char *efreet_desktop_string_list_join(Ecore_List *list);
00134
00139 #endif
00140