aboutsummaryrefslogtreecommitdiffstats
path: root/display.c
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2014-04-11 00:09:16 -0400
committerJesse Luehrs <doy@tozt.net>2014-04-11 00:09:16 -0400
commitdb264d8ac4b3a41228ae2eed4092092501ed2678 (patch)
treecb4ccac65c6e4d71c48ec2674decad483f22bc7a /display.c
parent528584f2f0e5b96c1819d1e48a8127ce7e869ae6 (diff)
downloadrunes-db264d8ac4b3a41228ae2eed4092092501ed2678.tar.gz
runes-db264d8ac4b3a41228ae2eed4092092501ed2678.zip
handle colors, somewhat
Diffstat (limited to 'display.c')
-rw-r--r--display.c35
1 files changed, 30 insertions, 5 deletions
diff --git a/display.c b/display.c
index 17d6b9f..30ed7a0 100644
--- a/display.c
+++ b/display.c
@@ -7,9 +7,14 @@ void runes_display_init(RunesTerm *t)
cairo_font_face_t *font_face;
cairo_matrix_t font_matrix, ctm;
- t->bgcolor = cairo_pattern_create_rgb(1.0, 1.0, 1.0);
- t->fgcolor = cairo_pattern_create_rgb(0.0, 0.0, 1.0);
- t->cursorcolor = cairo_pattern_create_rgb(0.0, 1.0, 0.0);
+ t->colors[0] = cairo_pattern_create_rgb(0.0, 0.0, 0.0);
+ t->colors[1] = cairo_pattern_create_rgb(1.0, 0.0, 0.0);
+ t->colors[2] = cairo_pattern_create_rgb(0.0, 1.0, 0.0);
+ t->colors[3] = cairo_pattern_create_rgb(1.0, 1.0, 0.0);
+ t->colors[4] = cairo_pattern_create_rgb(0.0, 0.0, 1.0);
+ t->colors[5] = cairo_pattern_create_rgb(1.0, 0.0, 1.0);
+ t->colors[6] = cairo_pattern_create_rgb(1.0, 1.0, 1.0);
+ t->colors[7] = cairo_pattern_create_rgb(1.0, 1.0, 1.0);
font_face = cairo_toy_font_face_create("monospace", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL);
cairo_matrix_init_scale(&font_matrix, 14.0, 14.0);
@@ -18,10 +23,13 @@ void runes_display_init(RunesTerm *t)
cairo_set_scaled_font(t->cr, t->font);
+ runes_display_reset_text_attributes(t);
+ t->cursorcolor = cairo_pattern_create_rgb(0.0, 1.0, 0.0);
+
+ cairo_save(t->cr);
cairo_set_source(t->cr, t->bgcolor);
cairo_paint(t->cr);
-
- cairo_set_source(t->cr, t->fgcolor);
+ cairo_restore(t->cr);
runes_display_move_to(t, 0, 0);
@@ -133,3 +141,20 @@ void runes_display_kill_line_forward(RunesTerm *t)
runes_display_move_to(t, t->row, t->col);
}
+
+void runes_display_reset_text_attributes(RunesTerm *t)
+{
+ runes_display_set_fg_color(t, t->colors[7]);
+ runes_display_set_bg_color(t, t->colors[0]);
+}
+
+void runes_display_set_fg_color(RunesTerm *t, cairo_pattern_t *color)
+{
+ t->fgcolor = color;
+ cairo_set_source(t->cr, t->fgcolor);
+}
+
+void runes_display_set_bg_color(RunesTerm *t, cairo_pattern_t *color)
+{
+ t->bgcolor = color;
+}