XmDropDown - Man Page

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
NameClassTypeDefaultAccess





XmNcustomizedCombinationBoxXmCBooleanBooleanFalseCSG





XmNeditableXmCBooleanBooleanTrueCSG





XmNhorizontalMarginXmCMarginDimension2CSG





XmNitemCountlistint0CSG





XmNitemslistXmStringTableNULLCSG





XmNlabelStringlabelXmString"label"CSG





XmNpopupCursorXmCCursorCursorleft_ptrCSG





XmNpopupOffsetMxCPopupOffsetint15CSG





XmNpopupShellWidgetXmCWidgetWidgetNULLCSG





XmNshowLabelXmCBooleanBooleanTrueCSG





XmNupdateShellCallbackXmCCallbackXtCallbackListNULLCSG





XmNupdateTextCallbackXmCCallbackXtCallbackListNULLCSG





XmNuseTextFieldXmCUseTextFieldBooleanTrueCSG





XmNvaluetextString""CSG





XmNverifyXmCVerifyBooleanTrueCSG





XmNverifyTextCallbackXmCCallbackXtCallbackListNULLCSG





XmNverticalMarginXmCMarginDimension2CSG





XmNvisibleItemCountXmCVisibleItemCountint0CSG





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
NameClassTypeDefaultAccess





XmNbottomShadowColorXmCBottomShadowColorPixeldynamicCSG





XmNbottomShadowPixmapXmCBottomShadowPixmapPixmapXmUNSPECIFIED_PIXMAPCSG





XmNforegroundXmCForegroundPixeldynamicCSG





XmNhelpCallbackXmCCallbackXtCallbackListNULLC





XmNhighlightColorXmCHighlightColorPixeldynamicCSG





XmNhighlightPixmapXmCHighlightPixmapPixmapdynamicCSG





XmNinitialFocusXmCInitialFocusWidgetNULLCSG





XmNlayoutDirectionXmCLayoutDirectionXmDirectiondynamicCG





XmNnavigationTypeXmCNavigationTypeXmNavigationTypeXmTAB_GROUPCSG





XmNpopupHandlerCallbackXmCCallbackXtCallbackListNULLC





XmNshadowThicknessXmCShadowThicknessDimension0CSG





XmNstringDirectionXmCStringDirectionXmStringDirectiondynamicCG





XmNtopShadowColorXmCTopShadowColorPixeldynamicCSG





XmNtopShadowPixmapXmCTopShadowPixmapPixmapdynamicCSG





XmNtraversalOnXmCTraversalOnBooleanTrueCSG





XmNunitTypeXmCUnitTypeunsigned chardynamicCSG





XmNuserDataXmCUserDataXtPointerNULLCSG





Composite Resource Set
NameClassTypeDefaultAccess





XmNchildrenXmCReadOnlyWidgetListNULLG





XmNinsertPositionXmCInsertPositionXtOrderProcNULLCSG





XmNnumChildrenXmCReadOnlyCardinal0G





Core Resource Set
NameClassTypeDefaultAccess





XmNacceleratorsXmCAcceleratorsXtAcceleratorsdynamicCSG





XmNancestorSensitiveXmCSensitiveBooleandynamicG





XmNbackgroundXmCBackgroundPixeldynamicCSG





XmNbackgroundPixmapXmCPixmapPixmapXmUNSPECIFIED_PIXMAPCSG





XmNborderColorXmCBorderColorPixelXtDefaultForegroundCSG





XmNborderPixmapXmCPixmapPixmapXmUNSPECIFIED_PIXMAPCSG





XmNborderWidthXmCBorderWidthDimension0CSG





XmNcolormapXmCColormapColormapdynamicCG





XmNdepthXmCDepthintdynamicCG





XmNdestroyCallbackXmCCallbackXtCallbackListNULLC





XmNheightXmCHeightDimensiondynamicCSG





XmNinitialResourcesPersistentXmCInitialResourcesPersistentBooleanTrueC





XmNmappedWhenManagedXmCMappedWhenManagedBooleanTrueCSG





XmNscreenXmCScreenScreen *dynamicCG





XmNsensitiveXmCSensitiveBooleanTrueCSG





XmNtranslationsXmCTranslationsXtTranslationsdynamicCSG





XmNwidthXmCWidthDimensiondynamicCSG





XmNxXmCPositionPosition0CSG





XmNyXmCPositionPosition0CSG





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.

Referenced By

XmCreateDropDown(3), XmDropDownGetChild(3), XmVaCreateDropDown(3).