Henning wrote:
HOWEVER, if I remove the -multisel statement from the ListBox
defintion, items *do* get selected (only one at a time, though,
obviously)! Is this a bug? And is there a known workaround for it?
Surely I cannot be the first person to try selecting multiple
items from within program code! :-)
Working piece of code:
----------
=head2 controlSelect()
Sync the ListBox with the selected controls.
Return 1 on success, else 0.
=cut
sub controlSelect { my $self = shift; my $pkg = ref($self);
my $check = ( keys %{$self->objCanvas()->rhControlSelected()} ) ?
0 : 1;
$self->winMain()->lbControl()->SendMessage(0x0185, $check,
0); #LB_SETSEL
my $i = 1;
for my $objControl (@{$self->objDesign()->raControl()}) {
$self->winMain()->lbControl()->SendMessage(0x0185,
$objControl->designIsSelected(),
$i); #LB_SETSEL
$i++;
}
return(1);
}
----------
It appears that selecting a single line vs. multiple lines are two
different things. Look at the SendMessage call. Note: The index is 0-based,
I just manage the first item in my list separate from the others.
Ideally, this should go into a single sub and eventually into Win32::GUI.
Spreading custom messages and constants in your program is both unreadable
and bad for maintenance in the long run.
/J
------ ---- --- -- -- -- - - - - -
Johan Lindström Boss Casinos
Sourcerer [EMAIL PROTECTED]
http://www.bahnhof.se/~johanl/
If the only tool you have is a hammer,
everything tends to look
like a nail