summaryrefslogtreecommitdiff
path: root/Master/tlpkg/tlperl/lib/Win32/Exe/ResourceEntry/Id.pm
diff options
context:
space:
mode:
Diffstat (limited to 'Master/tlpkg/tlperl/lib/Win32/Exe/ResourceEntry/Id.pm')
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Win32/Exe/ResourceEntry/Id.pm47
1 files changed, 47 insertions, 0 deletions
diff --git a/Master/tlpkg/tlperl/lib/Win32/Exe/ResourceEntry/Id.pm b/Master/tlpkg/tlperl/lib/Win32/Exe/ResourceEntry/Id.pm
new file mode 100755
index 00000000000..39e35b4000d
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Win32/Exe/ResourceEntry/Id.pm
@@ -0,0 +1,47 @@
+# $File: //local/member/autrijus/Win32-Exe/lib/Win32/Exe/ResourceEntry/Id.pm $ $Author: autrijus $
+# $Revision: #6 $ $Change: 1130 $ $Date: 2004-02-17T15:40:29.640821Z $
+
+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;