[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: IDL listbox



Stuart Norton wrote:
> 
> Sorry if this is an obvious one, but I've been trying for too long now...
> 
> How do you get a list of all selected items from a widget_listbox?  I have
> a listbox which I want to handle multiple selections.  I was originally
> going to use the event handler: just toggle the settings of each item
> which was clicked... but (at least in Unix) when you single click without
> holding shift or control, all previous selections in a listbox are
> de-selected.  I don't know how to keep track of which items are
> de-selected like this.  (There doesn't seem to be an event for that.)
> 
> Another possibility was the OnSelectValue parameter to widget_listbox; I
> created a procedure to remember if any given item was selected, but
> again I have the problem that de-selection is not handled.
> 
> There ought to be an easy way, say from widget_control, to return an array
> of indices which are selected at the moment, or something like that.  Why
> can't I find such a thing??


This is starting to be the #2 all-time FAQ, after color decomposition,
of course.  For whatever inane reasons (most likely because the
functionality was added only a few releases ago), getting the indices of
multiply selected list widgets requires a visit to our friend
widget_info:

list=widget_info(self.list,/LIST_SELECT)

Now, why this functionality is here instead of 

widget_control,self.list,get_value=list

it's best not to ask.  If you want the items on the list themselves,
you'll have to store them somewhere for access.

JD