XmRowColumn(3X)

XmRowColumn --The RowColumn widget class

Showing IRIX 6.5.30 (default release). Last changed in IRIX 6.5.22.

NAME
     XmRowColumn --The RowColumn widget class

SYNOPSIS
     #include <Xm/RowColumn.h>


VERSION
     This page documents version 1.2 of the Motif library.

DESCRIPTION
     The RowColumn widget is a general purpose RowColumn manager capable of con-
     taining  any  widget  type  as a child.  In general, it requires no special
     knowledge about how its children function and provides nothing beyond  sup-
     port for several different layout styles.  However, it can be configured as
     a  menu, in which case, it expects only certain children, and it configures
     to a particular layout.  The menus supported  are:   MenuBar,  Pulldown  or
     Popup MenuPanes, and OptionMenu.

     The  type  of layout performed is controlled by how the application has set
     the various layout resources.  It can be configured to lay out its children
     in either rows or columns.  In addition, the application  can  specify  how
     the children are laid out, as follows:


       *  the children are packed tightly together into either rows or columns

       *  each  child is placed in an identically sized box (producing a symmet-
          rical look)

       *  a specific layout (the current x and y positions of the children  con-
          trol their location)


     In  addition, the application has control over both the spacing that occurs
     between each row and column and the  margin  spacing  present  between  the
     edges of the RowColumn widget and any children that are placed against it.

     In a MenuBar, Pulldown MenuPane, or Popup MenuPane the default for the XmN-
     shadowThickness  resource  is 2.  In an OptionMenu or a WorkArea (such as a
     RadioBox or CheckBox) this resource is not applicable and its use is  unde-
     fined.  If an application wishes to place a 3-D shadow around an OptionMenu
     or WorkArea, it can create the RowColumn as a child of a Frame widget.

     In  a  MenuBar,  Pulldown MenuPane, or Popup MenuPane the XmNnavigationType
     resource is not applicable and its use is undefined.  In a WorkArea the de-
     fault for XmNnavigationType is XmTAB_GROUP.  In an OptionMenu  the  default
     for XmNnavigationType is XmNONE.

     In  a  MenuBar, Pulldown MenuPane, or Popup MenuPane the XmNtraversalOn re-
     source is not applicable and its use is undefined.   In  an  OptionMenu  or
     WorkArea the default for XmNtraversalOn is True.

     If the parent of the RowColumn is a MenuShell, the XmNmappedWhenManaged re-
     source is forced to False when the widget is realized.

     The  user  can  specify  resources in a resource file for the automatically
     created widgets and gadgets of an OptionMenu.  The following  list  identi-
     fies  the names of these widgets (or gadgets) and the associated OptionMenu
     areas.


       *

       *  Option Menu Label Gadget-"OptionLabel"

       *  Option Menu Cascade Button-"OptionButton"


   Tear-off Menus
     Pulldown and Popup MenuPanes support tear-off menus, which enable the  user
     to  retain  a  MenuPane on the display to facilitate subsequent menu selec-
     tions.  A MenuPane that can be torn-off is identified by a tear-off  button
     that  spans  the width of the MenuPane and displays a dashed line.  A torn-
     off MenuPane contains a window manager system menu icon and  a  title  bar.
     The  window  title  displays the label of the cascade button that initiated
     the action when the label type is XmSTRING.  If the label contains a pixmap
     the window title is empty.  A tear-off menu from a Popup MenuPane also dis-
     plays an empty title.

     The user can tear-off a MenuPane using the mouse or keyboard.  Clicking BS-
     elect or pressing KActivate (or KSelect) on the tear-off button, tears  off
     the  MenuPane at the current position.  Pressing BDrag on the tear-off but-
     ton tears off the MenuPane, and allows the user to drag the  torn-off  menu
     to  a new position designated by releasing the mouse button.  Tearing off a
     MenuPane unposts the current active menu.  Only one tear-off copy for  each
     MenuPane is allowed.  Subsequent tear-off actions of a torn MenuPane unpost
     the existing copy first.

     The  name  of  the  tear-off button of a torn-off menu pane is "TearOffCon-
     trol".  The name can be used to set resources in a resource file.   An  ap-
     plication can also obtain the tear-off button itself using XmGetTearOffCon-
     trol and then set resource values by calling XtSetValues.

     The  tear-off  button  has  Separator-like behavior.  Its appearance can be
     specified using the following  tear-off  button  resources:  XmNbackground,
     XmNbackgroundPixmap,XmNbottomShadowColor, XmNforeground, XmNheight, XmNmar-
     gin, XmNseparatorType, XmNshadowThickness, and XmNtopShadowColor.  Refer to
     the  XmSeparator  man  page for a complete description of each of these re-
     sources.

     RowColumn resources that affect tear-off menu behavior are XmNtearOffModel,
     XmNtearOffMenuActivateCallback, and XmNtearOffMenuDeactivateCallback.

     By default, menus do not tear off; tear off functionality may be enabled by
     setting the XmNtearOffModel resource to XmTEAR_OFF_ENABLED.   There  is  no
     resource  converter  pre-registered for XmNtearOffModel.  To allow tear-off
     functionality to be enabled through the resource database call the function
     XmRepTypeInstallTearOffModelConverter.

     Tear-off menu focus policy follows standard window manager policy.   It  is
     recommended that the following mwm resources are set to True: startupKeyFo-
     cus and autoKeyFocus.

   Classes
     RowColumn inherits behavior and resources from Core, Composite, Constraint,
     and XmManager classes.

     The class pointer is xmRowColumnWidgetClass.

     The class name is XmRowColumn.

   New Resources
     The  following table defines a set of widget resources used by the program-
     mer 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 re-
     maining letters (in either lowercase or uppercase, but include  any  under-
     scores  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).

                                         XmRowColumn Resource Set
