Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

Composite(3X)

Constraint(3X)

Core(3X)

XmBulletinBoard(3X)

XmCreateSelectionBox(3X)

XmCreateSelectionDialog(3X)

XmCreatePromptDialog(3X)

XmManager(3X)

XmSelectionBoxGetChild(3X)

XmSelectionBox(3X)  —  Subroutines

OSF

NAME

XmSelectionBox — the SelectionBox widget class.

SYNOPSIS

#include <Xm/SelectioB.h>

DESCRIPTION

SelectionBox is a general dialog widget that allows the user to select one item from a list.  A SelectionBox includes the following:

•A scrolling list of alternatives

•An editable text field for the selected alternative

•Labels for the list and text field

•Three or four buttons

The default button labels are OK, Cancel, and Help.  By default an Apply button is also created; if the parent of the SelectionBox is a DialogShell it is managed, and otherwise it is unmanaged.  One additional WorkArea child may be added to the SelectionBox after creation. 

The user can select an item in two ways: by scrolling through the list and selecting the desired item or by entering the item name directly into the text edit area.  Selecting an item from the list causes that item name to appear in the selection text edit area. 

The user may select a new item as many times as desired.  The item is not actually selected until the user presses the OK PushButton. 

Classes

SelectionBox inherits behavior and resources from Core, Composite, Constraint, XmManager, and XmBulletinBoard Classes. 

The class pointer is xmSelectionBoxWidgetClass. 

The class name is XmSelectionBox. 

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 set at creation time (C), set by using XtSetValues (S), retrieved by using XtGetValues (G), or is not applicable (N/A). 

XmSelectionBox Resource Set
Name Class Type Default Access
XmNapplyCallback XmCCallback XtCallbackList NULL C
XmNapplyLabelString XmCApplyLabelString XmString "Apply" CSG
XmNcancelCallback XmCCallback XtCallbackList NULL C
XmNcancelLabelString XmCCancelLabelString XmString "Cancel" CSG
XmNdialogType XmCDialogType unsigned char dynamic CG
XmNhelpLabelString XmCHelpLabelString XmString "Help" CSG
XmNlistItemCount XmCItemCount int 0 CSG
XmNlistItems XmCItems XmStringTable NULL CSG
XmNlistLabelString XmCListLabelString XmString NULL CSG
XmNlistVisibleItemCount XmCVisibleItemCount int 8 CSG
XmNminimizeButtons XmCMinimizeButtons Boolean False CSG
XmNmustMatch XmCMustMatch Boolean False CSG
XmNnoMatchCallback XmCCallback XtCallbackList NULL C
XmNokCallback XmCCallback XtCallbackList NULL C
XmNokLabelString XmCOkLabelString XmString "OK" CSG
XmNselectionLabelString XmCSelectionLabelString XmString "Selection" CSG
XmNtextAccelerators XmCTextAccelerators XtAccelerators default C
XmNtextColumns XmCColumns short 20 CSG
XmNtextString XmCTextString XmString "" CSG

XmNapplyCallback
Specifies the list of callbacks called when the user activates the Apply button.  The callback reason is XmCR_APPLY. 

XmNapplyLabelString
Specifies the string label for the Apply button. 

XmNcancelCallback
Specifies the list of callbacks called when the user activates the Cancel button.  The callback reason is XmCR_CANCEL. 

XmNcancelLabelString
Specifies the string label for the Cancel button. 

XmNdialogType
Determines the set of SelectionBox children widgets that are created and managed at initialization.  The following are possible values:

•XmDIALOG_PROMPT — all standard children except the list and list label are created, and all except the Apply button are managed

•XmDIALOG_COMMAND — only the list, the selection label, and the text field are created and managed

•XmDIALOG_SELECTION — all standard children are created and managed

•XmDIALOG_FILE_SELECTION — all standard children are created and managed

•XmDIALOG_WORK_AREA — all standard children are created, and all except the Apply button are managed

If the parent of the SelectionBox is a DialogShell, the default is XmDIALOG_SELECTION; otherwise, the default is XmDIALOG_WORK_AREA.  XmCreatePromptDialog and XmCreateSelectionDialog set and append this resource to the creation arglist supplied by the application.  This resource cannot be modified after creation. 

