Provided by: m17n-docs_1.6.2-2.1_all bug

NAME

       Font - Font object.

   Typedefs
       typedef struct MFont MFont
           Type of fonts.

   Functions
       MFont * mfont ()
           Create a new font.
       MFont * mfont_parse_name (const char *name, MSymbol format)
           Create a font by parsing a fontname.
       char * mfont_unparse_name (MFont *font, MSymbol format)
           Create a fontname from a font.
       MFont * mfont_copy (MFont *font)
           Make a copy of a font.
       void * mfont_get_prop (MFont *font, MSymbol key)
           Get a property value of a font.
       int mfont_put_prop (MFont *font, MSymbol key, void *val)
           Put a property value to a font.
       MSymbol * mfont_selection_priority ()
           Return the font selection priority.
       int mfont_set_selection_priority (MSymbol *keys)
           Set the font selection priority.
       MFont * mfont_find (MFrame *frame, MFont *spec, int *score, int max_size)
           Find a font.
       int mfont_set_encoding (MFont *font, MSymbol encoding_name, MSymbol repertory_name)
           Set encoding of a font.
       char * mfont_name (MFont *font)
           Create a fontname from a font.
       MFont * mfont_from_name (const char *name)
           Create a new font from fontname.
       int mfont_resize_ratio (MFont *font)
           Get resize information of a font.
       MPlist * mfont_list (MFrame *frame, MFont *font, MSymbol language, int maxnum)
           Get a list of fonts.
       MPlist * mfont_list_family_names (MFrame *frame)
           Get a list of font famiy names.
       int mfont_check (MFrame *frame, MFontset *fontset, MSymbol script, MSymbol language, MFont *font)
           Check the usability of a font.
       int mfont_match_p (MFont *font, MFont *spec)
           Check is a font matches with a font spec.
       MFont * mfont_open (MFrame *frame, MFont *font)
           Open a font.
       MFont * mfont_encapsulate (MFrame *frame, MSymbol data_type, void *data)
           Encapusulate a font.
       int mfont_close (MFont *font)
           Close a font.

   Variables
       MPlist * mfont_freetype_path
           List of font files and directories that contain font files.

   Variables: Keys of font property.
       MSymbol Mfoundry
           Key of font property specifying foundry.
       MSymbol Mfamily
           Key of font property specifying family.
       MSymbol Mweight
           Key of font property specifying weight.
       MSymbol Mstyle
           Key of font property specifying style.
       MSymbol Mstretch
           Key of font property specifying stretch.
       MSymbol Madstyle
           Key of font property specifying additional style.
       MSymbol Mspacing
           Key of font property specifying spacing.
       MSymbol Mregistry
           Key of font property specifying registry.
       MSymbol Msize
           Key of font property specifying size.
       MSymbol Motf
           Key of font property specifying file name.
       MSymbol Mfontfile
           Key of font property specifying file name.
       MSymbol Mresolution
           Key of font property specifying resolution.
       MSymbol Mmax_advance
           Key of font property specifying max advance width.
       MSymbol Mfontconfig
           Symbol of name 'fontconfig'.
       MSymbol Mx
           Symbol of name 'x'.
       MSymbol Mfreetype
           Symbol of name 'freetype'.
       MSymbol Mxft
           Symbol of name 'xft'.