Name                               Class                  Type             Default                  Access
-----------------------------------------------------------------------------------------------------------
XmNadjustLast                      XmCAdjustLast          Boolean          True                     CSG
XmNadjustMargin                    XmCAdjustMargin        Boolean          True                     CSG
XmNentryAlignment                  XmCAlignment           unsigned char    XmALIGNMENT_BEGINNING    CSG
XmNentryBorder                     XmCEntryBorder         Dimension        0                        CSG
XmNentryCallback                   XmCCallback            XtCallbackList   NULL                     C
XmNentryClass                      XmCEntryClass          WidgetClass      dynamic                  CSG
XmNentryVerticalAlignment          XmCVerticalAlignment   unsigned char    XmALIGNMENT_CENTER       CSG
XmNisAligned                       XmCIsAligned           Boolean          True                     CSG
XmNisHomogeneous                   XmCIsHomogeneous       Boolean          dynamic                  CG
XmNlabelString                     XmCXmString            XmString         NULL                     C
XmNmapCallback                     XmCCallback            XtCallbackList   NULL                     C
XmNmarginHeight                    XmCMarginHeight        Dimension        dynamic                  CSG
XmNmarginWidth                     XmCMarginWidth         Dimension        dynamic                  CSG
XmNmenuAccelerator                 XmCAccelerators        String           dynamic                  CSG
XmNmenuHelpWidget                  XmCMenuWidget          Widget           NULL                     CSG
XmNmenuHistory                     XmCMenuWidget          Widget           NULL                     CSG
XmNmenuPost                        XmCMenuPost            String           NULL                     CSG
XmNmnemonic                        XmCMnemonic            KeySym           NULL                     CSG
XmNmnemonicCharSet                 XmCMnemonicCharSet     String           XmFONTLIST_DEFAULT_TAG   CSG
XmNnumColumns                      XmCNumColumns          short            1                        CSG
XmNorientation                     XmCOrientation         unsigned char    dynamic                  CSG
XmNpacking                         XmCPacking             unsigned char    dynamic                  CSG
XmNpopupEnabled                    XmCPopupEnabled        Boolean          True                     CSG
XmNradioAlwaysOne                  XmCRadioAlwaysOne      Boolean          True                     CSG
XmNradioBehavior                   XmCRadioBehavior       Boolean          False                    CSG
XmNresizeHeight                    XmCResizeHeight        Boolean          True                     CSG
XmNresizeWidth                     XmCResizeWidth         Boolean          True                     CSG
XmNrowColumnType                   XmCRowColumnType       unsigned char    XmWORK_AREA              CG
XmNspacing                         XmCSpacing             Dimension        dynamic                  CSG
XmNsubMenuId                       XmCMenuWidget          Widget           NULL                     CSG
XmNtearOffMenuActivateCallback     XmCCallback            XtCallbackList   NULL                     C
XmNtearOffMenuDeactivateCallback   XmCCallback            XtCallbackList   NULL                     C
XmNtearOffModel                    XmCTearOffModel        unsigned char    XmTEAR_OFF_DISABLED      CSG
XmNunmapCallback                   XmCCallback            XtCallbackList   NULL                     C
XmNwhichButton                     XmCWhichButton         unsigned int     dynamic                  CSG


     XmNadjustLast
               Extends  the last row of children to the bottom edge of RowColumn
               (when XmNorientation is XmHORIZONTAL) or extends the last  column
               to  the  right edge of RowColumn (when XmNorientation is XmVERTI-
               CAL).  This feature  is  disabled  by  setting  XmNadjustLast  to
               False.

     XmNadjustMargin
               Specifies  whether the inner minor margins of all items contained
               within the RowColumn widget are forced to the  same  value.   The
               inner  minor  margin corresponds to the XmNmarginLeft, XmNmargin-
               Right, XmNmarginTop, and XmNmarginBottom resources  supported  by
               XmLabel and XmLabelGadget.

               A  horizontal orientation causes XmNmarginTop and XmNmarginBottom
               for all items in a particular row to be forced to the same value;
               the value is the largest margin specified for one  of  the  Label
               items.

               A  vertical  orientation  causes XmNmarginLeft and XmNmarginRight
               for all items in a particular column to be  forced  to  the  same
               value;  the  value is the largest margin specified for one of the
               Label items.

               This keeps all text within each row or column lined up  with  all
               other  text in its row or column.  If the XmNrowColumnType is ei-
               ther XmMENU_POPUP or XmMENU_PULLDOWN and this resource  is  True,
               only button children have their margins adjusted.

     XmNentryAlignment
               Specifies  the alignment type for children that are subclasses of
               XmLabel or XmLabelGadget when XmNisAligned is enabled.  The  fol-
               lowing are textual alignment types:

               XmALIGNMENT_BEGINNING-the default

               XmALIGNMENT_CENTER

               XmALIGNMENT_END

               See  the  description of XmNalignment in the XmLabel(3X) man page
               for an explanation of these actions.

     XmNentryBorder
               Imposes a uniform border width  upon  all  RowColumn's  children.
               The default value is 0, which disables the feature.

     XmNentryCallback
               Disables   the  XmNactivateCallback  and  XmNvalueChangedCallback
               callbacks for all  CascadeButton,  DrawnButton,  PushButton,  and
               ToggleButton  widgets  and gadgets contained within the RowColumn
               widget.  If the application supplies this resource, the  XmNacti-
               vateCallback   and  XmNvalueChangedCallback  callbacks  are  then
               revectored to the XmNentryCallback callbacks.  This allows an ap-
               plication to supply a single callback routine  for  handling  all
               items  contained  in  a RowColumn widget.  The callback reason is
               XmCR_ACTIVATE.  If the application does not supply this resource,
               the XmNactivateCallback and XmNvalueChangedCallback callbacks for
               each item in the RowColumn widget work as normal.

               The application must supply this resource  when  this  widget  is
               created.   Changing  this  resource  using the XtSetValues is not
               supported.

     XmNentryClass
               Specifies the only widget class that can be added to the  RowCol-
               umn  widget; this resource is meaningful only when the XmNisHomo-
               geneous resource is set to True.  Both widget and gadget variants
               of the specified class may be added to the widget.

               When XmCreateRadioBox is called or when XmNrowColumnType  is  set
               to XmWORK_AREA and XmNradioBehavior is True, the default value of
               XmNentryClass  is  xmToggleButtonGadgetClass.  When XmNrowColumn-
               Type is set to XmMENU_BAR, the value of XmNentryClass  is  forced
               to xmCascadeButtonWidgetClass.

     XmNentryVerticalAlignment
               Specifies  the  type  of vertical alignment for children that are
               subclasses of XmLabel, XmLabelGadget, and XmText.  This  resource
               is  invalid if XmNorientation is XmVERTICAL and XmNpacking is Xm-
               PACK_TIGHT because this layout preserves variable  heights  among
               the children.  The vertical alignment types include:


                 *  XmALIGNMENT_BASELINE_BOTTOM-causes  the  bottom  baseline of
                    all children in a row to be aligned.  This resource  is  ap-
                    plicable  only  when  all  children in a row contain textual
                    data.

                 *  XmALIGNMENT_BASELINE_TOP-causes  the  top  baseline  of  all
                    children  in a row to be aligned.  This resource is applica-
                    ble only when all children in a row contain textual data.

                 *  XmALIGNMENT_CONTENTS_BOTTOM-causes the bottom  of  the  con-
                    tents  (text  or  pixmap)  of  all  children  in a row to be
                    aligned.

                 *  XmALIGNMENT_CENTER-causes the center of all  children  in  a
                    row to be aligned.

                 *  XmALIGNMENT_CONTENTS_TOP-causes  the  top  of  the  contents
                    (text or pixmap) of all children in a row to be aligned.


     XmNisAligned
               Specifies text alignment for each item within the RowColumn  wid-
               get; this applies only to items that are subclasses of XmLabel or
               XmLabelGadget.   However, if the item is a Label widget or gadget
               and its parent is either a Popup MenuPane or a Pulldown MenuPane,
               alignment is not performed; the Label is  treated  as  the  title
               within  the MenuPane, and the alignment set by the application is
               not overridden.  XmNentryAlignment controls the type  of  textual
               alignment.

     XmNisHomogeneous
               Indicates whether the RowColumn widget should enforce exact homo-
               geneity  among  the  items it contains; if True, only the widgets
               that are of the class indicated by XmNentryClass are  allowed  as
               children  of  the RowColumn widget.  This is most often used when
               creating a MenuBar.  Attempting to insert a child that is  not  a
               member of the specified class generates a warning message.

               In a MenuBar the value of XmNisHomogeneous is forced to True.  In
               an  OptionMenu  the  value  is forced to False.  When XmCreateRa-
               dioBox is called the default value is True.  Otherwise,  the  de-
               fault value is False.

     XmNlabelString
               Points  to a text string, which displays the label to one side of
               the selection area when XmNrowColumnType is set to XmMENU_OPTION.
               This resource is not meaningful for all  other  RowColumn  types.
               If  the application wishes to change the label after creation, it
               must get the LabelGadget ID (XmOptionLabelGadget) and call XtSet-
               Values on the LabelGadget directly.  The default value is no  la-
               bel.

     XmNmapCallback
               Specifies  a  widget-specific  callback  function that is invoked
               when the window associated with the RowColumn widget is about  to
               be mapped.  The callback reason is XmCR_MAP.

               The  callback is invoked only if the RowColumn type is XmMENU_OP-
               TION, XmMENU_POPUP, or XmMENU_PULLDOWN.

               The default value is NULL.

     XmNmarginHeight
               Specifies the amount of blank space between the top edge  of  the
               RowColumn  widget and the first item in each column, and the bot-
               tom edge of the RowColumn widget and the last item in  each  col-
               umn.   The  default  value is 0 for Pulldown and Popup MenuPanes,
               and 3 pixels for other RowColumn types.

     XmNmarginWidth
               Specifies the amount of blank space between the left edge of  the
               RowColumn  widget  and  the first item in each row, and the right
               edge of the RowColumn widget and the last item in each row.   The
               default value is 0 for Pulldown and Popup MenuPanes, and 3 pixels
               for other RowColumn types.

     XmNmenuAccelerator
               This  resource  is useful only when the RowColumn widget has been
               configured to operate as a Popup MenuPane or a MenuBar.  The for-
               mat of this resource is similar to the left side specification of
               a translation string, with the limitation that it must specify  a
               key  event.   For a Popup MenuPane, when the accelerator is typed
               by the user, the Popup MenuPane is posted.  For a  MenuBar,  when
               the  accelerator  is  typed  by  the  user, the first item in the
               MenuBar is highlighted, and traversal is enabled in the  MenuBar.
               The  default  for  a  Popup MenuPane is KMenu.  The default for a
               MenuBar is KMenuBar.  The accelerator can be disabled by  setting
               the XmNpopupEnabled resource to False.

     XmNmenuHelpWidget
               Specifies  the  widget ID for the CascadeButton, which is treated
               as the Help widget if XmNrowColumnType is set to XmMENU_BAR.  The
               MenuBar always places the Help widget at the bottom right  corner
               (in a lef to right environment) of the MenuBar.  If the RowColumn
               widget  is  any  type other than XmMENU_BAR, this resource is not
               meaningful.

     XmNmenuHistory
               Specifies the widget ID of the last menu entry to  be  activated.
               It is also useful for specifying the current selection for an Op-
               tionMenu.  If XmNrowColumnType is set to XmMENU_OPTION, the spec-
               ified  menu  item is positioned under the cursor when the menu is
               displayed.

               If the RowColumn widget has the XmNradioBehavior resource set  to
               True, the widget field associated with this resource contains the
               widget  ID  of  the  last  ToggleButton  or ToggleButtonGadget to
               change from unselected to selected.  The  default  value  is  the
               widget ID of the first child in the widget.

     XmNmenuPost
               Specifies  an  X event description indicating a button event that
               posts a menu system.   The  default  for  XmMENU_POPUP  is  BMenu
               Press.   The  default  for  XmMENU_OPTION,  XmMENU_BAR,  and  Xm-
               WORK_AREA is BSelect Press.  The XmNmenuPost resource  for  pull-
               downs  should  be  consistent  with that of top-level parent menu
               (although the event type is ignored).  Setting this  resource  to
               BDrag  Press  will  conflict with drag and drop operations, which
               use BDrag Press as a default button binding.

     XmNmnemonic
               This resource is useful only when XmNrowColumnType is set to  Xm-
               MENU_OPTION.   Specifies a keysym for a key that, when pressed by
               the user along with the MAlt modifier, posts the associated Pull-
               down MenuPane.  The  first  character  in  the  OptionMenu  label
               string  that  exactly  matches  the mnemonic in the character set
               specified in XmNmnemonicCharSet is underlined.  The user can post
               the menu by pressing either the shifted or the unshifted mnemonic
               key.  The default is no mnemonic.

     XmNmnemonicCharSet
               Specifies the character set of the mnemonic  for  an  OptionMenu.
               The  default  is XmFONTLIST_DEFAULT_TAG.  If the RowColumn widget
               is any type other than XmMENU_OPTION, this resource is not  mean-
               ingful.

     XmNnumColumns
               Specifies  the number of minor dimension extensions that are made
               to accommodate the entries; this  attribute  is  meaningful  only
               when XmNpacking is set to XmPACK_COLUMN.

               For  vertically  oriented RowColumn widgets, this attribute indi-
               cates how many columns are built; the number of entries per  col-
               umn is adjusted to maintain this number of columns, if possible.

               For horizontally oriented RowColumn widgets, this attribute indi-
               cates how many rows are built.

               The  default value is 1.  In an OptionMenu the value is forced to
               1.  The value must be greater than 0.

     XmNorientation
               Determines whether RowColumn layouts are row-major or  column-ma-
               jor.  In a column-major layout, the children of the RowColumn are
               laid  out  in columns top to bottom within the widget.  In a row-
               major layout the children of the RowColumn are laid out in  rows.
               XmVERTICAL resource value selects a column-major layout.  XmHORI-
               ZONTAL resource value selects a row-major layout.

               When  creating a MenuBar or an OptionMenu, the default is XmHORI-
               ZONTAL.  Otherwise, the default value is XmVERTICAL.  The results
               of specifying a value of XmVERTICAL for a MenuBar are undefined.

     XmNpackingSpecifies how to pack the items contained within a RowColumn wid-
               get.  This can be  set  to  XmPACK_TIGHT,  XmPACK_COLUMN  or  Xm-
               PACK_NONE.   When a RowColumn widget packs the items it contains,
               it determines its major dimension using the value of the  XmNori-
               entation resource.

               XmPACK_TIGHT  indicates  that  given  the current major dimension
               (for example, vertical if XmNorientation is XmVERTICAL),  entries
               are  placed  one  after the other until the RowColumn widget must
               wrap.  RowColumn wraps when there is no room left for a  complete
               child  in that dimension.  Wrapping occurs by beginning a new row
               or column in the next available space.   Wrapping  continues,  as
               often  as  necessary, until all of the children are laid out.  In
               the vertical dimension (columns),  boxes  are  set  to  the  same
               width;  in  the horizontal dimension (rows), boxes are set to the
               same depth.  Each entry's position in the major dimension is left
               unaltered (for example, XmNy is left unchanged  when  XmNorienta-
               tion  is  XmVERTICAL); its position in the minor dimension is set
               to the same value as the greatest entry in that particular row or
               column.  The position in the minor dimension  of  any  particular
               row or column is independent of all other rows or columns.

               XmPACK_COLUMN  indicates  that  all entries are placed in identi-
               cally sized boxes.  The box is based on the  largest  height  and
               width  values of all the children widgets.  The value of the XmN-
               numColumns resource determines how many boxes are placed  in  the
               major dimension, before extending in the minor dimension.

               XmPACK_NONE  indicates that no packing is performed.  The x and y
               attributes of each entry are left alone, and the RowColumn widget
               attempts to become large enough to enclose all entries.

               When XmCreateRadioBox is called or when XmNrowColumnType  is  set
               to XmWORK_AREA and XmNradioBehavior is True, the default value of
               XmNpacking  is XmPACK_COLUMN.  In an OptionMenu the value is ini-
               tialized to XmPACK_TIGHT.  Otherwise, the value defaults  to  Xm-
               PACK_TIGHT.

     XmNpopupEnabled
               Allows the menu system to enable keyboard input (accelerators and
               mnemonics)  defined  for  the  Popup MenuPane and any of its sub-
               menus.  The Popup MenuPane needs to be informed whenever its  ac-
               cessibility  to  the  user  changes  because posting of the Popup
               MenuPane is controlled by the application.  The default value  of
               this resource is True (keyboard input-accelerators and mnemonics--
               defined  for  the  Popup  MenuPane and any of its submenus is en-
               abled).

     XmNradioAlwaysOne
               If True, forces the active ToggleButton or ToggleButtonGadget  to
               be  automatically  selected  after  having been unselected (if no
               other toggle was activated).  If False, the active toggle may  be
               unselected.   The default value is True.  This resource is impor-
               tant only when XmNradioBehavior is True.

               The application can always add and subtract toggles from  RowCol-
               umn  regardless  of  the selected/unselected state of the toggle.
               The application can also manage and unmanage toggle  children  of
               RowColumn at any time regardless of state.  Therefore, the appli-
               cation  can  sometimes  create  a  RowColumn that has XmNradioAl-
               waysOne set to True and none of  the  toggle  children  selected.
               The result is undefined if the value of this resource is True and
               the application sets more than one ToggleButton at a time.

     XmNradioBehavior
               Specifies a Boolean value that when True, indicates that the Row-
               Column  widget  should enforce a RadioBox-type behavior on all of
               its children that are ToggleButtons or ToggleButtonGadgets.

               When the value of this resource  is  True,  XmNindicatorType  de-
               faults  to  XmONE_OF_MANY for ToggleButton and ToggleButtonGadget
               children.

               RadioBox behavior dictates that when one toggle is  selected  and
               the  user  selects another toggle, the first toggle is unselected
               automatically.  The RowColumn usually does not enforce  this  be-
               havior  if  the  application,  rather  than the user, changes the
               state of a toggle.  The RowColumn does enforce this behavior if a
               toggle child is selected using XmToggleButtonSetState  or  XmTog-
               gleButtonGadgetSetState with a notify argument of True.

               When  XmCreateRadioBox is called the default value of XmNradioBe-
               havior is True.  Otherwise, the default value is False.

     XmNresizeHeight
               Requests a new height if necessary, when set to True.   When  set
               to  False, the widget does not request a new height regardless of
               any changes to the widget or its children.

     XmNresizeWidth
               Requests a new width if necessary, when set to True.  When set to
               False, the widget does not request a new width regardless of  any
               changes to the widget or its children.

     XmNrowColumnType
               Specifies  the  type  of RowColumn widget to be created.  It is a
               non-standard resource that cannot be changed after it is set.  If
               an application uses any of the convenience routines,  except  Xm-
               CreateRowColumn, this resource is automatically forced to the ap-
               propriate  value  by  the convenience routine.  If an application
               uses the Xt Intrinsics API to create its  RowColumn  widgets,  it
               must  specify this resource itself.  The set of possible settings
               for this resource are:

               XmWORK_AREA-the default

               XmMENU_BAR

               XmMENU_PULLDOWN

               XmMENU_POPUP

               XmMENU_OPTION

               This resource cannot be changed after  the  RowColumn  widget  is
               created.  Any changes attempted through XtSetValues are ignored.

               The  value  of  this resource is used to determine the value of a
               number of other resources.  The  descriptions  of  RowColumn  re-
               sources  explain this when it is the case.  The resource XmNnavi-
               gationType, inherited from XmManager, is changed to XmNONE if Xm-
               NrowColumnType is XmMENU_OPTION.

     XmNspacingSpecifies the horizontal and vertical spacing between items  con-
               tained  within the RowColumn widget.  The default value is 3 pix-
               els for XmOPTION_MENU and XmWORK_AREA and 0 for  other  RowColumn
               types.

     XmNsubMenuId
               Specifies  the  widget ID for the Pulldown MenuPane to be associ-
               ated with an OptionMenu.  This resource is useful only when  XmN-
               rowColumnType  is  set  to  XmMENU_OPTION.   The default value is
               NULL.

     XmNtearOffMenuActivateCallback
               Specifies the callback list that notifies  the  application  when
               the  tear-off MenuPane is about to be activated.  It precedes the
               tear-off's map callback.

               Use this resource when your application has shared MenuPanes  and
               when the torn-off menu can have two or more parents that can have
               opposing  sensitivity  states  for  the same menu item.  This re-
               source enables the application to track whether a  menu  item  is
               sensitive  or  insensitive  and  to set the state to the original
               parent's menu item state when the torn-off menu is reposted.  The
               application can use XmGetPostedFromWidget to determine from which
               parent   the   menu   was   torn.    The   callback   reason   is
               XmCR_TEAR_OFF_ACTIVATE.  The default is NULL.

     XmNtearOffMenuDeactivateCallback
               Specifies  the  callback  list that notifies the application when
               the tear-off MenuPane is about to be deactivated.  It follows the
               tear-off's unmap callback.

               Use this resource when your application has shared MenuPanes  and
               when the torn-off menu can have two or more parents that can have
               opposing  sensitivity  states  for  the same menu item.  This re-
               source enables the application to track whether a  menu  item  is
               sensitive  or  insensitive  and  to set the state to the original
               parent's menu item state when the torn-off menu is reposted.  The
               application can use XmGetPostedFromWidget to determine from which
               parent   the   menu   was   torn.    The   callback   reason   is
               XmCR_TEAR_OFF_DEACTIVATE.  The default value is NULL.

     XmNtearOffModel
               Indicates  whether  tear-off functionality is enabled or disabled
               when XmNrowColumnType is set to XmMENU_PULLDOWN or  XmMENU_POPUP.
               The  values  are:  XmTEAR_OFF_ENABLED or XmTEAR_OFF_DISABLED (de-
               fault value).  This resource is invalid for  type  XmMENU_OPTION;
               however,  it  does affect any pulldown submenus within an Option-
               Menu.   The  function  XmRepTypeInstallTearOffModelConverter  in-
               stalls a resource converter for this resource.

     XmNunmapCallback
               Specifies a list of callbacks that is called after the window as-
               sociated  with the RowColumn widget has been unmapped.  The call-
               back reason is XmCR_UNMAP.

               The callback is invoked only if the RowColumn type is  XmMENU_OP-
               TION, XmMENU_POPUP, or XmMENU_PULLDOWN.

               The default value is NULL.

     XmNwhichButton
               This  resource  is  obsolete; it has been replaced by XmNmenuPost
               and is present for compatibility with older releases of 1/Motif.


                        XmRowColumn Constraint Resource Set
       Name               Class              Type    Default           Access
       -----------------------------------------------------------------------
       XmNpositionIndex   XmCPositionIndex   short   XmLAST_POSITION   CSG


     XmNpositionIndex
               Specifies the position of the widget  in  its  parent's  list  of
               children  (the  value of the XmNchildren resource).  The value is
               an integer that is no less than zero and no greater than the num-
               ber of children in the list at the time the value  is  specified.
               A  value  of zero means that the child is placed at the beginning
               of the list.  The value can also be  specified as XmLAST_POSITION
               (the default), which means that the child is placed at the end of
               the list.  Any other value is ignored.  XtGetValues  returns  the
               position  of the widget in its parent's child list at the time of
               the call to XtGetValues.

               When a widget is inserted into its parent's child list, the posi-
               tions of any existing children that are greater than or equal  to
               the  specified  widget's  XmNpositionIndex  are increased by one.
               The effect of a call to XtSetValues for  XmNpositionIndex  is  to
               remove  the  specified  widget  from its parent's child list, de-
               crease by one the positions of any  existing  children  that  are
               greater  than the specified widget's former position in the list,
               and then insert the specified widget into its parent's child list
               as described in the preceding sentence.


                               Simple Menu Creation Resource Set
