\section{\module{fm} ---
         \emph{Font Manager} interface}

\declaremodule{builtin}{fm}
  \platform{IRIX}
\modulesynopsis{\emph{Font Manager} interface for SGI workstations.}


This module provides access to the IRIS \emph{Font Manager} library.
\index{Font Manager, IRIS}
\index{IRIS Font Manager}
It is available only on Silicon Graphics machines.
See also: \emph{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:

\begin{funcdesc}{init}{}
Initialization function.
Calls \cfunction{fminit()}.
It is normally not necessary to call this function, since it is called
automatically the first time the \module{fm} module is imported.
\end{funcdesc}

\begin{funcdesc}{findfont}{fontname}
Return a font handle object.
Calls \code{fmfindfont(\var{fontname})}.
\end{funcdesc}

\begin{funcdesc}{enumerate}{}
Returns a list of available font names.
This is an interface to \cfunction{fmenumerate()}.
\end{funcdesc}

\begin{funcdesc}{prstr}{string}
Render a string using the current font (see the \function{setfont()} font
handle method below).
Calls \code{fmprstr(\var{string})}.
\end{funcdesc}

\begin{funcdesc}{setpath}{string}
Sets the font search path.
Calls \code{fmsetpath(\var{string})}.
(XXX Does not work!?!)
\end{funcdesc}

\begin{funcdesc}{fontpath}{}
Returns the current font search path.
\end{funcdesc}

Font handle objects support the following operations:

\begin{methoddesc}[font handle]{scalefont}{factor}
Returns a handle for a scaled version of this font.
Calls \code{fmscalefont(\var{fh}, \var{factor})}.
\end{methoddesc}

\begin{methoddesc}[font handle]{setfont}{}
Makes this font the current font.
Note: the effect is undone silently when the font handle object is
deleted.
Calls \code{fmsetfont(\var{fh})}.
\end{methoddesc}

\begin{methoddesc}[font handle]{getfontname}{}
Returns this font's name.
Calls \code{fmgetfontname(\var{fh})}.
\end{methoddesc}

\begin{methoddesc}[font handle]{getcomment}{}
Returns the comment string associated with this font.
Raises an exception if there is none.
Calls \code{fmgetcomment(\var{fh})}.
\end{methoddesc}

\begin{methoddesc}[font handle]{getfontinfo}{}
Returns a tuple giving some pertinent data about this font.
This is an interface to \code{fmgetfontinfo()}.
The returned tuple contains the following numbers:
\code{(}\var{printermatched}, \var{fixed_width}, \var{xorig},
\var{yorig}, \var{xsize}, \var{ysize}, \var{height},
\var{nglyphs}\code{)}.
\end{methoddesc}

\begin{methoddesc}[font handle]{getstrwidth}{string}
Returns the width, in pixels, of \var{string} when drawn in this font.
Calls \code{fmgetstrwidth(\var{fh}, \var{string})}.
\end{methoddesc}
