Mit ADD USER FONTS kann ein Programm eigene Fonts zu den von der Zeichensatzauswahl angezeigten Fonts hinzufügen. Die ID dieser Fonts muß größer als 65535 sein. Außerdem muß im Strukturelement <display> der Zeiger auf eine Anzeigefunktion eingetragen werden.
Deklaration:
WORD fnts_add( FNT_DIALOG *fnt_dialog, FNTS_ITEM *user_fonts );
Aufruf:
ret = WORD fnts_add( fnt_dialog, user_fonts );
Variable Belegung Bedeutung
Eingaben:
contrl[0] 185 fnts_set
contrl[1] 1 Einträge in intin
contrl[3] 2 Einträge in addrin
intin[0] 0 fnts_add
addrin[0] fnt_dialog Zeiger auf Verwaltungsstruktur
addrin[1] user_fonts Zeiger auf programmeigene Fonts
Ausgaben:
contrl[2] 1 Einträge in intout
contrl[4] 0 Einträge in addrout
intout[0] ret 0: Fehler 1: alles in Ordnung
Deklaration von FNTS_ITEM:
typedef struct _fnts_item
{
struct _fnts_item *next;
/* Zeiger auf den nächsten Font oder 0L (Ende der Liste) */
UTXT_FN display;
/* Zeiger auf die Anzeige-Funktion für applikationseigene Fonts */
LONG id;
/* ID des Fonts, >= 65536 für applikationseigene Fonts */
WORD index; /* muß 0 sein, da kein VDI-Font */
BYTE mono; /* Flag für äquidistante Fonts */
BYTE outline; /* Flag für Vektorfont */
WORD npts; /* Anzahl der vordefinierten Punkthöhen */
BYTE *full_name; /* Zeiger auf den vollständigen Namen */
BYTE *family_name; /* Zeiger auf den Familiennamen */
BYTE *style_name; /* Zeiger auf den Stilnamen */
BYTE *pts; /* Zeiger auf Feld mit Punkthöhen */
LONG reserved[4]; /* reserviert, müssen 0 sein */
} FNTS_ITEM;
typedef void (cdecl *UTXT_FN)( WORD x, WORD y, WORD *clip_rect,
LONG id, LONG pt, LONG ratio,
BYTE *string );