static gint SetBaseFont(gtkDesc *gtkd) { gtkd->fontface = 1; gtkd->fontsize = 12; gtkd->usefixed = 0; if(font_htab == NULL) { font_htab = g_hash_table_new (g_str_hash, g_str_equal); } gtkd->font = RGTKLoadFont (gtkd->fontface, gtkd->fontsize); if(gtkd->wgc == NULL) return(1); if(gtkd->font != NULL) { gdk_gc_set_font(gtkd->wgc, gtkd->font); return 1; } gtkd->usefixed = 1; gtkd->font = gdk_font_load ("fixed"); if(gtkd->font != NULL) { gdk_gc_set_font(gtkd->wgc, gtkd->font); return 1; } return 0; }
/* Sets the font for a graphics context. * (Note that all text-drawing functions in GDK take a font argument; * the value set here is used when that argument is NULL.) */ int clip_GDK_GCSETFONT(ClipMachine * cm) { C_object *cgc = _fetch_co_arg(cm); ClipVar *c; GdkFont *font = 0; C_object *cfont; CHECKCOBJ(cgc,GDK_IS_GC(cgc)); CHECKARG3(2,CHARACTER_t,MAP_t,NUMERIC_t); switch ( _clip_parinfo(cm,2) ) { case CHARACTER_t: c = _clip_spar(cm,2); font = gdk_font_load(c->s.str.buf); break; case MAP_t: case NUMERIC_t: cfont = _fetch_cobject(cm,_clip_spar(cm,2)); if (cfont) { font = (GdkFont*)cfont->object; cfont->ref_count++; } break; default: break; } if (font) { gdk_gc_set_font(GDK_GC(cgc->object), font); gdk_font_ref (font); } return 0; err: return 1; }
static void SetFont(NewDevDesc *dd, gint face, gint size) { GdkFont *tmp_font; gtkDesc *gtkd = (gtkDesc *) dd->deviceSpecific; if (face < 1 || face > 5) face = 1; if (gtkd->wgc && !gtkd->usefixed && (size != gtkd->fontsize || face != gtkd->fontface)) { tmp_font = RGTKLoadFont(face, size); if(tmp_font) { gtkd->font = tmp_font; gtkd->fontface = face; gtkd->fontsize = size; gdk_gc_set_font(gtkd->wgc, tmp_font); } else error("X11 font at size %d could not be loaded", size); } }