Routines (alphabetical) > Routines: C > CW_COLORSEL

# CW_COLORSEL

The CW_COLORSEL function creates a compound widget that displays all the colors in the current colormap in a 16 x 16 (320 x 320 pixels) grid. To select a color index, the user moves the mouse pointer over the desired color square and presses any mouse button. Alternatively, the color index can be selected by moving one of the three sliders provided around the grid.

This routine is written in the IDL language. Its source code can be found in the file `cw_colorsel.pro` in the `lib` subdirectory of the IDL distribution.

### Using CW_COLORSEL

The command:

WIDGET_CONTROL, widgetID, SET_VALUE = -1

informs the widget to initialize itself and redraw. It should be called when any of the following happen:

- The widget is realized
- The widget needs redrawing
- The brightest or darkest color has changed

To set the current color index, use the command:

WIDGET_CONTROL, widgetID, SET_VALUE = index

To retrieve the current color index and store it in the variable `var`, use the command:

WIDGET_CONTROL, widgetID, GET_VALUE = var

## Syntax

Result = CW_COLORSEL( Parent [, /FRAME] [, TAB_MODE=value][, UNAME=string] [, UVALUE=value] [, XOFFSET=value] [, YOFFSET=value] )

## Return Value

This function returns the widget ID of the newly-created color index widget.

## Arguments

### Parent

The widget ID of the parent widget.

## Keywords

### FRAME

If set, a frame is drawn around the widget.

### TAB_MODE

Set this keyword to one of the values shown in the table below to determine how the widget hierarchy can be navigated using the Tab key. The TAB_MODE setting is inherited by lower-level bases and child widgets unless it is explicitly set on an individual widget.

Note: It is not possible to tab to disabled (SENSITIVE=0) or hidden (MAP=0) widgets.

Valid settings are:

Value | Description
0 | Disable navigation onto or off of the widget. This is the default. Child widgets automatically inherit the tab mode of the parent base as described in Inheriting the TAB_MODE Value.
1 | Enable navigation onto and off of the widget.
2 | Navigate only onto the widget.
3 | Navigate only off of the widget.

Note: In widget applications on the UNIX platform, the Motif library controls what widgets are brought into and released from focus using tabbing. The TAB_MODE keyword value is always zero, and any attempt to change it is ignored when running a widget application on the UNIX platform. Tabbing behavior may vary significantly between UNIX platforms; do not rely on a particular behavior being duplicated on all UNIX systems.

### UNAME

Set this keyword to a string that can be used to identify the widget in your code. You can associate a name with each widget in a specific hierarchy, and then use that name to query the widget hierarchy and get the correct widget ID.

To query the widget hierarchy, use the FIND_BY_UNAME keyword to the WIDGET_INFO function. The UNAME should be unique to the widget hierarchy; FIND_BY_UNAME returns the ID of the first widget with the specified name.

### UVALUE

The “user value” to be assigned to the widget.

### XOFFSET

The X offset position

### YOFFSET

The Y offset position

## Widget Events Returned by the CW_COLORSEL Widget

This widget generates event structures with the following definition:

Event = {COLORSEL_EVENT, ID: base, TOP: ev.top, HANDLER: 0L, VALUE:c}

The VALUE field is the color index selected.

## Version History

Pre 4.0 | Introduced
6.1 | Added TAB_MODE keyword

## See Also

CW_CLR_INDEX