diff options
Diffstat (limited to 'otherlibs/graph/text.c')
-rw-r--r-- | otherlibs/graph/text.c | 66 |
1 files changed, 33 insertions, 33 deletions
diff --git a/otherlibs/graph/text.c b/otherlibs/graph/text.c index ad41f2ff2..f4d980aed 100644 --- a/otherlibs/graph/text.c +++ b/otherlibs/graph/text.c @@ -16,69 +16,69 @@ #include "libgraph.h" #include <alloc.h> -XFontStruct * grfont = NULL; +XFontStruct * caml_gr_font = NULL; -static void gr_font(char *fontname) +static void caml_gr_get_font(char *fontname) { - XFontStruct * font = XLoadQueryFont(grdisplay, fontname); - if (font == NULL) gr_fail("cannot find font %s", fontname); - if (grfont != NULL) XFreeFont(grdisplay, grfont); - grfont = font; - XSetFont(grdisplay, grwindow.gc, grfont->fid); - XSetFont(grdisplay, grbstore.gc, grfont->fid); + XFontStruct * font = XLoadQueryFont(caml_gr_display, fontname); + if (font == NULL) caml_gr_fail("cannot find font %s", fontname); + if (caml_gr_font != NULL) XFreeFont(caml_gr_display, caml_gr_font); + caml_gr_font = font; + XSetFont(caml_gr_display, caml_gr_window.gc, caml_gr_font->fid); + XSetFont(caml_gr_display, caml_gr_bstore.gc, caml_gr_font->fid); } -value gr_set_font(value fontname) +value caml_gr_set_font(value fontname) { - gr_check_open(); - gr_font(String_val(fontname)); + caml_gr_check_open(); + caml_gr_get_font(String_val(fontname)); return Val_unit; } -value gr_set_text_size (value sz) +value caml_gr_set_text_size (value sz) { return Val_unit; } -static void gr_draw_text(char *txt, int len) +static void caml_gr_draw_text(char *txt, int len) { - if (grfont == NULL) gr_font(DEFAULT_FONT); - if (grremember_mode) - XDrawString(grdisplay, grbstore.win, grbstore.gc, - grx, Bcvt(gry) - grfont->descent + 1, txt, len); - if (grdisplay_mode) { - XDrawString(grdisplay, grwindow.win, grwindow.gc, - grx, Wcvt(gry) - grfont->descent + 1, txt, len); - XFlush(grdisplay); + if (caml_gr_font == NULL) caml_gr_get_font(DEFAULT_FONT); + if (caml_gr_remember_modeflag) + XDrawString(caml_gr_display, caml_gr_bstore.win, caml_gr_bstore.gc, + caml_gr_x, Bcvt(caml_gr_y) - caml_gr_font->descent + 1, txt, len); + if (caml_gr_display_modeflag) { + XDrawString(caml_gr_display, caml_gr_window.win, caml_gr_window.gc, + caml_gr_x, Wcvt(caml_gr_y) - caml_gr_font->descent + 1, txt, len); + XFlush(caml_gr_display); } - grx += XTextWidth(grfont, txt, len); + caml_gr_x += XTextWidth(caml_gr_font, txt, len); } -value gr_draw_char(value chr) +value caml_gr_draw_char(value chr) { char str[1]; - gr_check_open(); + caml_gr_check_open(); str[0] = Int_val(chr); - gr_draw_text(str, 1); + caml_gr_draw_text(str, 1); return Val_unit; } -value gr_draw_string(value str) +value caml_gr_draw_string(value str) { - gr_check_open(); - gr_draw_text(String_val(str), string_length(str)); + caml_gr_check_open(); + caml_gr_draw_text(String_val(str), string_length(str)); return Val_unit; } -value gr_text_size(value str) +value caml_gr_text_size(value str) { int width; value res; - gr_check_open(); - if (grfont == NULL) gr_font(DEFAULT_FONT); - width = XTextWidth(grfont, String_val(str), string_length(str)); + caml_gr_check_open(); + if (caml_gr_font == NULL) caml_gr_get_font(DEFAULT_FONT); + width = XTextWidth(caml_gr_font, String_val(str), string_length(str)); res = alloc_small(2, 0); Field(res, 0) = Val_int(width); - Field(res, 1) = Val_int(grfont->ascent + grfont->descent); + Field(res, 1) = Val_int(caml_gr_font->ascent + caml_gr_font->descent); return res; } |