Thanks for the help with popup menus Chris.
> Here's something I found on the list:
> http://bumppo.net/lists/macperl-toolbox/2000/10/msg00001.html
That revealed the trick. Below is a variant which also works. I'm trying to
get a submenu of the popup to work too. I'll post an attempt separately.
#!perl
use Mac::Windows;
use Mac::Events;
use Mac::Controls;
use Mac::Menus;
$w_r = Rect->new(75, 75, 275, 225);
$win = MacWindow->new($w_r, 'WinTitle', 1, floatProc(), 1);
$menuID = 2048;
$m1 = MacHierMenu->new($menuID, 'MenuTitle');
$m1->add_item('A');
$m1->add_item('B');
$m1->add_item('C');
$m1->insert;
$c_r = new Rect 10, 10, 230, 30;
$c = $win->new_control($c_r,'PopTitle', 1, popupVariableWidth,
$menuID, 60, popupMenuProc
);
SetControlValue($c->{control}, 2);
$c->sethook('hit', sub {
$choice = GetControlValue($c->{control});
MacPerl::Answer($choice);
}
);
WaitNextEvent() while ($win->window) ;
END {
$win->dispose if (defined($win));
$m1->dispose if (defined($m1));
DisposeControl($c->{control}) if defined $c;
}
# NB The rectangle for the popup does not do quite what you'd expect:
# the bottom determines the height position of "title";
# the top seems to do nothing, but presumably should allow enough room;
# the left side determines the start of the "title" field;
# the right side limits the rightmost end of the popup;
# the end of the "title" field is determined by param 6;
# the width of the popup is determined by the longest string.
# (Thanks to <ajf(at)afco.demon.co.uk>)