NAME

       Tk_GetFontStruct, Tk_NameOfFontStruct, Tk_FreeFontStruct -
       maintain database of fonts


SYNOPSIS

       #include <tk.h>

       XFontStruct *
       Tk_GetFontStruct(interp, tkwin, nameId))

       char *
       Tk_NameOfFontStruct(fontStructPtr))

       Tk_FreeFontStruct(fontStructPtr))


ARGUMENTS

       Tcl_Interp    *interp          (in)      Interpreter    to
                                                use   for   error
                                                reporting.

       Tk_Window     tkwin            (in)      Token for  window
                                                in   which   font
                                                will be used.

       Tk_Uid        nameId           (in)      Name  of  desired
                                                font.

       XFontStruct   *fontStructPtr   (in)      Font structure to
                                                return  name  for
                                                or delete.
_________________________________________________________________



DESCRIPTION

       Tk_GetFont  loads the font indicated by nameId and returns
       a pointer to information  about  the  font.   The  pointer
       returned by Tk_GetFont will remain valid until Tk_FreeFont
       is called to release it.  NameId can be either a font name
       or pattern;  any value that could be passed to XLoadQuery-
       Font may be passed to Tk_GetFont.  If Tk_GetFont is unsuc-
       cessful  (because,  for  example,  there is no font corre-
       sponding to nameId) then it returns  NULL  and  stores  an
       error message in interp->result.

       Tk_GetFont  maintains a database of all fonts it has allo-
       cated.  If the same nameId  is  requested  multiple  times
       (e.g.  by  different  windows  or for different purposes),
       then additional calls for the same nameId will be  handled
       very  quickly,  without  involving the X server.  For this
       reason, it is generally better to use Tk_GetFont in  place
       of X library procedures like XLoadQueryFont.
       of Tk_GetFontStruct.  If its  fontStructPtr  argument  was
       created  by Tk_GetFontStruct, then the return value is the
       nameId argument that was  passed  to  Tk_GetFontStruct  to
       create  the  font.   If fontStructPtr was not created by a
       call to Tk_GetFontStruct, then the return value is a  hex-
       adecimal string giving the X identifier for the associated
       font.  Note:  the string returned  by  Tk_NameOfFontStruct
       is  only  guaranteed  to  persist  until  the next call to
       Tk_NameOfFontStruct.

       When a font returned by Tk_GetFont is  no  longer  needed,
       Tk_FreeFont  should be called to release it.  There should
       be exactly one  call  to  Tk_FreeFont  for  each  call  to
       Tk_GetFont.   When  a  font  is  no longer in use anywhere
       (i.e. it has been freed as many times as it has been  got-
       ten)  Tk_FreeFont  will  release  it  to  the X server and
       delete it from the database.



KEYWORDS

       font