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 00087 void 00088 mb_dotdesktop_free(MBDotDesktop *dd); 00089 00099 char* 00100 mb_dot_desktop_icon_get_full_path (char* theme_name, 00101 int size_wanted, 00102 char* icon_name); 00103 00104 00116 MBDotDesktopFolders *mb_dot_desktop_folders_new(const char *vfolder_path); 00117 00123 void mb_dot_desktop_folders_free(MBDotDesktopFolders* folders); 00124 00129 #define mb_dot_desktop_folders_get_cnt(f) (f)->n_entries 00130 00135 #define mb_dot_desktop_folders_get_entry(f, n) (f)->entries[(n)] 00136 00142 #define mb_dot_desktop_folders_enumerate(ddfolders, ddentry) \ 00143 for ( (ddentry) = (ddfolders)->entries; \ 00144 (ddentry) != NULL; \ 00145 (ddentry) = (ddentry)->next_entry ) \ 00146 00147 00151 #define mb_dot_desktop_folder_entry_get_name(f) (f)->name 00152 00157 #define mb_dot_desktop_folder_entry_get_icon(f) (f)->icon 00158 00163 #define mb_dot_desktop_folder_entry_get_match(f) (f)->match 00164 00165 #ifdef __cplusplus 00166 } 00167 #endif 00168 00169 00173 #endif