Name                        Class                       Type                   Default   Access
------------------------------------------------------------------------------------------------
XmNbuttonAccelerators       XmCButtonAccelerators       StringTable            NULL      C
XmNbuttonAcceleratorText    XmCButtonAcceleratorText    XmStringTable          NULL      C
XmNbuttonCount              XmCButtonCount              int                    0         C
XmNbuttonMnemonicCharSets   XmCButtonMnemonicCharSets   XmStringCharSetTable   NULL      C
XmNbuttonMnemonics          XmCButtonMnemonics          XmKeySymTable          NULL      C
XmNbuttons                  XmCButtons                  XmStringTable          NULL      C
XmNbuttonSet                XmCButtonSet                int                    -1        C
XmNbuttonType               XmCButtonType               XmButtonTypeTable      NULL      C
XmNoptionLabel              XmCOptionLabel              XmString               NULL      C
XmNoptionMnemonic           XmCOptionMnemonic           KeySym                 NULL      C
XmNpostFromButton           XmCPostFromButton           int                    -1        C
XmNsimpleCallback           XmCCallback                 XtCallbackProc         NULL      C


     XmNbuttonAccelerators
               This resource is for use with the simple menu creation  routines.
               It specifies a list of accelerators for the buttons created.  The
               list  contains  one element for each button, separator, and title
               created.

     XmNbuttonAcceleratorText
               This resource is for use with the simple menu creation  routines.
               It specifies a list of compound strings to display for the accel-
               erators  for  the buttons created.  The list contains one element
               for each button, separator, and title created.

     XmNbuttonCount
               This resource is for use with the simple menu creation  routines.
               It  specifies  the  total number of menu buttons, separators, and
               titles to create.  The value must not be negative.

     XmNbuttonMnemonicCharSets
               This resource is for use with the simple menu creation  routines.
               It specifies a list of character sets with which button mnemonics
               are to be displayed.  The list contains one element for each but-
               ton, separator, and title created.  The default is determined dy-
               namically depending on the locale of the widget.

     XmNbuttonMnemonics
               This  resource is for use with the simple menu creation routines.
               It specifies a list of mnemonics for the  buttons  created.   The
               list  contains  one element for each button, separator, and title
               created.

     XmNbuttonsThis resource is for use with the simple menu creation  routines.
               It  specifies a list of compound strings to use as labels for the
               buttons created.  The list contains one element for each  button,
               separator, and title created.

     XmNbuttonSet
               This  resource is for use with the simple menu creation routines.
               It specifies which button of a RadioBox  or  OptionMenu  Pulldown
               submenu  is  initially set.  The value is an integer n indicating
               the nth ToggleButtonGadget specified for a RadioBox  or  the  nth
               PushButtonGadget  specified  for  an OptionMenu Pulldown submenu.
               The first button specified is number 0.  The value  must  not  be
               negative.

     XmNbuttonType
               This  resource is for use with the simple menu creation routines.
               It specifies a list of button types associated with  the  buttons
               to  be  created.   The list contains one element for each button,
               separator, and title created.  If this resource is not specified,
               each button in a MenuBar is a CascadeButtonGadget, each button in
               a RadioBox or CheckBox is a ToggleButtonGadget, and  each  button
               in  any  other  type  of  RowColumn widget is a PushButtonGadget.
               Each button type is of type XmButtonType, an enumeration with the
               following possible values:

               XmCASCADEBUTTON-Specifies a CascadeButtonGadget  for  a  MenuBar,
               Popup MenuPane, or Pulldown MenuPane.

               XmCHECKBUTTON-Specifies  a  ToggleButtonGadget  for  a  CheckBox,
               Popup MenuPane, or Pulldown MenuPane.

               XmDOUBLE_SEPARATOR-Specifies a SeparatorGadget for a Popup  Menu-
               Pane,  Pulldown  MenuPane,  or  OptionMenu Pulldown submenu.  The
               separator type is XmDOUBLE_LINE.

               XmPUSHBUTTON-Specifies a PushButtonGadget for a  Popup  MenuPane,
               Pulldown MenuPane, or OptionMenu Pulldown submenu.

               XmRADIOBUTTON-Specifies  a  ToggleButtonGadget  for  a  RadioBox,
               Popup MenuPane, or Pulldown MenuPane.

               XmSEPARATOR-Specifies a SeparatorGadget  for  a  Popup  MenuPane,
               Pulldown MenuPane, or OptionMenu Pulldown submenu.

               XmTITLE-Specifies a LabelGadget used as a title for a Popup Menu-
               Pane or Pulldown MenuPane.

     XmNoptionLabel
               This  resource is for use with the simple menu creation routines.
               It specifies a compound string for the label string to be used on
               the left side of an OptionMenu.

     XmNoptionMnemonic
               This resource is for use with the simple menu creation  routines.
               It  specifies  a  keysym for a key that, when pressed by the user
               along with the MAlt modifier, posts the associated Pulldown Menu-
               Pane for an OptionMenu.

     XmNpostFromButton
               This resource is for use with the simple menu creation  routines.
               For a Pulldown MenuPane, it specifies the button in the parent to
               which the submenu is attached.  The menu is then posted from this
               button.  The value is an integer n indicating the nth CascadeBut-
               ton  or CascadeButtonGadget specified for the parent of the Pull-
               down MenuPane.  The first button  specified  is  number  0.   The
               value must not be negative.

     XmNsimpleCallback
               This  resource is for use with the simple menu creation routines.
               It specifies a callback procedure to be called when a  button  is
               activated  or  when its value changes.  This callback function is
               added to each button after creation.  For  a  CascadeButtonGadget
               or a PushButtonGadget, the callback is added as the button's XmN-
               activateCallback,  and it is called when the button is activated.
               For a ToggleButtonGadget, the callback is added as  the  button's
               XmNvalueChangedCallback, and it is called when the button's value
               changes.  The button number is passed in the client_data field.


   Inherited Resources
     RowColumn  inherits  behavior and resources from the following named super-
     classes.  For a complete description of each resource,  refer  to  the  man
     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
