Defoma::Font(3) Defoma module to handle font and font-cache.

SYNOPSIS

use Defoma::Font;

defoma_font_register( category, font, hints... );

defoma_font_unregister( category, font );

defoma_font_reregister( category, font, hints... );

defoma_font_if_register( category, font );

@fonts = defoma_font_get_fonts( category );

@hints = defoma_font_get_hints( category, font );

%failedapps = defoma_font_get_failed ( category, font );

DESCRIPTION

Defoma::Font is a Defoma module to handle registration/unregistration of fonts and font-caches. It provides functions listed above which are supposed to be called from Defoma-configuration scripts when the scripts want to register/unregister a font, and need to retrieve the data recorded in a font-cache, which holds fonts and their hints.

defoma_font_register is a function used to register a specified font into a specified category with specified hints. If the specified font is already registered, it returns non-zero. Otherwise the font and the hints are registered into the font-cache of the specified category, and further Defoma-configuration scripts get called which accept the specified category with register command.

defoma_font_unregister is a function used to unregister a specified font from a specified category. If the font is not registered in the category, it returns non-zero. Otherwise further Defoma-configuration scripts get called which accept the specified category with unregister command, and the font and the hints are removed from the font-cache of the category.

defoma_font_reregister is a function which actually calls defoma_font_unregister and defoma_font_register in order. If a specified font if not registered in a specified category, unregisteration is skipped. If the font is already registered in another category, it returns non-zero.

defoma_font_if_register if a function that checks if a specified font is registered in a specified category. If the font is registered, it returns non-zero. Otherwise it returns zero.

defoma_font_get_fonts is a function used to obtain a list of fonts reigstered in the specified category. It returns a list of fonts in an array. (font1 font2 font3 ...)

defoma_font_get_hints is a function used to obtain hints of the specified font registered in the specified category. It returns a list of hints in an array.

defoma_font_get_failed is a function used to obtain applications for which Defoma failed to configure the specified font. It returns a hash whose keys are applications and whose values are error status.

EXAMPLES

1. Register 'Helvetica-Bold' in postscript category with hints.

$font = 'Helvetica-Bold';
@hints = ('--Family', 'Helvetica', '--Weight', 'Bold',
          '--Charset', 'ISO8859-1);
defoma_font_register('postscript', $font, @hints);

2. Unregister 'foo.pfa' from type1 category.

$font = '/usr/share/fonts/foo.pfa';
defoma_font_unregister('type1', $font);

3. Unregister 'foo.pfa' from type1 category if registered.

$font = '/usr/share/fonts/foo.pfa';
if (defoma_font_if_register('type1', $font)) {
  defoma_font_unregister('type1', $font);
}

4. Get a list of fonts and their hints.

%hash = ();
@fonts = defoma_font_get_fonts('x-postscript');
foreach $font (@fonts) {
  $hash{$font} = [];
  @{$hash{$font}} = defoma_font_get_hints('x-postscript', $font);
}