Detailed Description

       Font object.

       The m17n GUI API represents a font by an object of the type MFont. A font can have font properties. Like
       other types of properties, a font property consists of a key and a value. The key of a font property must
       be one of the following symbols:

       Mfoundry, Mfamily, Mweight, Mstyle, Mstretch, Madstyle, Mregistry, Msize, Mresolution, Mspacing.

       When the key of a font property is Msize or Mresolution, its value is an integer. Otherwise the value is
       a symbol.

       The notation 'xxx property of F' means the font property that belongs to font F and whose key is Mxxx.

       The value of a foundry property is a symbol representing font foundry information, e.g. adobe, misc, etc.

       The value of a family property is a symbol representing font family information, e.g. times, helvetica,
       etc.

       The value of a weight property is a symbol representing weight information, e.g. normal, bold, etc.

       The value of a style property is a symbol representing slant information, e.g. normal, italic, etc.

       The value of a stretch property is a symbol representing width information, e.g. normal, semicondensed,
       etc.

       The value of an adstyle property is a symbol representing abstract font family information, e.g. serif,
       sans-serif, etc.

       The value of a registry property is a symbol representing registry information, e.g. iso10646-1,
       iso8895-1, etc.

       The value of a size property is an integer representing design size in the unit of 1/10 point.

       The value of a resolution property is an integer representing assumed device resolution in the unit of
       dots per inch (dpi).

       The value of a type property is a symbol indicating a font driver; currently Mx or Mfreetype.

       The m17n library uses font objects for two purposes: to receive font specification from an application
       program, and to present available fonts to an application program. When the m17n library presents an
       available font to an application program, all font properties have a concrete value.

       The m17n library supports three kinds of fonts: Window system fonts, FreeType fonts, and OpenType fonts.

       • Window system fonts
       The  m17n-X  library  supports  all fonts handled by an X server and an X font server. The correspondence
       between XLFD fields and font properties are shown below.
           XLFD field                                  property
           ---------------                             --------
           FOUNDRY                                     foundry
           FAMILY_NAME                                 family
           WEIGHT_NAME                                 weight
           SLANT                                       style
           SETWIDTH_NAME                               stretch
           ADD_STYLE_NAME                              adstyle
           PIXEL_SIZE                                  size
           RESOLUTION_Y                                resolution
           CHARSET_REGISTRY-CHARSET_ENCODING           registry
       XLFD fields not listed in the above table are ignored.
       • FreeType fonts
       The m17n library, if configured to use the FreeType library, supports all fonts that can  be  handled  by
       the  FreeType  library.  The  variable  mfont_freetype_path  is  initialized  properly  according  to the
       configuration of the m17n library and the environment variable M17NDIR.  See  the  documentation  of  the
       variable for details.
       If  the m17n library is configured to use the fontconfig library, in addition to mfont_freetype_path, all
       fonts available via fontconfig are supported.
       The family name of a FreeType font corresponds to the family property.  Style  names  of  FreeType  fonts
       correspond to the weight, style, and stretch properties as below.
           style name          weight  style   stretch
           ----------          ------  -----   -------
           Regular             medium  r       normal
           Italic              medium  i       normal
           Bold                bold    r       normal
           Bold Italic         bold    i       normal
           Narrow              medium  r       condensed
           Narrow Italic       medium  i       condensed
           Narrow Bold         bold    r       condensed
           Narrow Bold Italic  bold    i       condensed
           Black               black   r       normal
           Black Italic        black   i       normal
           Oblique             medium  o       normal
           BoldOblique         bold    o       normal
       Style names not listed in the above table are treated as 'Regular'.
       Combination  of  a platform ID and an encoding ID corresponds to the registry property. For example, if a
       font has the combination (1 1),  the  registry  property  is  1-1.  Some  frequent  combinations  have  a
       predefined registry property as below.
           platform ID         encoding ID     registry property
           -----------         -----------     -----------------
           0                   3               unicode-bmp
           0                   4               unicode-full
           1                   0               apple-roman
           3                   1               unicode-bmp
           3                   1               unicode-full
       Thus,  a font that has two combinations (1 0) and (3 1) corresponds to four font objects whose registries
       are 1-0, apple-roman, 3-1, and unicode-bmp.
       • OpenType fonts
       The m17n library, if configured to use both the FreeType  library  and  the  OTF  library,  supports  any
       OpenType  fonts.  The  list  of  actually  available  fonts  is created in the same way as in the case of
       FreeType fonts. If a fontset instructs to use an OpenType font via an FLT (Font Layout  Table),  and  the
       FLT  has an OTF-related command (e.g. otf:deva), the OTF library converts a character sequence to a glyph
       code sequence according to the OpenType layout tables of the font,  and  the  FreeType  library  gives  a
       bitmap image for each glyph.

Typedef Documentation

   typedef struct MFont MFont
       Type  of  fonts.  The  type  MFont  is  the  structure  defining fonts. It contains information about the
       following properties of a font: foundry, family, weight, style, stretch,  adstyle,  registry,  size,  and
       resolution.
       This  structure  is  used  both  for  specifying  a  font  in a fontset and for storing information about
       available system fonts.
       The internal structure is concealed from an application program.
       SEE ALSO
           mfont(), mfont_from_name(), mfont_find().

