]> Dogcows Code - chaz/openbox/blob - openbox/config.h
config system fleshed out. many thanks to woodlbock for his code! yay!
[chaz/openbox] / openbox / config.h
1 #ifndef __config_h
2 #define __config_h
3
4 #include <glib.h>
5
6 typedef enum {
7 Config_String,
8 Config_Integer
9 } ConfigValueType;
10
11 typedef union {
12 char *string;
13 int integer;
14 } ConfigValue;
15
16 typedef struct {
17 char *name;
18 ConfigValueType type;
19 ConfigValue value;
20 } ConfigEntry;
21
22 typedef struct {
23 char *name;
24 ConfigValueType type;
25 /* if it is a string type optionally provide a list of valid strings */
26 gboolean hasList;
27 GSList *values;
28 } ConfigDefEntry;
29
30 void config_startup();
31 void config_shutdown();
32
33 /* Set a config variable's value. The variable must have already been defined
34 with a call to config_def_set */
35 gboolean config_set(char *name, ConfigValueType type, ConfigValue value);
36
37 /* Get a config variable's value. Returns FALSE if the value has not been
38 set. */
39 gboolean config_get(char *name, ConfigValueType type, ConfigValue *value);
40
41 /* Create a new config definition to add to the config system */
42 ConfigDefEntry *config_def_new(char *name, ConfigValueType type);
43
44 /* Add a value to a String type config definition */
45 gboolean config_def_add_value(ConfigDefEntry *entry, char *value);
46
47 /* Sets up the definition in the config system, Don't free or touch the entry
48 after setting it with this. It is invalidated even if the function returns
49 FALSE. */
50 gboolean config_def_set(ConfigDefEntry *entry);
51
52 void config_parse();
53
54 #endif
This page took 0.040001 seconds and 5 git commands to generate.