Diese Funktion initialisiert den Fontselektor. Wenn <no_fonts> 0 ist, wird vst_load_fonts() mit <vdi_handle> aufgerufen. Andernfalls wird davon ausgegangen, daß <no_fonts> die Anzahl aller über <vdi_handle> verfügbaren Fonts ist, d.h. die Anzahl aller Systemfonts (work_out[10] bei v_opnvwk()/vq_extnd()) plus die Anzahl der nachgeladenen Fonts (Rückgabewert von vst_load_fonts()).
Deklaration: FNT_DIALOG *fnts_create( WORD vdi_handle, WORD no_fonts, WORD font_flags, WORD dialog_flags, BYTE *sample, BYTE *opt_button ); Aufruf: fnt_dialog = fnts_create( vdi_handle, 0, 0xf, "The quick brown..." ); Variable Belegung Bedeutung Eingaben: contrl[0] 180 fnts_create contrl[1] 4 Einträge in intin contrl[3] 2 Einträge in addrin intin[0] vdi_handle Handle der zu benutzenden Workstation intin[1] no_fonts Anzahl der verfügbaren Fonts oder 0, wenn vst_load_fonts() aufgerufen werden soll intin[2] font_flags Art der anzuzeigenden Fonts intin[3] dialog_flags Aussehen des Dialogs addrin[0] sample Zeiger auf String für den Beispieltext addrin[1] opt_button Zeiger auf String für optionalen Button oder 0L Ausgaben: contrl[2] 0 Einträge in intout contrl[4] 1 Einträge in addrout addrout[0] fnt_dialog Zeiger auf Verwaltungsstruktur Beschreibung von <font_flags>: #define FNTS_BTMP 1 /* Bitmapfonts anzeigen */ #define FNTS_OUTL 2 /* Vektorfonts anzeigen */ #define FNTS_MONO 4 /* äquidistante Fonts anzeigen */ #define FNTS_PROP 8 /* proportionale Fonts anzeigen */ Beschreibung von <dialog_flags>: #define FNTS_3D 1 /* Auswahl im 3D-Look anzeigen */
Bemerkung: Da diese Funktion je nach Systemkonfiguration durchaus 1 Sekunde (evtl. auch mehr) benötigt, sollte man sie am Programmstart aufrufen und nicht erst direkt vor der Anzeige der Fontauswahl aufrufen.
Bitte beachten: Der Fontselektor verändert die Attribute der mit <vdi_handle> bezeichneten Workstation. Wenn man die bei fnts_create() übergebene Workstation noch für andere Zwecke benutzen möchte, müssen auf jeden Fall die Attribute vorher gesetzt werden, da sie evtl. zwischenzeitlich vom Fontselektor geändert wurden.