/usr/local/CPAN/PPresenter/PPresenter/Fontset/TkFonts.pm
# Copyright (C) 2000-2002, Free Software Foundation FSF.
package PPresenter::Fontset::TkFonts;
use strict;
use PPresenter::Fontset;
use base 'PPresenter::Fontset';
use constant ObjDefaults =>
{ -name => 'tkfonts'
, -aliases => [ 'default', 'TkFonts', 'tkfont' ]
, -fixedFont => 'Courier'
, -proportionalFont => 'Helvetica'
};
sub font($$$$)
{ my ($fontset, $viewport, $type, $weight, $slant, $size) = @_;
# type : PROPORTIONAL, FIXED, or Tk-like
# weight : bold, normal
# slant : italic or roman
# size : from -fontLabels or an actual fontsize
my $real_size = $fontset->sizeToPixels($viewport, $size);
my $fam = $type eq 'PROPORTIONAL' ? $fontset->{-proportionalFont}
: $type eq 'FIXED' ? $fontset->{-fixedFont}
: $type;
# Create the font if it does not exist yet.
my $fontname = "-$fam-$weight-$slant-$real_size-";
$fontset->{$fontname} = $viewport->screen->fontCreate
( -family => $fam,
-slant => $slant,
-size => $real_size
) unless exists $fontset->{$fontname};
return $fontset->{$fontname};
}
1;