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.