aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2014-04-11 16:37:29 -0400
committerJesse Luehrs <doy@tozt.net>2014-04-11 16:37:29 -0400
commit5b7fe7dd556c330a7e01430dcce4d4e9b9d2cda4 (patch)
tree4d17314fb374ce87ef218567adb033bdab1f02d8
parent0961bee4a1004590b9b94ae5ed7df5f91158ee95 (diff)
downloadrunes-5b7fe7dd556c330a7e01430dcce4d4e9b9d2cda4.tar.gz
runes-5b7fe7dd556c330a7e01430dcce4d4e9b9d2cda4.zip
support bold fonts
-rw-r--r--display.c13
-rw-r--r--display.h2
-rw-r--r--vt100.c6
3 files changed, 21 insertions, 0 deletions
diff --git a/display.c b/display.c
index 34c2754..f214842 100644
--- a/display.c
+++ b/display.c
@@ -170,6 +170,19 @@ void runes_display_reset_text_attributes(RunesTerm *t)
{
runes_display_reset_fg_color(t);
runes_display_reset_bg_color(t);
+ runes_display_reset_bold(t);
+}
+
+void runes_display_set_bold(RunesTerm *t)
+{
+ t->font_bold = 1;
+ cairo_set_scaled_font(t->cr, runes_display_make_font(t));
+}
+
+void runes_display_reset_bold(RunesTerm *t)
+{
+ t->font_bold = 0;
+ cairo_set_scaled_font(t->cr, runes_display_make_font(t));
}
void runes_display_set_fg_color(RunesTerm *t, cairo_pattern_t *color)
diff --git a/display.h b/display.h
index 14353cb..649a584 100644
--- a/display.h
+++ b/display.h
@@ -13,6 +13,8 @@ void runes_display_clear_screen(RunesTerm *t);
void runes_display_clear_screen_forward(RunesTerm *t);
void runes_display_kill_line_forward(RunesTerm *t);
void runes_display_reset_text_attributes(RunesTerm *t);
+void runes_display_set_bold(RunesTerm *t);
+void runes_display_reset_bold(RunesTerm *t);
void runes_display_set_fg_color(RunesTerm *t, cairo_pattern_t *color);
void runes_display_reset_fg_color(RunesTerm *t);
void runes_display_set_bg_color(RunesTerm *t, cairo_pattern_t *color);
diff --git a/vt100.c b/vt100.c
index fd2dbe3..43c2905 100644
--- a/vt100.c
+++ b/vt100.c
@@ -210,6 +210,12 @@ static char *runes_vt100_handle_escape_sequence(
case 0:
runes_display_reset_text_attributes(t);
break;
+ case 1:
+ runes_display_set_bold(t);
+ break;
+ case 22:
+ runes_display_reset_bold(t);
+ break;
case 30: case 31: case 32: case 33:
case 34: case 35: case 36: case 37:
runes_display_set_fg_color(t, t->colors[p[i] - 30]);