1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
|
package Font::TTF::Features::Size;
=head1 NAME
Font::TTF::Features::Size - Class for Size Feature Parameters
=head1 DESCRIPTION
Handles the Feature Parameters valus for Size features
=head1 INSTANCE VARIABLES
=over 4
=item INFILE
The read file handle
=item OFFSET
Location of the file in the input file
=item DesignSize
Design Size in decipoints
=item SubFID
Identifier for the fonts in a subfamily
=item SubFNameID
The 'name' table name ID for the subfamily name
=item MinSize
Bottom end of recomended usage size range
=item MaxSize
Top end of recomended usage size range
=back
=head1 METHODS
=cut
use Font::TTF::Utils;
use strict;
=head2 $t->read
Reads the Feature Params
=cut
sub read
{
my ($self) = @_;
my ($fh) = $self->{' INFILE'};
my ($off) = $self->{' OFFSET'};
my $dat;
$fh->seek($off, 0);
$fh->read($dat, 10);
( $self->{'DesignSize'}
,$self->{'SubFID'}
,$self->{'SubFNameID'}
,$self->{'MinSize'}
,$self->{'MaxSize'} ) = TTF_Unpack("S*", $dat);
return $self;
}
=head2 $t->out($fh)
Writes the FeatureParams table to the output
=cut
sub out
{
my ($self, $fh) = @_;
$fh->print(TTF_Pack("S*"
,$self->{'DesignSize'}
,$self->{'SubFID'}
,$self->{'SubFNameID'}
,$self->{'MinSize'}
,$self->{'MaxSize'} ));
$self;
}
=head2 Font::TTF::Features::Sset->new()
Creates a new FeatureParams object. Table instance variables are passed in
at this point as an associative array.
=cut
sub new
{
my ($class,%parms) = @_;
my ($self) = {};
my ($p);
foreach $p (keys %parms)
{ $self->{" $p"} = $parms{$p}; }
bless $self, $class;
}
1;
=head1 AUTHOR
David Raymond David_Raymond@sil.org.
=head1 LICENSING
Copyright (c) 1998-2013, SIL International (http://www.sil.org)
This module is released under the terms of the Artistic License 2.0.
For details, see the full text of the license in the file LICENSE.
=cut
|