O'Reilly logo

Learning Perl/Tk by Nancy Walsh

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

7.10. Selection Methods

The curselectionmethod, discussed in the preceding section, only tells you what the user has selected. You can also change the selection by using a form of the selection method.

7.10.1. Selecting Items

To select a range of items in a listbox, you can use the "set" form of the selection method (selectionSet). selectionSet takes either a single index or a range. Any items not in the range are not affected. If you use a range, the first index must be less than or equal to the last index. Here are some examples:

# select everything
$lb->selectionSet(0, 'end' );
#select the first item
$lb->selectionSet(0);

Even if you have used -selectmode to limit the selection to only one item, you can force more than one item to be selected by using selectionSet(...).

7.10.2. Unselecting Items

To clear any selections in the listbox, use the "clear" form of the selection method (selectionClear). Pass in an index or a range or indexes from which to clear the selection. For instance, to remove all the selections in the listbox, you would do the following:

$lb->selectionClear(0, "end");

Any indexes outside the specified range will not be unselected—this allows you to unselect one item at a time. You can also clear the selection from just one item:

$lb->selectionClear("end");

7.10.3. Testing for Selection

To test to see if a specific index is already selected, use the "includes" form of selection (selectionIncludes). Calling selectionIncludes returns 1 if the item at the specified ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required