XmNhelpLabelString
Specifies the string label for the Help button. 

XmNlistItems
Specifies the items in the SelectionBox list.

XmNlistItemCount
Specifies the number of items in the SelectionBox list.

XmNlistLabelString
Specifies the string label to appear above the SelectionBox list containing the selection items.

XmNlistVisibleItemCount
Specifies the number of items displayed in the SelectionBox list.

XmNminimizeButtons
Sets the buttons to the width of the widest button and height of the tallest button if False.  If True, button width and height are not modified.

XmNmustMatch
Specifies whether the selection widget should check if the user’s selection in the text edit field has an exact match in the SelectionBox list when the BOK button is activated. If the selection does not have an exact match, and XmNmustMatch is True, the XmNnoMatchCallback callbacks are called.  If the selection does have an exact match or if XmNmustMatch is False, XmNokCallback callbacks are called. 

XmNnoMatchCallback
Specifies the list of callbacks called when the user makes a selection from the text edit field that does not have an exact match with any of the items in the list box. The callback reason is XmCR_NO_MATCH.  Callbacks in this list are called only if XmNmustMatch is true. 

XmNokCallback
Specifies the list of callbacks called when the user activates the OK button.  The callback reason is XmCR_OK.  If the selection text does not match a list item, and XmNmustMatch is True, the XmNnoMatchCallback callbacks are called instead. 

XmNokLabelString
Specifies the string label for the OK button. 

XmNselectionLabelString
Specifies the string label for the selection text edit field.

XmNtextAccelerators
Specifies translations added to the Text widget child of the SelectionBox. The default includes bindings for the up and down keys for auto selection of list items. This resource is ignored if XmNaccelerators is initialized to a nondefault value. 

XmNtextColumns
Specifies the number of columns in the Text widget.

XmNtextString
Specifies the text in the text edit selection field.

Inherited Resources

SelectionBox inherits behavior and resources from the following superclasses.  For a complete description of each resource, refer to the man page for that superclass. 

XmBulletinBoard Resource Set
Name Class Type Default Access
XmNallowOverlap XmCAllowOverlap Boolean True CSG
XmNautoUnmanage XmCAutoUnmanage Boolean True CG
XmNbuttonFontList XmCButtonFontList XmFontList dynamic CSG
XmNcancelButton XmCWidget Window dynamic SG
XmNdefaultButton XmCWidget Window dynamic SG
XmNdefaultPosition XmCDefaultPosition Boolean True CSG
XmNdialogStyle XmCDialogStyle unsigned char dynamic CSG
XmNdialogTitle XmCDialogTitle XmString NULL CSG
XmNfocusCallback XmCCallback XtCallbackList NULL C
XmNlabelFontList XmCLabelFontList XmFontList dynamic CSG
XmNmapCallback XmCCallback XtCallbackList NULL C
XmNmarginHeight XmCMarginHeight Dimension 10 CSG
XmNmarginWidth XmCMarginWidth Dimension 10 CSG
XmNnoResize XmCNoResize Boolean False CSG
XmNresizePolicy XmCResizePolicy unsigned char XmRESIZE_ANY CSG
XmNshadowType XmCShadowType unsigned char XmSHADOW_OUT CSG
XmNtextFontList XmCTextFontList XmFontList dynamic CSG
XmNtextTranslations XmCTranslations XtTranslations NULL C
XmNunmapCallback XmCCallback XtCallbackList NULL C

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
XmNnavigationType XmCNavigationType XmNavigationType dynamic CSG
XmNshadowThickness XmCShadowThickness Dimension dynamic CSG
XmNstringDirection XmCStringDirection XmStringDirection dynamic CG
XmNtopShadowColor XmCBackgroundTopShadowColor Pixel dynamic CSG
XmNtopShadowPixmap XmCTopShadowPixmap Pixmap dynamic CSG
XmNtraversalOn XmCTraversalOn Boolean True CSG
XmNunitType XmCUnitType unsigned char dynamic CSG
XmNuserData XmCUserData Pointer NULL CSG

