]>
Commit | Line | Data |
---|---|---|
1 | package Imager::Font::W32; | |
2 | use 5.006; | |
3 | use strict; | |
4 | use Imager; | |
5 | our @ISA = qw(Imager::Font); | |
6 | ||
7 | BEGIN { | |
8 | our $VERSION = "0.91"; | |
9 | ||
10 | require XSLoader; | |
11 | XSLoader::load('Imager::Font::W32', $VERSION); | |
12 | } | |
13 | ||
14 | # called by Imager::Font::new() | |
15 | # since Win32's HFONTs include the size information this | |
16 | # is just a stub | |
17 | sub new { | |
18 | my $class = shift; | |
19 | my %opts = | |
20 | ( | |
21 | color => Imager::Color->new(255, 0, 0), | |
22 | size => 15, | |
23 | @_, | |
24 | ); | |
25 | ||
26 | return bless \%opts, $class; | |
27 | } | |
28 | ||
29 | sub _bounding_box { | |
30 | my ($self, %opts) = @_; | |
31 | ||
32 | my @bbox = i_wf_bbox($self->{face}, $opts{size}, $opts{string}, $opts{utf8}); | |
33 | unless (@bbox) { | |
34 | Imager->_set_error(Imager->_error_as_msg); | |
35 | return; | |
36 | } | |
37 | ||
38 | return @bbox; | |
39 | } | |
40 | ||
41 | sub _draw { | |
42 | my $self = shift; | |
43 | ||
44 | my %input = @_; | |
45 | if (exists $input{channel}) { | |
46 | return i_wf_cp($self->{face}, $input{image}{IMG}, $input{x}, $input{'y'}, | |
47 | $input{channel}, $input{size}, | |
48 | $input{string}, $input{align}, $input{aa}, $input{utf8}); | |
49 | } | |
50 | else { | |
51 | return i_wf_text($self->{face}, $input{image}{IMG}, $input{x}, | |
52 | $input{'y'}, $input{color}, $input{size}, | |
53 | $input{string}, $input{align}, $input{aa}, $input{utf8}); | |
54 | } | |
55 | } | |
56 | ||
57 | ||
58 | sub utf8 { | |
59 | return 1; | |
60 | } | |
61 | ||
62 | sub can_glyph_names { | |
63 | return; | |
64 | } | |
65 | ||
66 | 1; | |
67 | ||
68 | __END__ | |
69 | ||
70 | =head1 NAME | |
71 | ||
72 | Imager::Font::W32 - font support using C<GDI> on Win32 | |
73 | ||
74 | =head1 SYNOPSIS | |
75 | ||
76 | use Imager; | |
77 | ||
78 | my $img = Imager->new; | |
79 | my $font = Imager::Font->new(face => "Arial", type => "w32"); | |
80 | ||
81 | $img->string(... font => $font); | |
82 | ||
83 | =head1 DESCRIPTION | |
84 | ||
85 | This provides font support on Win32. | |
86 | ||
87 | =head1 CAVEATS | |
88 | ||
89 | Unfortunately, older versions of Imager would install | |
90 | Imager::Font::Win32 even if Win32 wasn't available, and if no font was | |
91 | created would succeed in loading the module. This means that an | |
92 | existing Win32.pm could cause a probe success for Win32 fonts, so I've | |
93 | renamed it. | |
94 | ||
95 | =head1 AUTHOR | |
96 | ||
97 | Tony Cook <tonyc@cpan.org> | |
98 | ||
99 | =head1 SEE ALSO | |
100 | ||
101 | Imager, Imager::Font. | |
102 | ||
103 | =cut |