00001 #ifndef _MBDOTDESKTOP_H_ 00002 #define _MBDOTDESKTOP_H_ 00003 00004 #include <stdio.h> 00005 #include <stdlib.h> 00006 #include <string.h> 00007 #include <unistd.h> 00008 #include <locale.h> 00009 #include <ctype.h> 00010 #include <sys/types.h> 00011 #include <sys/stat.h> 00012 #include <dirent.h> 00013 00014 #include "libmb/mbconfig.h" 00015 #include "libmb/mbutil.h" 00016 00017 #ifdef __cplusplus 00018 extern "C" { 00019 #endif 00020 00033 typedef struct MBDotDesktop MBDotDesktop; 00034 00035 typedef struct _mbdotdesktopfolderentry 00036 { 00037 unsigned char *name; 00038 unsigned char *icon; 00039 unsigned char *match; 00040 00041 struct _mbdotdesktopfolderentry *parent_entry; 00042 struct _mbdotdesktopfolderentry *next_entry; 00043 00044 } MBDotDesktopFolderEntry; 00045 00046 00047 typedef struct _mbdotdesktopfolders 00048 { 00049 struct _mbdotdesktopfolderentry *entries; 00050 int n_entries; 00051 00052 } MBDotDesktopFolders; 00053 00060 MBDotDesktop * 00061 mb_dotdesktop_new_from_file(const char *filename); 00062 00070 unsigned char * 00071 mb_dotdesktop_get(MBDotDesktop *dd, char *key); 00072 00079 char * 00080 mb_dotdesktop_get_filename(MBDotDesktop *dd); 00081 00089 char * 00090 mb_dotdesktop_get_exec (MBDotDesktop *dd); 00091 00097 void 00098 mb_dotdesktop_free(MBDotDesktop *dd); 00099 00109 char* 00110 mb_dot_desktop_icon_get_full_path (char* theme_name, 00111 int size_wanted, 00112 char* icon_name); 00113 00114 00126 MBDotDesktopFolders *mb_dot_desktop_folders_new(const char *vfolder_path); 00127 00133 void mb_dot_desktop_folders_free(MBDotDesktopFolders* folders); 00134 00139 #define mb_dot_desktop_folders_get_cnt(f) (f)->n_entries 00140 00146 #define mb_dot_desktop_folders_enumerate(ddfolders, ddentry) \ 00147 for ( (ddentry) = (ddfolders)->entries; \ 00148 (ddentry) != NULL; \ 00149 (ddentry) = (ddentry)->next_entry ) \ 00150 00151 00155 #define mb_dot_desktop_folder_entry_get_name(f) (f)->name 00156 00161 #define mb_dot_desktop_folder_entry_get_icon(f) (f)->icon 00162 00167 #define mb_dot_desktop_folder_entry_get_match(f) (f)->match 00168 00169 #ifdef __cplusplus 00170 } 00171 #endif 00172 00173 00177 #endif