aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2014-04-20 22:10:35 -0400
committerJesse Luehrs <doy@tozt.net>2014-04-20 22:10:35 -0400
commitd84a75e3f81f3ac7bf9cd7d79904dc5418365cf4 (patch)
tree78319eb5053421033f5243eb6659b6fb01d5c8ff
parentf7279faf5c974ed150adad6e30f1e73406e07f8b (diff)
downloadrunes-d84a75e3f81f3ac7bf9cd7d79904dc5418365cf4.tar.gz
runes-d84a75e3f81f3ac7bf9cd7d79904dc5418365cf4.zip
allow configuring the default color set too
-rw-r--r--config.c36
-rw-r--r--display.c18
2 files changed, 36 insertions, 18 deletions
diff --git a/config.c b/config.c
index 75dbe8a..6f34425 100644
--- a/config.c
+++ b/config.c
@@ -33,6 +33,24 @@ static void runes_config_set_defaults(RunesTerm *t)
t->fgdefault = cairo_pattern_create_rgb(0.827, 0.827, 0.827);
t->bgdefault = cairo_pattern_create_rgb(0.0, 0.0, 0.0);
+ t->colors[0] = cairo_pattern_create_rgb(0.0, 0.0, 0.0);
+ t->colors[1] = cairo_pattern_create_rgb(0.804, 0.0, 0.0);
+ t->colors[2] = cairo_pattern_create_rgb(0.0, 0.804, 0.0);
+ t->colors[3] = cairo_pattern_create_rgb(0.804, 0.804, 0.0);
+ t->colors[4] = cairo_pattern_create_rgb(0.0, 0.0, 0.804);
+ t->colors[5] = cairo_pattern_create_rgb(0.804, 0.0, 0.804);
+ t->colors[6] = cairo_pattern_create_rgb(0.0, 0.804, 0.804);
+ t->colors[7] = cairo_pattern_create_rgb(0.898, 0.898, 0.898);
+
+ t->brightcolors[0] = cairo_pattern_create_rgb(0.302, 0.302, 0.302);
+ t->brightcolors[1] = cairo_pattern_create_rgb(1.0, 0.0, 0.0);
+ t->brightcolors[2] = cairo_pattern_create_rgb(0.0, 1.0, 0.0);
+ t->brightcolors[3] = cairo_pattern_create_rgb(1.0, 1.0, 0.0);
+ t->brightcolors[4] = cairo_pattern_create_rgb(0.0, 0.0, 1.0);
+ t->brightcolors[5] = cairo_pattern_create_rgb(1.0, 0.0, 1.0);
+ t->brightcolors[6] = cairo_pattern_create_rgb(0.0, 1.0, 1.0);
+ t->brightcolors[7] = cairo_pattern_create_rgb(1.0, 1.0, 1.0);
+
t->default_rows = 24;
t->default_cols = 80;
}
@@ -148,6 +166,24 @@ static void runes_config_set(RunesTerm *t, char *key, char *val)
t->fgdefault = newcolor;
}
}
+ else if (!strncmp(key, "color", 5)
+ && strlen(key) == 6 && key[5] >= '0' && key[5] <= '7') {
+ cairo_pattern_t *newcolor;
+ newcolor = runes_config_parse_color(val);
+ if (newcolor) {
+ cairo_pattern_destroy(t->colors[key[5] - '0']);
+ t->colors[key[5] - '0'] = newcolor;
+ }
+ }
+ else if (!strncmp(key, "brightcolor", 5)
+ && strlen(key) == 6 && key[5] >= '0' && key[5] <= '7') {
+ cairo_pattern_t *newcolor;
+ newcolor = runes_config_parse_color(val);
+ if (newcolor) {
+ cairo_pattern_destroy(t->brightcolors[key[5] - '0']);
+ t->brightcolors[key[5] - '0'] = newcolor;
+ }
+ }
else if (!strcmp(key, "rows")) {
t->default_rows = runes_config_parse_uint(val);
}
diff --git a/display.c b/display.c
index 6f8586e..474d972 100644
--- a/display.c
+++ b/display.c
@@ -17,24 +17,6 @@ void runes_display_init(RunesTerm *t)
{
runes_display_recalculate_font_metrics(t);
- t->colors[0] = cairo_pattern_create_rgb(0.0, 0.0, 0.0);
- t->colors[1] = cairo_pattern_create_rgb(0.804, 0.0, 0.0);
- t->colors[2] = cairo_pattern_create_rgb(0.0, 0.804, 0.0);
- t->colors[3] = cairo_pattern_create_rgb(0.804, 0.804, 0.0);
- t->colors[4] = cairo_pattern_create_rgb(0.0, 0.0, 0.804);
- t->colors[5] = cairo_pattern_create_rgb(0.804, 0.0, 0.804);
- t->colors[6] = cairo_pattern_create_rgb(0.0, 0.804, 0.804);
- t->colors[7] = cairo_pattern_create_rgb(0.898, 0.898, 0.898);
-
- t->brightcolors[0] = cairo_pattern_create_rgb(0.302, 0.302, 0.302);
- t->brightcolors[1] = cairo_pattern_create_rgb(1.0, 0.0, 0.0);
- t->brightcolors[2] = cairo_pattern_create_rgb(0.0, 1.0, 0.0);
- t->brightcolors[3] = cairo_pattern_create_rgb(1.0, 1.0, 0.0);
- t->brightcolors[4] = cairo_pattern_create_rgb(0.0, 0.0, 1.0);
- t->brightcolors[5] = cairo_pattern_create_rgb(1.0, 0.0, 1.0);
- t->brightcolors[6] = cairo_pattern_create_rgb(0.0, 1.0, 1.0);
- t->brightcolors[7] = cairo_pattern_create_rgb(1.0, 1.0, 1.0);
-
t->cursorcolor = cairo_pattern_create_rgba(0.0, 1.0, 0.0, 0.5);
t->fgcolor = -1;