Provided by: libmotif-dev_2.3.8-3.1build1_amd64
NAME
XmComboBox — The ComboBox widget class "XmComboBox" "widget class" "ComboBox"
SYNOPSIS
#include <Xm/ComboBox.h>
DESCRIPTION
XmComboBox combines the capabilities of a single-line TextField widget and a List widget. It allows users to perform opoerations like typing and pasting information, and it also provides a list of possible choices that the user can select from to complete the TextField entry field. The list can either be displayed at all times or can be dropped down by the user. When the list portion of the ComboBox is hidden, users are given a visual cue (a downward-pointing arrow) next to the TextField field. The position of the arrow relative to the TextField field depends on the XmNlayoutDirection resource of the widget. This version of the ComboBox is called the "drop-down" ComboBox. Drop-down ComboBoxes are useful when screen space is limited, or when users will complete the text entry field more often by typing text than by selecting the entry field text from the list. The user can access the drop-down ComboBox in either one of two ways: • By clicking and releasing <Btn1> on the downward-pointing arrow, which pops the list up, and the list stays up. A later selection of an item in the list will cause the item to appear in the text entry field, and the list will unpost itself. • By pressing <Btn1> on the downward-pointing arrow, dragging it to a list item, and then releasing it there, which selects that item. The list disappears, and the selected item appears in the text entry field. The application provides an array of strings that fill the list. At creation time, string items can be passed to the ComboBox via an arglist. Each string becomes an item in the list, with the first string becoming the item in position 1, the second string becoming the item in position 2, and so on. The size of the list is set by specifying the number of items that are visible in the list (XmNvisibleItemCount). If the number of items in the list exceeds the number of items that are visible, a vertical scroll bar will automatically appear that allows the user to scroll through a large number of items. ComboBox creates two child widgets: a TextField widget for entering text and a ScrolledWindow containing a List for the list of items. The name of the items list itself is List, and the name of the TextField is Text. The application or user can specify resource values for these widgets in a resource file, and the application can use XtNameToWidget (specifying "*List" for the items list or "*Text" for the TextField widget) to obtain the widget IDs of the descendant widgets. At creation time, ComboBox passes appropriate resource values in the creation arglist, including XmNitems, to the items list. Note that the result of providing the XmNdestroyCallback resource in the creation arglist is unspecified. The application should use the XtAddCallback function to add callbacks to the appropriate widget (TextField or List) after creating it. ComboBox forces the following resource values on its List child: • If XmNcomboBoxType is XmCOMBO_BOX, XmNtraversalOn is forced to False. • XmNhighlightThickness is forced to 2 in a drop-down ComboBox and to 0 in other types of ComboBoxes. • XmNborderWidth is forced to 0. • XmNnavigationType is forced to XmNONE. • XmNselectionPolicy is forced to XmBROWSE_SELECT. • XmNlistSizePolicy is forced to XmVARIABLE. • XmNspacing is forced to 0. • XmNvisualPolicy is forced to XmVARIABLE. • XmNselectedPositions is forced to NULL. • XmNselectedPositionsCount is forced to 0. When XmNcomboBoxType is XmDROP_DOWN_LIST, ComboBox forces the following resource values on its TextField child: • XmNeditable is forced to False. • XmNcursorPositionVisible is forced to False. • XmNshadowThickness is forced to 0. By contrast, when XmNcomboBoxType is XmCOMBO_BOX or XmDROP_DOWN_COMBO_BOX, ComboBox forces the following resource values on its TextField child: • XmNeditable is forced to True. • XmNcursorPositionVisible is forced to True. • XmNeditMode is forced to XmSINGLE_LINE_EDIT. ComboBox always forces the values of the following resources on the TextField: • XmNnavigationType is forced to XmNONE. • XmNhighlightThickness is forced to 0. • XmNborderWidth is forced to 0. ComboBox allows a single item to be selected in two ways: by selecting the desired item from the List or by entering text into the TextField. ComboBox does not automatically select a list item if the user types that string into the TextField. It selects the item when the user presses KActivate or moves the focus. ComboBox supports the Browse Select selection model of List (see the XmList reference page for a description of this model), so selections are mutually exclusive. Selecting an item from the list causes that item to be displayed in the TextField portion of the ComboBox. If an application sets the XmNvalue resource of TextField, that string is shown in the TextField. If the application has not provided any list items, or if there is no current selection, the TextField is empty. The TextField in the ComboBox widget can be either editable or noneditable, depending on the value of the XmNcomboBoxType resource. If the TextField is editable, the user can type into it. When the user presses the Return key, the ComboBox will compare the typed entry to the items in the List. If there is an exact match, then the matched List item is selected. If the application wishes to validate the entered text (for example, to ensure that the typed selection is a valid one), it can do so by setting XmNmodifyVerifyCallback on the TextField widget. If the TextField is noneditable, typing text may invoke a matching algorithm that will attempt to match the entered text with items in the list. The specific matching algorithm applied, which may be none, is determined by the value of the XmNmatchBehavior resource in ComboBox, which can be either XmNONE or XmQUICK_NAVIGATE. A value of XmNONE indicates that no matching algorithm will occur. A value of XmQUICK_NAVIGATE indicates that when the List widget has focus, one-character navigation is supported. In this algorithm, if the typed character is the initial character of some item in the List, this algorithm causes that item to be navigated to and selected, and the item is displayed in the TextField. Subsequently typing the same character will cycle among the items with the same first character. Regardless of the selection mechanism used (either selected directly from the List or typed into the TextField), when an item in the List is selected, that item is highlighted in the List. In addition, the selected item is displayed in the TextField of the ComboBox. If the user performs an action that would move focus away from ComboBox, or selects a List item, the XmNselectionCallback callbacks are invoked to notify the application of the current contents of the TextField (or choice). The application then takes whatever action is required based on those contents (or choice). ComboBox uses the XmQTspecifyRenderTable trait and holds the XmQTaccessTextual trait. Classes XmComboBox inherits behavior, resources, and traits from Core, Composite, and XmManager classes. The class pointer is xmComboBoxWidgetClass. The class name is XmComboBox. New Resources The following table defines a set of widget resources used by the programmer to specify data. The programmer can also set the resource values for the inherited classes to set attributes for this widget. To reference a resource by name or by class in a .Xdefaults file, remove the XmN or XmC prefix and use the remaining letters. To specify one of the defined values for a resource in a .Xdefaults file, remove the Xm prefix and use the remaining letters (in either lowercase or uppercase, but include any underscores between words). The codes in the access column indicate if the given resource can be at creation time (C), set by using XtSetValues (S), retrieved by using XtGetValues (G), or is not applicable (N/A). ┌───────────────────────────────────────────────────────────────────────────────────────┐ --
ERRORS/WARNINGS
The toolkit will display a warning if the application tries to set the value of XmNlist or the XmNtextField resource, which are read-only (marked G in the resource table).
RELATED
Composite(3), Core(3), XmCreateComboBox(3), XmList(3), XmManager(3), XmTextField(3), XmVaCreateComboBox(3), and XmVaCreateManagedComboBox(3). XmComboBox(3)