Variable Documentation

   MSymbol Mfoundry
       Key of font property specifying foundry. The variable Mfoundry is a symbol of name 'foundry' and is  used
       as  a key of font property and face property. The property value must be a symbol whose name is a foundry
       name of a font.
   MSymbol Mfamily
       Key of font property specifying family. The variable Mfamily is a symbol of name 'family' and is used  as
       a key of font property and face property. The property value must be a symbol whose name is a family name
       of a font.
   MSymbol Mweight
       Key  of font property specifying weight. The variable Mweight is a symbol of name 'weight' and is used as
       a key of font property and face property. The property value must be a symbol whose name is a weight name
       of a font (e.g 'medium', 'bold').
   MSymbol Mstyle
       Key of font property specifying style. The variable Mstyle is a symbol of name 'style' and is used  as  a
       key of font property and face property. The property value must be a symbol whose name is a style name of
       a font (e.g 'r', 'i', 'o').
   MSymbol Mstretch
       Key  of font property specifying stretch. The variable Mstretch is a symbol of name 'stretch' and is used
       as a key of font property and face property. The property value must be a symbol whose name is a  stretch
       name of a font (e.g 'normal', 'condensed').
   MSymbol Madstyle
       Key of font property specifying additional style. The variable Madstyle is a symbol of name 'adstyle' and
       is used as a key of font property and face property. The property value must be a symbol whose name is an
       additional style name of a font (e.g 'serif', '', 'sans').
   MSymbol Mspacing
       Key  of font property specifying spacing. The variable Madstyle is a symbol of name 'spacing' and is used
       as a key of font property. The property value must be a symbol whose name specifies the spacing of a font
       (e.g 'p' for proportional, 'm' for monospaced).
   MSymbol Mregistry
       Key of font property specifying registry. The variable Mregistry is a symbol of name  'registry'  and  is
       used  as a key of font property. The property value must be a symbol whose name is a registry name a font
       registry (e.g. 'iso8859-1', 'jisx0208.1983-0').
   MSymbol Msize
       Key of font property specifying size. The variable Msize is a symbol of name 'size' and is used as a  key
       of  font  property and face property. The property value must be an integer specifying a font design size
       in the unit of 1/10 point (on 100 dpi display).
   MSymbol Motf
       Key of font property specifying file name. The variable Mfontfile is a symbol of name 'fontfile'  and  is
       used as a key of font property. The property value must be a symbol whose name is a font file name.
   MSymbol Mfontfile
       Key  of  font property specifying file name. The variable Mfontfile is a symbol of name 'fontfile' and is
       used as a key of font property. The property value must be a symbol whose name is a font file name.
   MSymbol Mresolution
       Key of font property specifying resolution. The variable Mresolution is a symbol of name 'resolution' and
       is used as a key of font property and face property. The property value must be an integer to  specifying
       a font resolution in the unit of dots per inch (dpi).
   MSymbol Mmax_advance
       Key  of  font  property  specifying  max  advance  width.  The  variable Mmax_advance is a symbol of name
       'max-advance' and is used as a key of font property. The property value must be an integer  specifying  a
       font's max advance value by pixels.
   MSymbol Mfontconfig
       Symbol  of  name  'fontconfig'.  The  variable  Mfontconfig is to be used as an argument of the functions
       mfont_parse_name() and mfont_unparse_name().
   MSymbol Mx
       Symbol of name 'x'. The variable Mx is to be  used  for  a  value  of  <type>  member  of  the  structure
       MDrawGlyph to specify the type of <fontp> member is actually (XFontStruct *).
   MSymbol Mfreetype
       Symbol  of  name  'freetype'.  The  variable  Mfreetype is to be used for a value of <type> member of the
       structure MDrawGlyph to specify the type of <fontp> member is actually FT_Face.
   MSymbol Mxft
       Symbol of name 'xft'. The variable Mxft is to be used for a value  of  <type>  member  of  the  structure
       MDrawGlyph to specify the type of <fontp> member is actually (XftFont *).
   MPlist* mfont_freetype_path
       List  of  font files and directories that contain font files. The variable mfont_freetype_path is a plist
       of FreeType font files and directories that contain FreeType font files. Key of the element  is  Mstring,
       and the value is a string that represents a font file or a directory.
       The macro M17N_INIT() sets up this variable to contain the sub-directory 'fonts' of the m17n database and
       the  environment variable 'M17NDIR'. The first call of mframe() creates the internal list of the actually
       available fonts from this variable. Thus, an application program, if necessary, must modify the  variable
       before  calling  mframe(). If it is going to add a new element, value must be a string that can be safely
       freed.
       If the m17n library is not configured to use the FreeType library, this variable is not used.

Author

       Generated automatically by Doxygen for The m17n Library from the source code.

COPYRIGHT

       Copyright (C) 2001 Information-technology Promotion Agency (IPA)
       Copyright (C) 2001-2011 National Institute of Advanced Industrial Science and Technology (AIST)
       Permission is granted to copy, distribute and/or modify this document under the terms  of  the  GNU  Free
       Documentation License <http://www.gnu.org/licenses/fdl.html>.

Version 1.6.2                                      12 Jan 2011                                       Font(3m17n)