XmDropDown(library call) XmDropDown(library call)
NAME
XmDropDown -- The DropDown widget class
SYNOPSIS
#include <Xm/DropDown.h>
DESCRIPTION
The DropDown widget allows the user to select elements from a list of
choices, and enter their own values in a text widget. To conserve
screen space, the list of choices is shown only when the user selects
the down arrow button. The choices may then be selected from this
list. If the list widget is in Browse Select mode (the default) or
Single Select mode, then the list will automatically be removed when
the user selects an item in the list. When the list is in other
modes, multiple items may be selected and the list may be popped down
by either another click on the arrow button, a click outside the list
or double-clicking an item. When using keyboard traversal, the list
may be popped down by selecting the arrow button or Alt - down arrow,
and popped back up by typing either the osfActivate key, a carriage
return, or Alt - up arrow. In any case, when the list is removed the
item or items that were selected will be placed in the text widget
separated by commas. Typing the escape key when the list is up,
cancels the list popup, restoring the DropDown widget to the state it
was in before the list was popped up. If the text field area is non-
editable, clicking anywhere in the text field the list will also pop
down.
Resources are available to change the margin sizes, the location of
the left edge of the popup list, whether or not the label is shown,
whether the text field widget may be edited, and whether or not the
text in the list is verified against the choices available in the
list. By setting resources that occur in the children of the DropDown
widget, the contents of the list, the number of items visible in the
list, the initial value of the text field, and the value of the label
may be set or changed dynamically.
If a developer wishes the popup list's shell to be resizable, they
should set the allowShellResize to True at creation time.
Classes
XmDropDown inherits behavior, resources, and traits from
Core,
Composite, and
XmManager classes.
The class pointer is
xmDropDownWidgetClass.
The class name is
XmDropDown.
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).
+---------------------------------------------------------------------------------------+
|
XmDropDown Resource Set |
|
Name |
Class |
Type |
Default |
Access |
+----------------------------+---------------------+----------------+----------+--------+
|XmNcustomizedCombinationBox | XmCBoolean | Boolean | False | CSG |
+----------------------------+---------------------+----------------+----------+--------+
|XmNeditable | XmCBoolean | Boolean | True | CSG |
+----------------------------+---------------------+----------------+----------+--------+
|XmNhorizontalMargin | XmCMargin | Dimension | 2 | CSG |
+----------------------------+---------------------+----------------+----------+--------+
|XmNitemCount | list | int | 0 | CSG |
+----------------------------+---------------------+----------------+----------+--------+
|XmNitems | list | XmStringTable | NULL | CSG |
+----------------------------+---------------------+----------------+----------+--------+
|XmNlabelString | label | XmString | "label" | CSG |
+----------------------------+---------------------+----------------+----------+--------+
|XmNpopupCursor | XmCCursor | Cursor | left_ptr | CSG |
+----------------------------+---------------------+----------------+----------+--------+
|XmNpopupOffset | MxCPopupOffset | int | 15 | CSG |
+----------------------------+---------------------+----------------+----------+--------+
|XmNpopupShellWidget | XmCWidget | Widget | NULL | CSG |
+----------------------------+---------------------+----------------+----------+--------+
|XmNshowLabel | XmCBoolean | Boolean | True | CSG |
+----------------------------+---------------------+----------------+----------+--------+
|XmNupdateShellCallback | XmCCallback | XtCallbackList | NULL | CSG |
+----------------------------+---------------------+----------------+----------+--------+
|XmNupdateTextCallback | XmCCallback | XtCallbackList | NULL | CSG |
+----------------------------+---------------------+----------------+----------+--------+
|XmNuseTextField | XmCUseTextField | Boolean | True | CSG |
+----------------------------+---------------------+----------------+----------+--------+
|XmNvalue | text | String | "" | CSG |
+----------------------------+---------------------+----------------+----------+--------+
|XmNverify | XmCVerify | Boolean | True | CSG |
+----------------------------+---------------------+----------------+----------+--------+
|XmNverifyTextCallback | XmCCallback | XtCallbackList | NULL | CSG |
+----------------------------+---------------------+----------------+----------+--------+
|XmNverticalMargin | XmCMargin | Dimension | 2 | CSG |
+----------------------------+---------------------+----------------+----------+--------+
|XmNvisibleItemCount | XmCVisibleItemCount | int | 0 | CSG |
+----------------------------+---------------------+----------------+----------+--------+
+----------------------------+---------------------+----------------+----------+--------+
XmNcustomizedCombinationBox If this resource is True then the widget will not
automatically create a popup shell and list widget. This
resource can be used, as the name implies, to create a
custom combination box that has something other than a list
in it. If this resource is true then a shell must be
provided to the DropDown widget via the popupShellWidget
resource. Just before the shell is popped up the
updateShellCallback is called. Just after the shell is
popped down the updateTextCallback is called. If verify is
true then the verifyTextCallback is called when the combo
box needs to verify the contents of the text widget against
the allowable values in the custom shell.
XmNeditable This boolean value determines whether the user is allowed
to type into TextField widget of the DropDown widget. If
this value is False, selecting the text field will popup
the combo box list
XmNhorizontalMargin Specifies the horizontal spacing between the child widgets
and the boundary of the DropDown widget.
XmNverticalMargin Specifies the vertical spacing between the child widgets
and the boundary of the DropDown widget.
XmNitemCount The number of items in the popup list.
XmNitems The list of all choice that will be displayed in the popup
list.
XmNlabelString The string displayed as the label of the DropDown widget.
XmNpopupCursor The cursor to display to the user when the DropDown's list
is popped up. See X Window System, Robert Scheiffler et
al., Appendix B, for choices.
XmNpopupOffset The amount of space in pixels between the left edge of the
Text widget and the left edge of the list when the list is
displayed. Positive values mean the text's left edge is
farther to the left, negative values mean the list's edge
is farther to the left. If this is a non-custom DropDown
widget the right edge of the text and the right edge of the
arrow button will always line up.
XmNpopupShellWidget The widget identifier for the shell that is popped up when
the arrow is clicked. If customizedCombinationBox is False
then this widget is automatically created by the DropDown
widget.
XmNshowLabel A boolean value that specifies whether or not to display
the DropDown Label widget.
XmNupdateShellCallback XmNupdateTextCallback The callback routine to call when either the shell widget
contents or the Text widget need to be updated to
correspond with the other. The shell is updated just before
it is popped up. The text is updated just after the shell
is popped down. If customizedComboBox is False then the
updates are done automatically by the combo box. These
routines are called to inform the application that an
action has been taken, in case it would like to do any
further processing.
XmNuseTextField A boolean value that specifies if an XmTextField or an
XmText widget should be used for the text entry portion of
the DropDown widget.
XmNvalue The string displayed in the Text widget.
XmNverify If this resource is true the DropDown widget will verify
its value against the list whenever it loses focus or the
user types <Carriage Return>. If the verification fails, an
XtWarning is generated with a name of XmNtextVerifyFailed.
To trap this message register an XtWarningMsgHandler.
XmNverifyTextCallback This routine is called whenever the Text widget's contents
may need to be verified against the popup shell's contents.
If the customizedComboBox resource is False then the
DropDown widget has already performed the verification when
this routine is called.
XmNvisibleItemCount The number of items visible in the popup list at one time.
Children
The DropDown is composed of many sub-widgets. Most of the information
displayed to the user is set through these sub widgets. Most values
passed to this widget through the argument list at creation time or
via set values are passed to each of this widget's children. Get
values requests must be made on a child by child basis. The children
of the DropDown are listed below. The OSF/Motifdocumentation should
be consulted for an exhaustive set of resources for each child. A
partial list of the most common resources are listed here for
convenience.
XmDropDown comboBox
XmLabel label
XmTextField text
XmArrowButton arrow
OverrideShell popupShell
XmScrolledWindow listSW
XmScrollBar ListvScrollBar
XmScrollBar ListhScrollBar
XmList list
The popup shell and its children are only created when
customizedCombinationBox is False.
Inherited Resources
XmDropDown inherits behavior and resources from the superclasses
described in the following tables. For a complete description of
each resource, refer to the reference page for that superclass.
+----------------------------------------------------------------------------------------------------+
|
XmManager Resource Set |
|
Name |
Class |
Type |
Default |
Access |
+------------------------+-----------------------+-------------------+----------------------+--------+
|XmNbottomShadowColor | XmCBottomShadowColor | Pixel | dynamic | CSG |
+------------------------+-----------------------+-------------------+----------------------+--------+
|XmNbottomShadowPixmap | XmCBottomShadowPixmap | Pixmap | XmUNSPECIFIED_PIXMAP | CSG |
+------------------------+-----------------------+-------------------+----------------------+--------+
|XmNforeground | XmCForeground | Pixel | dynamic | CSG |
+------------------------+-----------------------+-------------------+----------------------+--------+
|XmNhelpCallback | XmCCallback | XtCallbackList | NULL | C |
+------------------------+-----------------------+-------------------+----------------------+--------+
|XmNhighlightColor | XmCHighlightColor | Pixel | dynamic | CSG |
+------------------------+-----------------------+-------------------+----------------------+--------+
|XmNhighlightPixmap | XmCHighlightPixmap | Pixmap | dynamic | CSG |
+------------------------+-----------------------+-------------------+----------------------+--------+
|XmNinitialFocus | XmCInitialFocus | Widget | NULL | CSG |
+------------------------+-----------------------+-------------------+----------------------+--------+
|XmNlayoutDirection | XmCLayoutDirection | XmDirection | dynamic | CG |
+------------------------+-----------------------+-------------------+----------------------+--------+
|XmNnavigationType | XmCNavigationType | XmNavigationType | XmTAB_GROUP | CSG |
+------------------------+-----------------------+-------------------+----------------------+--------+
|XmNpopupHandlerCallback | XmCCallback | XtCallbackList | NULL | C |
+------------------------+-----------------------+-------------------+----------------------+--------+
|XmNshadowThickness | XmCShadowThickness | Dimension | 0 | CSG |
+------------------------+-----------------------+-------------------+----------------------+--------+
|XmNstringDirection | XmCStringDirection | XmStringDirection | dynamic | CG |
+------------------------+-----------------------+-------------------+----------------------+--------+
|XmNtopShadowColor | XmCTopShadowColor | Pixel | dynamic | CSG |
+------------------------+-----------------------+-------------------+----------------------+--------+
|XmNtopShadowPixmap | XmCTopShadowPixmap | Pixmap | dynamic | CSG |
+------------------------+-----------------------+-------------------+----------------------+--------+
|XmNtraversalOn | XmCTraversalOn | Boolean | True | CSG |
+------------------------+-----------------------+-------------------+----------------------+--------+
|XmNunitType | XmCUnitType | unsigned char | dynamic | CSG |
+------------------------+-----------------------+-------------------+----------------------+--------+
|XmNuserData | XmCUserData | XtPointer | NULL | CSG |
+------------------------+-----------------------+-------------------+----------------------+--------+
+------------------------+-----------------------+-------------------+----------------------+--------+
+-----------------------------------------------------------------------+
|
Composite Resource Set |
|
Name |
Class |
Type |
Default |
Access |
+------------------+-------------------+-------------+---------+--------+
|XmNchildren | XmCReadOnly | WidgetList | NULL | G |
+------------------+-------------------+-------------+---------+--------+
|XmNinsertPosition | XmCInsertPosition | XtOrderProc | NULL | CSG |
+------------------+-------------------+-------------+---------+--------+
|XmNnumChildren | XmCReadOnly | Cardinal | 0 | G |
+------------------+-------------------+-------------+---------+--------+
+------------------+-------------------+-------------+---------+--------+
+---------------------------------------------------------------------------------------------------------------+
|
Core Resource Set |
|
Name |
Class |
Type |
Default |
Access |
+------------------------------+-------------------------------+----------------+----------------------+--------+
|XmNaccelerators | XmCAccelerators | XtAccelerators | dynamic | CSG |
+------------------------------+-------------------------------+----------------+----------------------+--------+
|XmNancestorSensitive | XmCSensitive | Boolean | dynamic | G |
+------------------------------+-------------------------------+----------------+----------------------+--------+
|XmNbackground | XmCBackground | Pixel | dynamic | CSG |
+------------------------------+-------------------------------+----------------+----------------------+--------+
|XmNbackgroundPixmap | XmCPixmap | Pixmap | XmUNSPECIFIED_PIXMAP | CSG |
+------------------------------+-------------------------------+----------------+----------------------+--------+
|XmNborderColor | XmCBorderColor | Pixel | XtDefaultForeground | CSG |
+------------------------------+-------------------------------+----------------+----------------------+--------+
|XmNborderPixmap | XmCPixmap | Pixmap | XmUNSPECIFIED_PIXMAP | CSG |
+------------------------------+-------------------------------+----------------+----------------------+--------+
|XmNborderWidth | XmCBorderWidth | Dimension | 0 | CSG |
+------------------------------+-------------------------------+----------------+----------------------+--------+
|XmNcolormap | XmCColormap | Colormap | dynamic | CG |
+------------------------------+-------------------------------+----------------+----------------------+--------+
|XmNdepth | XmCDepth | int | dynamic | CG |
+------------------------------+-------------------------------+----------------+----------------------+--------+
|XmNdestroyCallback | XmCCallback | XtCallbackList | NULL | C |
+------------------------------+-------------------------------+----------------+----------------------+--------+
|XmNheight | XmCHeight | Dimension | dynamic | CSG |
+------------------------------+-------------------------------+----------------+----------------------+--------+
|XmNinitialResourcesPersistent | XmCInitialResourcesPersistent | Boolean | True | C |
+------------------------------+-------------------------------+----------------+----------------------+--------+
|XmNmappedWhenManaged | XmCMappedWhenManaged | Boolean | True | CSG |
+------------------------------+-------------------------------+----------------+----------------------+--------+
|XmNscreen | XmCScreen | Screen * | dynamic | CG |
+------------------------------+-------------------------------+----------------+----------------------+--------+
|XmNsensitive | XmCSensitive | Boolean | True | CSG |
+------------------------------+-------------------------------+----------------+----------------------+--------+
|XmNtranslations | XmCTranslations | XtTranslations | dynamic | CSG |
+------------------------------+-------------------------------+----------------+----------------------+--------+
|XmNwidth | XmCWidth | Dimension | dynamic | CSG |
+------------------------------+-------------------------------+----------------+----------------------+--------+
|XmNx | XmCPosition | Position | 0 | CSG |
+------------------------------+-------------------------------+----------------+----------------------+--------+
|XmNy | XmCPosition | Position | 0 | CSG |
+------------------------------+-------------------------------+----------------+----------------------+--------+
+------------------------------+-------------------------------+----------------+----------------------+--------+
Callback Information
None of the DropDown's callback procedures have any call data
currently defined for them. The widget passed to each of these
functions is the DropDown widget.
void (Callback)(Widget cbw, XtPointer client_data, XtPointer unused)
cbw This is the widget identifier of the DropDown widget.
client_data The client data passed to this widget by the
application programmer.
unused This value is undefined.
Geometry Management
The DropDown widget lays out its children (the label, text and arrow)
in a row. The amount of space they are each allocated when the
DropDown is not allowed to be the exact size it desires is determined
using the following rules:
1. The arrow is always given its requested size.
2. If the combo box is bigger than it wants to be all extra space
is given to the text widget.
3. If the combo box is smaller that is wants to be then the text
and label widgets are each sized smaller than they desire in
exactly the same ratio.
For example:
If the amount of space for the label and text is 100 pixels and
the label wants to be 50 pixels wide and the text would like to
be 100 pixels wide then the label will get 34 pixels and the
text 66.
The popup shell widget is sized such that the width of the
scrolled list widget equals the width of the text widget minus
the value of the "popupOffset" resource. If the popup shell
resides in a customized combination box, however, it is allowed
to be whatever size the child of the popup shell would like to
be.
RELATED
Composite(3),
Core(3),
XmCreateDropDown(3),
XmDropDownGetArrow(3),
XmDropDownGetLabel(3),
XmDropDownGetList(3),
XmDropDownGetText(3),
XmDropDownGetValue(3),
XmList(3),
XmManager(3),
XmTextField(3),
XmVaCreateDropDown(3), and
XmVaCreateManagedDropDown(3).
COPYRIGHT
Copyright (c) 1992 by Integrated Computer Solutions, Inc.
XmDropDown(library call)