unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (Debian-5.0)
Page:
Section:
Apropos / Subsearch:
optional field

Defoma::Common(3pm)                                        Defoma::Common(3pm)



NAME
       Defoma::Common - Defoma module providing miscellaneous functions.

SYNOPSIS
       use Defoma::Common;

       $h = parse_hints_start( hints...  );

       $hsub = parse_hints_subhints( hints_hash, face );

       $hsub = parse_hints_subhints_inherit( hints_hash, face );

       parse_hints_cut( hints_hash, hinttypes...  );

       parse_hints_cut_except( hints_hash, hinttypes...  );

       @hints = parse_hints_build( hints_hash );

       $charset = get_charset( xencoding );

       $xencoding = get_xencoding( charset, encoding );

       @XLFDs = get_xlfd_of_font( font,  level => level,  face => face );

       my $num = weight_ascii2integer( weightstring );

       my $num = weight_a2i( weightstring );


DESCRIPTION
       parse_hints_start is a function to convert hints in an array to a hash.
       Hints consist of a list of hinttype and its value(s). Following is  the
       example of hints in an array form.

       --FontName   Helvetica-BoldItalic  --Family  Helvetica  --GeneralFamily
       SansSerif --Weight Bold --Shape NoSerif Italic --Charset ISO8859-1

       In this example, FontName, Family,  GeneralFamily,  Weight,  Shape  and
       Charset are hinttypes. Items starting with double minus characters '--'
       are taken as hinttype. The others are taken as  values.   The  function
       converts this array to a hash described in the following style.

       FontName => 'Helvetica-BoldItalic',
       Family => 'Helvetica',
       GeneralFamily => 'SansSerif',
       Weight => 'Bold',
       Shape => 'NoSerif Italic',
       Charset => 'ISO8859-1'

       You  see  that hinttypes are used as keys of a hash, and that Shape has
       two values, NoSerif and Italic. If a certain hinttype has more than one
       values, they are combined into a single string separated by space.

       parse_hints_subhints  is  a  function to get a sub hint hash pointed by
       face from the hint hash specified by hints_hash.  Please look  at  fol-
       lowing example of a hint hash.

       $h = {Inherit => 'Charset Weight',
             FontName => 'Helvetica',
             Charset => 'ISO8859-1',
             Weight => 'Medium',
             Shape => 'Upright',
             FontName1 => 'Helvetica-Bold',
             Weight1 => 'Bold',
             FontName2 => 'Helvetica-Unicode',
             Charset2 => 'ISO10646-1'};

       You  see  there're  some  numbered hinttypes.  parse_hints_subhints ex-
       tracts the hints of the specific number from it. For example,  you  can
       extract the non-numbered hints FontName and Charset by:

       $hsub = parse_hints_subhints($h, 0);

       and the content of $hsub will be:

       FontName => 'Helvetica',
       Charset => 'ISO8859-1',
       Weight => 'Medium',
       Shape => 'Upright'

       If  you  set 1 to the second argument of parse_hints_subhints, the con-
       tent of $hsub will be:

       FontName => 'Helvetica-Bold',
       Weight => 'Bold'

       Note that the number of each hinttype is removed.

       parse_hints_subhints_inherit is almost  the  same  as  parse_hints_sub-
       hints, only differs it inherits non-numbered hints specified by Inherit
       hinttype.  Following is the result of parse_hints_subhints_inherit with
       1  and  2 set to the second argument in the example of parse_hints_sub-
       hints.

       FontName => 'Helvetica-Bold',
       Weight => 'Bold',
       Charset => 'ISO8859-1'

       FontName => 'Helvetica-Unicode',
       Weight => 'Medium',
       Charset => 'ISO10646-1'


       parse_hints_cut is a function to remove hinttypes  specified  by  hint-
       types  and  their values from the hint hash.  It is supposed to be used
       together with parse_hints_build function.

       parse_hints_cut_except is a function to  remove  all  hinttypes  except
       those  specified  by hinttypes and their values from the hint hash.  It
       is supposed to be used together with parse_hints_build function.

       parse_hints_build is a function to convert hints in a hash to an array.

       get_charset is a function to convert  X-RegistryEncoding  specified  by
       xencoding  into Charset. X-RegistryEncoding is the last two elements of
       XLFD, like iso8859-1 and jisx0208.1983-0. The returned values of  these
       two are ISO8859-1 and JISX0208 respectively.

       get_xencoding  is  a function to convert Charset and Encoding specified
       by charset and encoding into  X-RegistryEncoding.   encoding  is  often
       omitted.

       weight_ascii2integer  is  a  function to convert Weight in string (like
       Bold and Medium) into a numeric value (integer). Medium is always zero,
       and the bolder, the larger, the lighter, the smaller. For example, Bold
       is  +2,  and   Light   is   -2.    weight_a2i   is   abbreviation   for
       weight_ascii2integer.

       get_xlfd_of_font is a function to get an array of XLFDs of a font spec-
       ified by font.  You can control the amount of gained XLFDs by level and
       face options.  level must be either of 'min', 'normal', or 'max'.  When
       min is specified, not-slanted not-boldized XLFDs  registered  in  xfont
       category  will  be returned.  When normal is specified, XLFDs including
       boldized and/or slanted (but not reverse slanted)  ones  registered  in
       xfont  category will be returned.  When max is specified, all generated
       XLFDs will be returned.

EXAMPLES
       $h = parse_hints_start(@_);

       @shape = split(/ /, $h->{Shape});
       @alias = split(/ /, $h->{Alias});
       $priority = $h->{Priority};
       $realname = $h->{FontName};
       $realname =~ s/ .*//;

       parse_hints_cut($h, 'Priority', 'FontName', 'Charset');
       @hints = parse_hints_build($h);


SEE ALSO
       defoma(1).






                                March  4, 2001             Defoma::Common(3pm)