File Coverage

blib/lib/Win32/Exe/Resource/Icon.pm
Criterion Covered Total %
statement 21 25 84.0
branch 1 2 50.0
condition 1 2 50.0
subroutine 7 9 77.7
pod 0 6 0.0
total 30 44 68.1


line stmt bran cond sub pod time code
1             # Copyright 2004 by Audrey Tang
2              
3             package Win32::Exe::Resource::Icon;
4              
5 1     1   3285 use strict;
  1         2  
  1         37  
6 1     1   6 use base 'Win32::Exe::Resource';
  1         2  
  1         706  
7 1         400 use constant FORMAT => (
8             Width => 'C',
9             Height => 'C',
10             ColorCount => 'C',
11             _ => 'C',
12             Planes => 'v',
13             BitCount => 'v',
14             ImageSize => 'V',
15             I_RVA1 => 'v',
16             I_RVA2 => 'v',
17 1     1   7 );
  1         3  
18              
19             sub Id {
20 0     0 0 0 my ($self) = @_;
21 0         0 return $self->I_RVA1;
22             }
23              
24             sub SetId {
25 0     0 0 0 my ($self, $value) = @_;
26 0         0 return $self->SetI_RVA1($value);
27             }
28              
29             sub ImageOffset {
30 4     4 0 384 my ($self) = @_;
31 4   50     20 return $self->I_RVA1 + (($self->I_RVA2 || 0) * 65536);
32             }
33              
34             sub SetImageOffset {
35 2     2 0 707 my ($self, $value) = @_;
36 2         11 $self->SetI_RVA1($value % 65536);
37 2         15 $self->SetI_RVA2(int($value / 65536));
38             }
39              
40             sub Data {
41 4     4 0 750 my ($self) = @_;
42 4         13 return $self->parent->substr($self->ImageOffset, $self->ImageSize);
43             }
44              
45             sub dump {
46 6     6 0 754 my ($self) = @_;
47 6         19 my $parent = $self->parent;
48 6         38 my $dump = $self->SUPER::dump;
49 6 50       323 substr($dump, -2, 2, '') unless $parent->is_type('IconFile');
50 6         96 return $dump;
51             }
52              
53             1;