Composite Resource Set
Name Class Type Default Access
XmNchildren XmCReadOnly WidgetList NULL G
XmNinsertPosition XmCInsertPosition (∗)() NULL CSG
XmNnumChildren XmCReadOnly Cardinal 0 G

Core Resource Set
Name Class Type Default Access
XmNaccelerators XmCAccelerators XtAccelerators NULL N/A
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 CG
XmNmappedWhenManaged XmCMappedWhenManaged Boolean True CSG
XmNscreen XmCScreen Screen ∗ dynamic CG
XmNsensitive XmCSensitive Boolean True CSG
XmNtranslations XmCTranslations XtTranslations NULL CSG
XmNwidth XmCWidth Dimension dynamic CSG
XmNx XmCPosition Position 0 CSG
XmNy XmCPosition Position 0 CSG

Callback Information

A pointer to the following structure is passed to each callback:

typedef struct
{
intreason;
XEvent∗ event;
XmStringvalue;
intlength;
} XmSelectionBoxCallbackStruct;

reasonIndicates why the callback was invoked

eventPoints to the XEvent that triggered the callback

valueIndicates the XmString value selected by the user from the SelectionBox list or entered into the SelectionBox text field

lengthIndicates the size in bytes of the XmString value

Translations

XmSelectionBox inherits translations from XmBulletinBoard. 

Accelerators

The XmNtextAccelerators are added to the Text descendant of XmSelectionBox.  The default accelerators are listed below.  These accelerators may not directly correspond to a translation table. 

KUp:SelectionBoxUpOrDown(0)
KDown:SelectionBoxUpOrDown(1)
KBeginData:SelectionBoxUpOrDown(2)
KEndData:SelectionBoxUpOrDown(3)
KRestore:SelectionBoxRestore()

Action Routines

The XmSelectionBox action routines are described below:

SelectionBoxUpOrDown(0|1|2|3):
When called with a 0 argument, selects the previous item in the list and replaces the text with that item.

When called with a 1 argument, selects the next item in the list and replaces the text with that item. 

When called with a 2 argument, selects the first item in the list and replaces the text with that item. 

When called with a 3 argument, selects the last item in the list and replaces the text with that item. 

SelectionBoxRestore():
Replaces the text value with the list selection. If no item in the list is selected, clears the text.

Additional Behavior

The SelectionBox widget has the additional behavior described below:

MAny KCancel:
Calls the activate callbacks for the cancel button if it is sensitive.

KActivate:
Calls the activate callbacks for the button with the keyboard focus. If no button has the keyboard focus, calls the activate callbacks for the default button if it is sensitive. In a List widget or single-line Text widget, the List or Text action associated with KActivate is called before the SelectionBox actions associated with KActivate.  In a multi-line Text widget, any KActivate event except KEnter calls the Text action associated with KActivate, then the SelectionBox actions associated with KActivate. 

<OK Button Activated>:
If XmNmustMatch is True and the text does not match an item in the file list, calls the XmNnoMatchCallback callbacks with reason XmCR_NO_MATCH.  Otherwise, calls the XmNokCallback callbacks with reason XmCR_OK. 

<Apply Button Activated>:
Calls the XmNapplyCallback callbacks with reason XmCR_APPLY. 

<Cancel Button Activated>:
Calls the XmNcancelCallback callbacks with reason XmCR_CANCEL. 

<Help Button Activated>:
Calls the XmNhelpCallback callbacks with reason XmCR_HELP. 

<MapWindow>:
Calls the callbacks for XmNmapCallback if the SelectionBox is a child of a Dialog shell. 

<UnmapWindow>:
Calls the callbacks for XmNunmapCallback if the SelectionBox is the child of a DialogShell. 

Virtual Bindings

The bindings for virtual keys are vendor specific.  For information about bindings for virtual buttons and keys, see VirtualBindings(3X). 

RELATED INFORMATION

Composite(3X), Constraint(3X), Core(3X), XmBulletinBoard(3X), XmCreateSelectionBox(3X), XmCreateSelectionDialog(3X), XmCreatePromptDialog(3X), XmManager(3X), and XmSelectionBoxGetChild(3X). 

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026