39.7. "fm" — *Font Manager* interface
*************************************

2.6 版後已棄用: The "fm" module has been removed in Python 3.

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:

fm.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.

fm.findfont(fontname)

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

fm.enumerate()

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

fm.prstr(string)

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

fm.setpath(string)

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

fm.fontpath()

   Returns the current font search path.

Font handle objects support the following operations:

font handle.scalefont(factor)

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

font handle.setfont()

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

font handle.getfontname()

   Returns this font’s name. Calls "fmgetfontname(fh)".

font handle.getcomment()

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

font handle.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)".

font handle.getstrwidth(string)

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