# 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)`.