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