]> Dogcows Code - chaz/openbox/blobdiff - openbox/config.h
make tint signed
[chaz/openbox] / openbox / config.h
index 9797f9e40b72bb9704a2c7bcad517d358b2304ab..3d82090ba391f39e3198ee6afd463960e0ae4867 100644 (file)
@@ -5,12 +5,14 @@
 
 typedef enum {
     Config_String,
-    Config_Integer
+    Config_Integer,
+    Config_Bool
 } ConfigValueType;
 
 typedef union {
     char *string;
     int integer;
+    gboolean bool;
 } ConfigValue;
 
 typedef struct {
@@ -19,11 +21,37 @@ typedef struct {
     ConfigValue value;
 } ConfigEntry;
 
+typedef struct {
+    char *name;
+    char *descriptive_name; /* user friendly name */
+    char *long_description; /* text description of option */
+    ConfigValueType type;
+    /* if it is a string type optionally provide a list of valid strings */
+    gboolean hasList;
+    GSList *values;
+} ConfigDefEntry;
+
 void config_startup();
 void config_shutdown();
 
+/* Set a config variable's value. The variable must have already been defined
+   with a call to config_def_set */
 gboolean config_set(char *name, ConfigValueType type, ConfigValue value);
 
-void config_parse();
+/* Get a config variable's value. Returns FALSE if the value has not been
+   set. */
+gboolean config_get(char *name, ConfigValueType type, ConfigValue *value);
+
+/* Create a new config definition to add to the config system */
+ConfigDefEntry *config_def_new(char *name, ConfigValueType type,
+                               char *descriptive_name, char *long_description);
+
+/* Add a value to a String type config definition */
+gboolean config_def_add_value(ConfigDefEntry *entry, char *value);
+
+/* Sets up the definition in the config system, Don't free or touch the entry
+   after setting it with this. It is invalidated even if the function returns
+   FALSE. */
+gboolean config_def_set(ConfigDefEntry *entry);
 
 #endif
This page took 0.02216 seconds and 4 git commands to generate.