=> R0 = flags
R1 = pointer to menu definition, as per Font_ListFonts
R2 = pointer to menu selections, as per Wimp_Poll
R3 = pointer buffer to contain result
or 0 to return size
R4 = size of buffer (if R3 <> 0)
<= R0, R1, R3 preserved.
R2 = pointer to rest of menu selections
R4 = size of buffer required.
or 0 for no font selection.
This SWI decodes the font or encoding menu, returning a string with a format dependent on whether the font/encoding names were specifed in a Messagesn file in the font directory. If no Messagesn file was found (and hence the font manager has found the font names by scanning the directory tree) the name field is absent.
Experimentation suggests that passing in a selection block pointing at System Font will generate an error, rather than set R4 = 0
See PRM 3-481.
Font_DecodeMenu R0 Flags
bit /meaning/
0 one is decoding an encoding menu, else a font menu.
all other bits reserved (ie. zero)
Font_DecodeMenu result form
Results from the call are of the form:
\Ffont_id[\fterritory font_name][\Eencoding_id[\eterritory encoding_name]]
where [ ] indicate optional sections. The string shall be terminated by a Ctrl-character.
Examples
\FEquasor\f1 Bob
\FPembroke.Bold
\FTrinity.Medium\ELatin1
\ELatin5\e1 Gleep
\EWelsh
\FCorpus.Medium\ELatin1\e1 Gleep
Note the above examples have actually been obtained, they weren't just made up.
|
|
|