X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fconfig.c;h=a6056ee14d9bad0c205a1783f93975cf53ecb2bd;hb=47cc179781aec47bf317c5c15879fa0dad95de86;hp=ca7cc2b5aad7af3f245e19db853b683411e6c2a7;hpb=3cc402bd567974c99edf8e3334d3c48103d06fc7;p=chaz%2Fopenbox diff --git a/openbox/config.c b/openbox/config.c index ca7cc2b5..a6056ee1 100644 --- a/openbox/config.c +++ b/openbox/config.c @@ -8,10 +8,6 @@ static void config_free_entry(ConfigEntry *entry); static void config_set_entry(char *name, ConfigValueType type, ConfigValue value); static void config_def_free(ConfigDefEntry *entry); -static void print_config(GQuark q, gpointer data, gpointer fonk){ - ConfigDefEntry *e = (ConfigDefEntry *)data; - g_message("config: %s %d", e->name, e->hasList); -} static GData *config = NULL; static GData *config_def = NULL; @@ -22,33 +18,67 @@ void cparse_go(char *filename, FILE *); void config_startup() { + ConfigValue val; + /* set up options exported by the kernel */ config_def_set(config_def_new("engine", Config_String, "Engine", "The name of the theming engine to be used " "to decorate windows.")); + config_def_set(config_def_new("theme", Config_String, "Theme", "The name of the theme to load with the " "chosen engine.")); + config_def_set(config_def_new("font", Config_String, "Titlebar Font", "The fontstring specifying the font to " "be used in window titlebars.")); - config_def_set(config_def_new("font.shadow", Config_Integer, + val.string = "Sans-7"; + config_set("font", Config_String, val); + + config_def_set(config_def_new("font.shadow", Config_Bool, "Titlebar Font Shadow", "Whether or not the text in the window " "titlebars gets a drop shadow.")); + val.bool = FALSE; + config_set("font.shadow", Config_Bool, val); + config_def_set(config_def_new("font.shadow.offset", Config_Integer, "Titlebar Font Shadow Offset", "The offset of the drop shadow for text " "in the window titlebars.")); + val.integer = 1; + config_set("font.shadow.offset", Config_Integer, val); + + config_def_set(config_def_new("font.shadow.tint", Config_Integer, + "Titlebar Font Shadow Tint", + "The percentage of tint/opacity to give the " + "the shadow(from -100(white) to " + "100(black)).")); + val.integer = 25; + config_set("font.shadow.tint", Config_Integer, val); + config_def_set(config_def_new("titlebar.layout", Config_String, "Titlebar Layout", "The ordering of the elements in the " "window titlebars.")); - - /*g_datalist_foreach(&config_def, print_config, NULL);*/ + val.string = "NDSLIMC"; + config_set("titlebar.layout", Config_String, val); + + config_def_set(config_def_new("focusNew", Config_Bool, + "Focus New Windows", + "Focus windows when they first appear.")); + val.bool = TRUE; + config_set("focusNew", Config_Bool, val); + + config_def_set(config_def_new("focusFollowsMouse", Config_Bool, + "Focus Follows Mouse", + "Focus windows when the mouse pointer " + "enters them.")); + val.bool = TRUE; + config_set("focusFollowsMouse", Config_Bool, val); } void config_shutdown() @@ -57,45 +87,17 @@ void config_shutdown() g_datalist_clear(&config_def); } -void config_parse() -{ - FILE *file; - char *path; - gboolean load = FALSE; - - /* load the user rc */ - path = g_build_filename(g_get_home_dir(), ".openbox", "rc3", NULL); - if ((file = fopen(path, "r")) != NULL) { - cparse_go(path, file); - fclose(file); - load = TRUE; - } - g_free(path); - - if (!load) { - /* load the system wide rc */ - path = g_build_filename(RCDIR, "rc3", NULL); - if ((file = fopen(path, "r")) != NULL) { - /*cparse_go(path, file);*/ - fclose(file); - } - g_free(path); - } -} - gboolean config_set(char *name, ConfigValueType type, ConfigValue value) { ConfigDefEntry *def; gboolean ret = FALSE; name = g_ascii_strdown(name, -1); - g_message("Setting %s", name); - /*g_datalist_foreach(&config_def, print_config, NULL);*/ def = g_datalist_get_data(&config_def, name); if (def == NULL) { - g_message("Invalid config option '%s'", name); + g_warning("Invalid config option '%s'", name); } else { if (def->hasList) { gboolean found = FALSE; @@ -111,10 +113,12 @@ gboolean config_set(char *name, ConfigValueType type, ConfigValue value) } while ((it = it->next)); if (!found) - g_message("Invalid value '%s' for config option '%s'", + g_warning("Invalid value '%s' for config option '%s'", value.string, name); else ret = TRUE; + } else if (type != def->type) { + g_warning("Incorrect type of value for config option '%s'", name); } else ret = TRUE;