Show_Font_Info

Functions

void Show_Font_Info (const char *driver, const char *name, const char *item, char *data)
 Returns selected information about the specified font. More...
 
void Show_Font_Info_By_Path (int count, const HC_KEY *keys, const char *font, const char *item, char *data)
 Similar to Show_Font_Info(), but returns the net effective font information along a discrete segment path. More...
 

Detailed Description

Function Documentation

◆ Show_Font_Info()

void Show_Font_Info ( const char *  driver,
const char *  name,
const char *  item,
char *  data 
)

Returns selected information about the specified font.

Parameters
driver- The name of a segment that represents the display associated with a device driver. Often "?Picture" or "?Hardcopy".
name- The nameof the font, in the style of Set_Text_Font() and Begin_Font_Search() .
item- The type of information to be returned by this call (see below). Upper versus lower case doesn't matter.
data- The value of item for this font. Numeric values are returned as their alphanumeric equivalents. Returned to user. Passed by reference always.

DETAILS

HOOPS tries hard to free you from needing to know the details about the particular system you're running on but sometimes it is nice to know the details. Show_Font_Info() tells you about the text fonts available on a particular display.

If the device has not been started, Show_Font_Info() might force a call to Update_Display() to get it started. See the note at the bottom of Show_Device_Info() for more information.

The choices for item are as follows:
character widths = font-size

A long list, containing the nominal width of each character, starting with character zero and proceeding through character max character. Each width is separated by commas and surrounded by parentheses. These are the widths of the font only in the font-size size. If the character does not exist, its width will be zero. If the font is infinitely scalable, you can specify any reasonable value for font-size and the widths returned will be for that size. Font-size is measured in points. See Compute_Text_Extent() before venturing into the character widths.
define

"yes" if the font is user defined, "no" if the font is system defined.
exists

"yes" if this font is actually available and reasonable, otherwise "no". "Exists" for "sans serif", for example, will tell you whether a sans serif font is available on this display.
generic name

The official "generic name" (roman, sans serif, typewriter, etc., as in Set_Text_Font() ), if any, of this font. Note: If the system has several "sans serif" fonts, for example, only one of them will be the "official" sans-serif font.
max character

The decimal value of the highest numbered character that is available in the font.
outlineable

"yes" if the font has an outline representation, otherwise "no" if the font has only a bitmapped or stroked representation.

points to sru
Returns the floating-point multiplier needed to convert text sizes from points to "sru" (see Set_Text_Font() ), given the current screen size. Show_Font_Info() mostly works in points, but the converted "sru" numbers can be useful for Set_Text_Font.
proportional

"yes" if the font uses proportionally-spaced characters (i.e., the character width depends on the character). "no" if the font is monospaced (every character has the same width.)
rotatable

"yes" if the font can be rotated arbitrarily, "90 degrees" if the font can only be rotated by 90 degree increments.
scalable

"yes" if the system can arbitrarily scale the characters as needed, "no" if it can't scale them at all, and "bitmap" if it can only scale them with a non-aesthetic pixel-multiply.
sizes

If the font is infinitely scalable a blank string is returned. Otherwise a list of one or more floating-point numbers separated by commas and surrounded by parentheses is returned. Each number represents an available size as measured in points (see Set_Text_Font() ).

slantable

"yes" if the font can be italicized.

NOTES

Show_Font_Info() should not be confused with Show_Text_Font() . Show_Text_Font retrieves the current setting in the database of the text font attribute; Show_Font_Info() on the other hand goes out and queries the device for low-level details of a operating-system font file.

RESTRICTIONS

See also
Begin_Font_Search, Show_Device_Info, Set_Text_Font, Show_(Attributes), Compute_Text_Extent.

◆ Show_Font_Info_By_Path()

void Show_Font_Info_By_Path ( int  count,
const HC_KEY *  keys,
const char *  font,
const char *  item,
char *  data 
)

Similar to Show_Font_Info(), but returns the net effective font information along a discrete segment path.

Parameters
count- The size of pathkeys.
keys- An array of HC_KEY's delineating a path of segments.
font- The name of the font, in the style of Set_Text_Font() and Begin_Font_Search() .
item- The type of information to be returned by this call (see below). Upper versus lower case doesn't matter.
data- The value of item for this font. Numeric values are returned as their alphanumeric equivalents. Returned to user. Passed by reference always.

DETAILS

As with all PShow_Net_* routines, pathkeys[0] represents the lowest (a.k.a the "most local" or "leaf"), and pathkeys[keycount-1] represents the highest segment. If the path is incomplete, missing segments are filled in if possible. Missing segments must be part of the same direct ancestry in order to be filled in. If the desired path contains an include link, the shortest unambiguous set of pathkeys would be [leaf, includelink, root], where includelink is the return value from Include_Segment().

DETAILS

No additional details. See Show_Font_Info().

See also
Begin_Font_Search, Show_Device_Info, Set_Text_Font, Show_(Attributes), Compute_Text_Extent.