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 00028 typedef struct MBDotDesktop MBDotDesktop; 00029 00030 typedef struct _mbdotdesktopfolderentry 00031 { 00032 unsigned char *name; 00033 unsigned char *icon; 00034 unsigned char *match; 00035 00036 struct _mbdotdesktopfolderentry *parent_entry; 00037 struct _mbdotdesktopfolderentry *next_entry; 00038 00039 } MBDotDesktopFolderEntry; 00040 00041 00042 typedef struct _mbdotdesktopfolders 00043 { 00044 struct _mbdotdesktopfolderentry *entries; 00045 int n_entries; 00046 00047 } MBDotDesktopFolders; 00048 00055 MBDotDesktop * 00056 mb_dotdesktop_new_from_file(const char *filename); 00057 00065 unsigned char * 00066 mb_dotdesktop_get(MBDotDesktop *dd, char *key); 00067 00074 char * 00075 mb_dotdesktop_get_filename(MBDotDesktop *dd); 00076 00082 void 00083 mb_dotdesktop_free(MBDotDesktop *dd); 00084 00094 char* 00095 mb_dot_desktop_icon_get_full_path (char* theme_name, 00096 int size_wanted, 00097 char* icon_name); 00098 00099 00111 MBDotDesktopFolders *mb_dot_desktop_folders_new(const char *vfolder_path); 00112 00118 void mb_dot_desktop_folders_free(MBDotDesktopFolders* folders); 00119 00124 #define mb_dot_desktop_folders_get_cnt(f) (f)->n_entries 00125 00130 #define mb_dot_desktop_folders_get_entry(f, n) (f)->entries[(n)] 00131 00137 #define mb_dot_desktop_folders_enumerate(ddfolders, ddentry) \ 00138 for ( (ddentry) = (ddfolders)->entries; \ 00139 (ddentry) != NULL; \ 00140 (ddentry) = (ddentry)->next_entry ) \ 00141 00142 00146 #define mb_dot_desktop_folder_entry_get_name(f) (f)->name 00147 00152 #define mb_dot_desktop_folder_entry_get_icon(f) (f)->icon 00153 00158 #define mb_dot_desktop_folder_entry_get_match(f) (f)->match 00159 00162 #endif