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