XmNnavigationType       XmCNavigationType       XmNavigationType    dynamic                CSG
XmNshadowThickness      XmCShadowThickness      Dimension           dynamic                CSG
XmNstringDirection      XmCStringDirection      XmStringDirection   dynamic                CG
XmNtopShadowColor       XmCTopShadowColor       Pixel               dynamic                CSG
XmNtopShadowPixmap      XmCTopShadowPixmap      Pixmap              dynamic                CSG
XmNtraversalOn          XmCTraversalOn          Boolean             dynamic                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   default procedure   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
     A pointer to the following structure is passed to each callback:

     typedef struct
     {
       int      reason;
       XEvent   * event;
       Widget   widget;
       char     * data;
       char     * callbackstruct;
     } XmRowColumnCallbackStruct;


     reason    Indicates why the callback was invoked

     event     Points to the XEvent that triggered the callback


     The  following fields apply only when the callback reason is XmCR_ACTIVATE;
     for all other callback reasons, these fields are set to NULL.  The XmCR_AC-
     TIVATE callback reason is generated only when the application has  supplied
     an entry callback, which overrides any activation callbacks registered with
     the individual RowColumn items.


     widget    Is set to the widget ID of the RowColumn item that has been acti-
               vated

     data      Contains  the  client-data value supplied by the application when
               the RowColumn item's activation callback was registered

     callbackstruct
               Points to the  callback  structure  generated  by  the  RowColumn
               item's activation callback


   Translations
     XmRowColumn  translations  depend  on the value of the XmNrowColumnType re-
     source.

     If XmNrowColumnType is set to XmWORK_AREA,  XmRowColumn  inherits  transla-
     tions from XmManager.

     If  XmNrowColumnType  is set to XmMENU_OPTION, XmRowColumn inherits traver-
     sal, KActivate, and KCancel translations from XmManager and has  the  addi-
     tional translations listed below.  These translations may not directly cor-
     respond to a translation table.

     BSelect Press: MenuBtnDown()
     BSelect Release:MenuBtnUp()
     KSelect:       ManagerGadgetSelect()
     KHelp:         Help()


     The  translations  for XmRowColumn if XmNrowColumnType is set to XmMENU_BAR
     XmMENU_PULLDOWN, or XmMENU_POPUP are listed below.  In a Popup menu system,
     BMenu also performs the BSelect actions.  These translations  may  not  di-
     rectly correspond to a translation table.

     BSelect Press: MenuBtnDown()
     BSelect Release:MenuBtnUp()
     KActivate:     ManagerGadgetSelect()
     KSelect:       ManagerGadgetSelect()
     MAny KCancel:  MenuGadgetEscape()
     KHelp:         Help()
     KLeft:         MenuGadgetTraverseLeft()
     KRight:        MenuGadgetTraverseRight()
     KUp:           MenuGadgetTraverseUp()
     KDown:         MenuGadgetTraverseDown()


   Action Routines
     The XmRowColumn action routines are described below:


     Help():   Calls  the  callbacks for XmNhelpCallback if any exist.  If there
               are no help callbacks for this widget, this action calls the help
               callbacks for the nearest ancestor that has them.

     ManagerGadgetSelect():
               When a gadget child of the menu has the focus, invokes the gadget
               child's behavior associated with KSelect.  This generally has the
               effect of unposting the menu hierarchy and arming and  activating
               the gadget, except that for a CascadeButtonGadget with a submenu,
               it posts the submenu.

     MenuBtnDown():
               When a gadget child of the menu has the focus, invokes the gadget
               child's  behavior  associated with BSelect Press.  This generally
               has the effect of unposting any menus posted by the parent  menu,
               enabling mouse traversal in the menu, and arming the gadget.  For
               a  CascadeButtonGadget  with a submenu, it also posts the associ-
               ated submenu.

     MenuBtnUp():
               When a gadget child of the menu has the focus, invokes the gadget
               child's behavior associated with BSelect Release.  This generally
               has the effect of unposting the menu hierarchy and activating the
               gadget, except that for a CascadeButtonGadget with a submenu,  it
               posts the submenu and enables keyboard traversal in the menu.

     MenuGadgetEscape():
               In a toplevel Pulldown MenuPane from a MenuBar, unposts the menu,
               disarms  the MenuBar CascadeButton and the MenuBar, and, when the
               shell's keyboard focus policy is  XmEXPLICIT,  restores  keyboard
               focus to the widget that had the focus before the MenuBar was en-
               tered.  In other Pulldown MenuPanes, unposts the menu.

     In  a Popup MenuPane, unposts the menu and, when the shell's keyboard focus
     policy is XmEXPLICIT, restores keyboard focus to the widget from which  the
     menu  was  posted.  In a TearOff MenuPane that has no submenus posted, dis-
     misses the menu; otherwise, if one or more submenus are posted, unposts the
     last menu pane.

     MenuGadgetTraverseDown():
               If the current menu item has a submenu and is in a MenuBar,  then
               this action posts the submenu, disarms the current menu item, and
               arms the submenu's first traversable menu item.

     If  the  current  menu  item is in a MenuPane, then this action disarms the
     current menu item and arms the item below it.  This action wraps within the
     MenuPane.  When the current menu item is at  the  MenuPane's  bottom  edge,
     then this action wraps to the topmost menu item in the column to the right,
     if one exists.  When the current menu item is at the bottom, rightmost cor-
     ner  of  the  MenuPane,  then this action wraps to the tear-off control, if
     present, or to the top, leftmost menu item.

     MenuGadgetTraverseLeft():
               When the current menu item is in a MenuBar, then this action dis-
               arms the current item and arms the  MenuBar  item  to  the  left.
               This action wraps within the MenuBar.

     In  MenuPanes,  if the current menu item is not at the left edge of a Menu-
     Pane, this action disarms the current item and arms the item to  its  left.
     If  the  current  menu  item is at the left edge of a submenu attached to a
     MenuBar item, then this action unposts the submenu  and  traverses  to  the
     MenuBar  item to the left, wrapping if necessary.  If that MenuBar item has
     a submenu, it posts the submenu and arms the first traversable item in  the
     submenu.  If the current menu item is at the left edge of a submenu not di-
     rectly  attached  to  a  MenuBar item, then this action unposts the current
     submenu only.

     In Popup or Torn-off MenuPanes, when the current menu item is at  the  left
     edge,  this  action wraps within the MenuPane.  If the current menu item is
     at the left edge of the MenuPane and not in the top row, this action  wraps
     to  the  rightmost menu item in the row above.  If the current menu item is
     in the upper, leftmost corner, this action wraps to the  tear-off  control,
     if  present,  or  else  it  wraps to the bottom, rightmost menu item in the
     MenuPane.

     MenuGadgetTraverseRight():
               If the current menu item is in a MenuBar, then this  action  dis-
               arms  the  current  item  and arms the MenuBar item to the right.
               This action wraps within the MenuBar.

     In MenuPanes, if the current menu item is a CascadeButton, then this action
     posts its associated submenu.  If the current menu item is not  a  Cascade-
     Button  and is not at the right edge of a MenuPane, this action disarms the
     current item and arms the item to its right, wrapping if necessary.  If the
     current menu item is not a CascadeButton and is at the right edge of a sub-
     menu that is a descendent of a MenuBar, then this action unposts  all  sub-
     menus and traverses to the MenuBar item to the right.  If that MenuBar item
     has  a submenu, it posts the submenu and arms the submenu's first traversa-
     ble item.

     In Popup or Torn-off menus, if the current menu item is not a CascadeButton
     and is at the right edge of a row (except  the  bottom  row),  this  action
     wraps to the leftmost menu item in the row below.  If the current menu item
     is not a CascadeButton and is in the bottom, rightmost corner of a Popup or
     Pulldown  MenuPane,  this action wraps to the tear-off control, if present,
     or else it wraps to the top, leftmost menu item of the MenuPane.

     MenuGadgetTraverseUp():
               When the current menu item is in a  MenuPane,  then  this  action
               disarms  the  current menu item and arms the item above it.  This
               action wraps within the MenuPane.  When the current menu item  is
               at the MenuPane's top edge, then this action wraps to the bottom-
               most  menu  item  in the column to the left, if one exists.  When
               the current menu item is at the top, leftmost corner of the Menu-
               Pane, then this action wraps to the tear-off control, if present,
               or to the bottom, rightmost menu item.


   Related Behavior
     The following menu functions are available.


     KMenuBar: In any non-popup descendant of a MenuBar's parent, excluding  the
               MenuBar  itself, this action enables keyboard traversal and moves
               keyboard focus to the first item in the MenuBar.  In the  MenuBar
               or  any menu cascaded from it, this action unposts the menu hier-
               archy and, when the shell's keyboard focus policy is  XmEXPLICIT,
               restores  focus  to  the  widget that had the focus when the menu
               system was entered.

     KMenu:    Pops up the menu associated with the control that  has  the  key-
               board  focus.   Enables  keyboard  traversal in the menu.  In the
               Popup menu system or any menu cascaded from it, this  action  un-
               posts  the  menu  hierarchy  and, when the shell's keyboard focus
               policy is XmEXPLICIT, restores focus to the widget that  had  the
               focus when the menu system was entered.


   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), XmCreateMenuBar(3X), XmCreateOp-
     tionMenu(3X), XmCreatePopupMenu(3X), XmCreatePulldownMenu(3X), XmCreateRa-
     dioBox(3X), XmCreateRowColumn(3X), XmCreateSimpleCheckBox(3X), XmCreateSim-
     pleMenuBar(3X), XmCreateSimpleOptionMenu(3X), XmCreateSimplePopupMenu(3X),
     XmCreateSimplePulldownMenu(3X), XmCreateSimpleRadioBox(3X), XmCreate-
     WorkArea(3X), XmGetMenuCursor(3X), XmGetPostedFromWidget(3X), XmGetTearOff-
     Control, XmLabel(3X), XmManager(3X), XmMenuPosition(3X), XmOptionButtonGad-
     get(3X), XmOptionLabelGadget(3X), XmRepTypeInstallTearOffModelConverter,
     XmSetMenuCursor(3X), XmUpdateDisplay(3X), XmVaCreateSimpleCheckBox(3X), Xm-
     VaCreateSimpleMenuBar(3X), XmVaCreateSimpleOptionMenu(3X), XmVaCreateSim-
     plePopupMenu(3X), XmVaCreateSimplePulldownMenu(3X), and XmVaCreateSimpleRa-
     dioBox(3X).

                                                                 XmRowColumn(3X)