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
|
# Copyright 2004 by Audrey Tang <cpan@audreyt.org>
package Win32::Exe::ResourceEntry::Id;
use strict;
use base 'Win32::Exe::ResourceEntry';
use constant SUBFORMAT => (
Id => 'V',
);
use constant RESOURCE_TYPES => [qw(
_ CURSOR BITMAP ICON MENU
DIALOG STRING FONTDIR FONT ACCELERATOR
RCDATA MESSAGETABLE GROUP_CURSOR _ GROUP_ICON
_ VERSION DLGINCLUDE _ PLUGPLAY
VXD ANICURSOR ANIICON HTML MANIFEST
)];
use constant RT_TO_ID => {
map { ('RT_'.RESOURCE_TYPES->[$_] => $_) }
(0 .. $#{+RESOURCE_TYPES})
};
use constant ID_TO_RT => { reverse %{+RT_TO_ID} };
sub Name {
my ($self) = @_;
my $id = $_[0]->Id;
$id = $self->id_to_rt($id) if $self->parent->depth < 1;
return "#$id";
}
sub SetName {
my ($self, $name) = @_;
$name =~ s/^#//;
$self->SetId( $self->rt_to_id($name) );
}
sub id_to_rt {
my ($self, $id) = @_;
return(+ID_TO_RT->{$id} || $id);
}
sub rt_to_id {
my ($self, $rt) = @_;
return(+RT_TO_ID->{$rt} || $rt);
}
1;
|