steve@thelake.mn.org (Steve.Yelvington) (05/30/91)
(This is a repost ... because of a configuration error, the original may not have achieved the distribution I had intended.) --- I'm having trouble figuring out how to use an alternate font to draw text in a GEM window. I presume I need to check for the existence of GDOS before calling vst_load_fonts, but how? I'm also getting three bombs when calling vst_load_fonts, with AMCLITE installed and ASSIGN.SYS set up properly (or at least well enough that GEMINI doesn't complain). I'd like to install Gemini 9 pt inside an application program. Do I need to search for "Gemini 9 pt" in the data returned by vqt_name() or do I search for the filename "BAGE09.FNT"? Code fragment follows: open_vwork() { int i; char tmpln[80]; handle = graf_handle( &char_w, &char_h, &box_w, &box_h); for( i=0; i<10; work_in[i++] = 1 ); work_in[10] = 2; v_opnvwk( work_in, &handle, work_out); fonts_loaded = work_out[10]; sprintf(tmpln,"[1][There are %d|fonts available][OK]",fonts_loaded); form_alert(1,tmpln); /* note: it tells me I have one font available */ fonts_loaded = vst_load_fonts(handle,2); /* BOOM! Three big ones and we go no further */ sprintf(tmpln,"[1][After vst_load_fonts,|there are %d|fonts available][OK]",fonts_loaded); form_alert(1,tmpln); if (fonts_loaded > 1) set_font(); } set_font() { /* Wouldn't it be nice if there were a font selector like the file selector? (Volunteers?) */ int i,fontindex; char fontname[32]; char *p = "BAGE09.FNT"; /* or should it be "Gemini 9"? */ if (form_alert(2,"[1][Load BAGE09.FNT?][Yes|No]") == 2) return; for (i=0;i<fonts_loaded;i++) { /* find the font */ fontindex = vqt_name(handle,i,fontname); if(strnicmp(p,fontname,strlen(p))== 0) { /* select the font */ vst_font(handle,fontindex); /* set the point size */ vst_point(handle,9,&char_w, &char_h, &box_w, &box_h); return; } } } ---- Steve Yelvington, Marine on St. Croix, Minnesota, USA / steve@thelake.mn.org