Hello,
I tried several ways to disable MacPerl's menus at runtime
which were already discussed in this list.
With the following script I'm partially successful.
File|New and File|Open is disabled. I cannot deactivate
Print and Save.
Edit is disabled completely. The "MacPerl" Window menu item
is enabled. I guess I could look into the MacPerl source but
have no time at the moment.
Any thoughts appreciated,
Axel.
#!perl -w
use strict;
use Mac::Menus;
use Mac::Events;
my $macperl_menus = {
# Apple
# 128
# File
# 1 - New
# 2 - Open
# 12 - Stop Script
129 => [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11],
# Edit
130 => [ 0 ],
# Window
131 => [ 0 ],
# Script
132 => [ 0 ],
# Editor
133 => [ 0 ],
};
print "disabling ...\n";
for my $m ( keys %$macperl_menus ) {
my $menu = GetMenuHandle $m;
if( $menu ) {
if( $macperl_menus->{$m}->[0] == 0 ) {
DisableItem $menu; DisableItem $menu, 0;
}
else {
for my $i ( @{$macperl_menus->{$m}} ) {
DisableItem $menu, $i;
}
}
}
}
DrawMenuBar;
pause( 10 );
print "enabling ...\n";
for my $m ( keys %$macperl_menus ) {
my $menu = GetMenuHandle $m;
if( $menu ) {
if( $macperl_menus->{$m}->[0] == 0 ) {
EnableItem $menu; EnableItem $menu, 0
}
else {
for my $i ( @{$macperl_menus->{$m}} ) {
EnableItem $menu, $i;
}
}
}
}
DrawMenuBar;
print "done.\n";
exit;
sub pause {
my ($time) = @_;
my $start = time;
WaitNextEvent until time > ($start + $time);
}
__END__