]> git.imager.perl.org - imager.git/blob - W32/W32.pm
update desired debian packages
[imager.git] / W32 / W32.pm
1 package Imager::Font::W32;
2 use strict;
3 use Imager;
4 use vars qw($VERSION @ISA);
5 @ISA = qw(Imager::Font);
6
7 BEGIN {
8   $VERSION = "0.90";
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