# 20.7 `fm` -- Font Manager interface

Availability: IRIX.

This module provides access to the IRIS Font Manager library. It is available only on Silicon Graphics machines. See also: 4Sight User's Guide, section 1, chapter 5: ``Using the IRIS Font Manager.''

This is not yet a full interface to the IRIS Font Manager. Among the unsupported features are: matrix operations; cache operations; character operations (use string operations instead); some details of font info; individual glyph metrics; and printer matching.

It supports the following operations:

`init`( | )

  Initialization function. Calls `fminit()`. It is normally not necessary to call this function, since it is called automatically the first time the `fm` module is imported.

`findfont`( | fontname)

  Return a font handle object. Calls `fmfindfont(fontname)`.

`enumerate`( | )

  Returns a list of available font names. This is an interface to `fmenumerate()`.

`prstr`( | string)

  Render a string using the current font (see the `setfont()` font handle method below). Calls `fmprstr(string)`.

`setpath`( | string)

  Sets the font search path. Calls `fmsetpath(string)`. (XXX Does not work!?!)

`fontpath`( | )

  Returns the current font search path.

Font handle objects support the following operations:

`scalefont`( | factor)

  Returns a handle for a scaled version of this font. Calls `fmscalefont(fh, factor)`.

`setfont`( | )

  Makes this font the current font. Note: the effect is undone silently when the font handle object is deleted. Calls `fmsetfont(fh)`.

`getfontname`( | )

  Returns this font's name. Calls `fmgetfontname(fh)`.

`getcomment`( | )

  Returns the comment string associated with this font. Raises an exception if there is none. Calls `fmgetcomment(fh)`.

`getfontinfo`( | )

  Returns a tuple giving some pertinent data about this font. This is an interface to `fmgetfontinfo()`. The returned tuple contains the following numbers: `(`printermatched, fixed_width, xorig, yorig, xsize, ysize, height, nglyphs`)`.

`getstrwidth`( | string)

  Returns the width, in pixels, of string when drawn in this font. Calls `fmgetstrwidth(fh, string)`.