Language > Widgets > About Table Widgets > Table Widget Selection Modes

# Table Widget Selection Modes

Groups of table cells can be selected either manually (using the mouse or keyboard) or programmatically. The table widget supports two selection modes — standard and disjoint. Both modes can be used either by an interactive table user or by the IDL programmer. See Table Widget Data Retrieval for information on retrieving data from various types of selections.

## Standard Selection Mode

In standard selection mode, exactly one rectangular area (of a single cell or multiple cells) can be selected at a given time.

### Interactive Selection

Interactive users select cells by clicking the left mouse button on a cell, holding the mouse button down, and dragging the mouse until the desired cells are selected. Selections can be extended by holding down the Shift key and selecting additional cells.

### Programmatic Selection

Programmers select cells by specifying a four-element array, of the form [ left, top, right, bottom ], as the value of the SET_TABLE_SELECT keyword to WIDGET_CONTROL.

## Disjoint Selection Mode

In disjoint selection mode, multiple rectangular areas can be selected at once. In order to place a table in disjoint selection mode, the programmer must either specify the DISJOINT_SELECTION keyword to WIDGET_TABLE when creating the table, or set the TABLE_DISJOINT_SELECTION keyword to WIDGET_CONTROL after the table has been created.

### Interactive Selection

Interactive users select multiple disjoint cell regions by:

1. Creating an initial selection as described above.
2. Holding down the Control key and selecting an unselected cell by clicking and holding down the left mouse button.
3. Releasing the Control key (while continuing to hold the mouse button down) and dragging the mouse until the next desired region is selected.
4. Repeating as necessary.

Selections can be extended by holding down the Shift key and selecting additional cells.

### Programmatic Selection

Programmers create select multiple disjoint cell regions by providing a 2 x n element array of column/row pairs specifying the cells to act upon as the value of the SET_TABLE_SELECT keyword to WIDGET_CONTROL.