6
typedef struct _GnomeDesktopFile GnomeDesktopFile;
7
typedef enum _GnomeDesktopFileEncoding GnomeDesktopFileEncoding;
9
typedef void (* GnomeDesktopFileSectionFunc) (GnomeDesktopFile *df,
12
typedef void (* GnomeDesktopFileLineFunc) (GnomeDesktopFile *df,
13
const char *key, /* If NULL, value is comment line */
15
const char *value, /* This is raw unescaped data */
18
enum _GnomeDesktopFileEncoding {
19
GNOME_DESKTOP_FILE_ENCODING_UTF8,
20
GNOME_DESKTOP_FILE_ENCODING_LEGACY,
21
GNOME_DESKTOP_FILE_ENCODING_UNKNOWN
26
GNOME_DESKTOP_PARSE_ERROR_INVALID_SYNTAX,
27
GNOME_DESKTOP_PARSE_ERROR_INVALID_ESCAPES,
28
GNOME_DESKTOP_PARSE_ERROR_INVALID_CHARS
29
} GnomeDesktopParseError;
31
#define GNOME_DESKTOP_PARSE_ERROR gnome_desktop_parse_error_quark()
32
GQuark gnome_desktop_parse_error_quark (void);
34
GnomeDesktopFile *gnome_desktop_file_new (GnomeDesktopFileEncoding encoding);
35
GnomeDesktopFile *gnome_desktop_file_new_from_string (char *data,
37
GnomeDesktopFile *gnome_desktop_file_load (const char *filename,
39
gboolean gnome_desktop_file_save (GnomeDesktopFile *df,
43
char * gnome_desktop_file_to_string (GnomeDesktopFile *df);
44
void gnome_desktop_file_free (GnomeDesktopFile *df);
45
void gnome_desktop_file_launch (GnomeDesktopFile *df,
51
GnomeDesktopFileEncoding gnome_desktop_file_get_encoding (GnomeDesktopFile *df);
52
void gnome_desktop_file_foreach_section (GnomeDesktopFile *df,
53
GnomeDesktopFileSectionFunc func,
55
void gnome_desktop_file_foreach_key (GnomeDesktopFile *df,
57
gboolean include_localized,
58
GnomeDesktopFileLineFunc func,
60
gboolean gnome_desktop_file_add_section (GnomeDesktopFile *df,
62
gboolean gnome_desktop_file_remove_section (GnomeDesktopFile *df,
64
void gnome_desktop_file_rename_section (GnomeDesktopFile *df,
66
const char *new_name);
67
gboolean gnome_desktop_file_has_section (GnomeDesktopFile *df,
70
/* Gets the raw text of the key, unescaped */
71
gboolean gnome_desktop_file_get_raw (GnomeDesktopFile *df,
76
gboolean gnome_desktop_file_get_boolean (GnomeDesktopFile *df,
80
gboolean gnome_desktop_file_get_number (GnomeDesktopFile *df,
84
gboolean gnome_desktop_file_get_string (GnomeDesktopFile *df,
88
gboolean gnome_desktop_file_get_locale_string (GnomeDesktopFile *df,
92
gboolean gnome_desktop_file_get_regexp (GnomeDesktopFile *df,
97
gboolean gnome_desktop_file_get_booleans (GnomeDesktopFile *df,
102
gboolean gnome_desktop_file_get_numbers (GnomeDesktopFile *df,
107
gboolean gnome_desktop_file_get_strings (GnomeDesktopFile *df,
113
gboolean gnome_desktop_file_get_regexps (GnomeDesktopFile *df,
119
void gnome_desktop_file_set_raw (GnomeDesktopFile *df,
124
gboolean gnome_desktop_file_set_string (GnomeDesktopFile *df,
128
void gnome_desktop_file_set_strings (GnomeDesktopFile *df,
134
void gnome_desktop_file_merge_string_into_list (GnomeDesktopFile *df,
139
void gnome_desktop_file_remove_string_from_list (GnomeDesktopFile *df,
146
const char* desktop_file_get_encoding_for_locale (const char *locale);
148
void gnome_desktop_file_unset (GnomeDesktopFile *df,
150
const char *keyname);
151
void gnome_desktop_file_unset_for_locale (GnomeDesktopFile *df,
156
void gnome_desktop_file_copy_key (GnomeDesktopFile *df,
158
const char *source_key,
159
const char *dest_key);
161
/* ... More setters ... */