Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ XmRowColumn(Xm) — OpenDesktop Software Development System 1.0.0d

Media Vault

Software Library

Restoration Projects

Artifacts Sought


     XmRowColumn(Xm)                                UNIX System V



     NAME
          XmRowColumn - the RowColumn widget class.



     SYNOPSIS
          #include <Xm/RowColumn.h>



     DESCRIPTION
          The RowColumn widget is a general-purpose RowColumn  manager
          capable  of  containing  any  widget  type  as  a  child. In
          general, it requires no  special  knowledge  about  how  its
          children  function  and  provides nothing beyond support 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 whether
          the children should be packed  tightly  together  (not  into
          organized rows and columns), or whether each child should be
          placed in an identically-sized box (producing a  symmetrical
          look),  or  whether  specific  layout  should  be  done (the
          current x and y positions  of  the  children  control  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 most cases, the  RowColumn  widget  has  no  3-D  visuals
          associated  with  it; if an application wishes to have a 3-D
          shadow  placed  around  this  widget,  it  can  create   the
          RowColumn as a child of a Frame widget.

        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 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 lower
          case or upper case,  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).

                                XmRowColumn Resource Set
     Name                 Class                Type             Default       Access
     _______________________________________________________________________________
     XmNadjustLast        XmCAdjustLast        Boolean          True          CSG
     XmNadjustMargin      XmCAdjustMargin      Boolean          True          CSG
     XmNentryAlignment    XmCAlignment         unsigned char    dynamic       CSG
     XmNentryBorder       XmCEntryBorder       short            dynamic       CSG
     XmNentryCallback     XtCCallback          XtCallbackList   NULL          C
     XmNentryClass        XmCEntryClass        WidgetClass      dynamic       CSG
     XmNisAligned         XmCIsAligned         Boolean          True          CSG
     XmNisHomogeneous     XmCIsHomogeneous     Boolean          dynamic       CSG
     XmNlabelString       XtCString            XmString         NULL          C
     XmNmapCallback       XtCCallback          XtCallbackList   NULL          C
     XmNmarginHeight      XmCMarginHeight      Dimension        dynamic       CSG
     XmNmarginWidth       XmCMarginWidth       Dimension        3             CSG
     XmNmenuAccelerator   XmCAccelerators      String           dynamic       CSG
     XmNmenuHelpWidget    XmCMenuWidget        Widget           NULL          CSG
     XmNmenuHistory       XmCMenuWidget        Widget           NULL          CSG
     XmNmnemonic          XmCMnemonic          char             dynamic       CSG
     XmNnumColumns        XmCNumColumns        short            dynamic       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
     XmNshadowThickness   XmCShadowThickness   int              dynamic       CSG
     XmNspacing           XmCSpacing           short            dynamic       CSG
     XmNsubMenuId         XmCMenuWidget        Widget           NULL          CG
     XmNunmapCallback     XtCCallback          XtCallbackList   NULL          C
     XmNwhichButton       XmCWhichButton       unsigned int     dynamic       CSG


          XmNadjustLast
               Extends the last row of children to the bottom edge  of
               RowColumn   (when  XmOrientation  is  XmHORIZONTAL)  or
               extends the last column to the right edge of  RowColumn
               (when  XmOrientation  is  XmVERTICAL).  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,    XmNmarginRight,    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    either    XmMENUPOPUP     or
               XmMENUPULLDOWN  and this resource is True, only button
               children have their margins adjusted.

          XmNentryAlignment
               Specifies the alignment type for Label  or  LabelGadget
               children  when  XmNisAligned  is enabled. The following
               are textual alignment types:

          ⊕  XmALIGNMENTBEGINNING - the default.

          ⊕  XmALIGNMENTCENTER.

          ⊕  XmALIGNMENTEND.

             See the description of XmNalignment  in  the  XmLabel(Xm)
             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 activation callbacks for  all  ToggleButton,
             PushButton,   and   CascadeButton   widgets  and  gadgets
             contained  within   the   RowColumn   widget.    If   the
             application   supplies   this  resource,  the  activation
             callbacks are then revectored  to  this  callback.   This
             allows an application to supply a single callback routine
             for handling all items contained in a  RowColumn  widget.
             The  application  must  supply  this  resource  when this
             widget is created.

             If the application does not supply  this  resource,  then
             the  activation  callbacks for each item in the RowColumn
             widget  work  as  normal.    The   callback   reason   is
             XmCRACTIVATE  and  the  default value is NULL.  Changing
             this resource using the XtSetValues is not supported.

          XmNentryClass
             Specifies the only widget class that can be added to  the
             RowColumn  widget;  this resource is meaningful only when
             the XmNisHomogeneous  resource  is  set  to  True.   When
             XmNrowColumnType    is    set    to    XmWORKAREA    and
             XmNradioBehavior is True,  then  the  default  value  for
             XmNentryClass    is    xmToggleButtonGadgetClass.    When
             XmNrowColumnType is set to XmMENUBAR, then the value  of
             XmNentryClass is forced to xmCascadeButtonWidgetClass.

          XmNisAligned
             Specifies  text  alignment  for  each  item  within   the
             RowColumn  widget; this only applies to items which are a
             subclass 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,  then  alignment
             is  not  be  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 if the RowColumn widget  should  enforce  exact
             homogeneity  among  the  items it contains; if True, then
             only the widgets which are  of  the  class  indicated  by
             XmNentryClass  are  allowed  as children of the RowColumn
             widget.  This is most often used when creating a  MenuBar
             or a RadioBox widget.

             Attempting to insert a child which is not a member of the
             specified class generates a warning message.  The default
             value is False, except  when  creating  a  MenuBar  or  a
             RadioBox, when the default is True.

          XmNlabelString
             Points to a text string which displays the label  to  the
             left  of  the selection area when XmNrowColumnType is set
             to XmMENUOPTION.  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 XtSetValues
             on the LabelGadget directly.  The  default  value  is  no
             label.

          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
             XmCRMap.

          XmNmarginHeight
             Specifies the amount of blank space between the top  edge
             of  the  RowColumn  widget  and  the  first  item in each
             column, and the bottom edge of the RowColumn  widget  and
             the last item in each column.  The default value is three
             pixels.

          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 three pixels.

          XmNmenuAccelerator
             This resource is only useful when  the  RowColumn  widget
             has  been  configured to operate as a Popup MenuPane or a
             MenuBar.  The format 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 <Key>F4.
             The default for a MenuBar is <Key>F10.   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
             XmMENUBAR.  The MenuBar always places the Help widget at
             the  lower  right  corner.  If the RowColumn widget is of
             any type other than XmMENUBAR, then 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 OptionMenu.  If XmNrowColumnType is  set
             to   XmMENUOPTION,  then  the  specified  menu  item  is
             positioned under the cursor when the menu is displayed.

             If the RowColumn widget has the XmNradioBehavior resource
             set  to  True, then 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.

          XmNmnemonic
             This resource is only useful when XmNrowColumnType is set
             to  XmMENUOPTION.  Specifies  a  single character which,
             when typed by the user,  posts  the  associated  Pulldown
             MenuPane.   The  character is underlined if it appears in
             the OptionMenu label, giving the user a visual  cue  that
             the  character  has special functionality associated with
             it. The default is no mnemonic.

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

             For vertically-oriented RowColumn widgets, this attribute
             indicates  how  many  columns  are  built;  the number of
             entries per column are adjusted to maintain  this  number
             of columns, if possible.

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

             The default value is one.

          XmNorientation
             Determines whether RowColumn layouts  are  row  major  or
             column  major.  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.   XmHORIZONTAL
             resource value selects a row major layout.

             The default value is XmVERTICAL, except when  creating  a
             MenuBar, when the default is XmHORIZONTAL.

          XmNpacking
             Specifies how  to  pack  the  items  contained  within  a
             RowColumn  widget.   This  can  be  set  to XmPACKTIGHT,
             XmPACKCOLUMN or XmPACKNONE.  When  a  RowColumn  widget
             packs  the  items  it  contains,  it determines its major
             dimension using the value of the XmNorientation resource.

             XmPACKTIGHT  indicates  that  given  the  current  major
             dimension    (e.g.    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 (e.g., XmNy is
             left unchanged when XmNorientation  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.

             XmPACKCOLUMN indicates that all entries  are  placed  in
             identically sized boxes.  The box is based on the largest
             height and width values of all the children widgets.  The
             value  of  the XmNnumColumns resource determines how many
             boxes are placed in the major dimension, before extending
             in the minor dimension.

             XmPACKNONE 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.

             The default value is XmPACKTIGHT except when building an
             OptionMenu   or   a   RadioBox,   where  the  default  is
             XmPACKCOLUMN.

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

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

             The  application  always  has  the  freedom  to  add  and
             subtract   toggles   from  RowColumn  regardless  of  the
             selected/unselected state of the toggle.  The application
             also  has  the  freedom  to  manage  and  unmanage toggle
             children of RowColumn at any time  regardless  of  state.
             Because of these freedoms, there are cases in which it is
             possible for the application to create a RowColumn  which
             has  XmNradioAlwaysOne set to True and none of the toggle
             children selected.

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

             Two ToggleButton  and  ToggleButtonGadget  resources  are
             forced    to   specified   values   at   creation   time:
             XmNindicator   is    forced    to    XmONEOFMANY    and
             XmNvisibleWhenOff is forced to True.

             RadioBox  behavior  dictates  that  when  one  toggle  is
             selected and another toggle is selected, the first toggle
             is unselected automatically.  The default value is False,
             except  when  creating  a  RadioBox,  when the default is
             True.

          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  which  is  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 XmCreateRowColumn, then
             this resource is automatically forced to the  appropriate
             value by the convenience routine.  If an application uses
             the Xt Intrinsics API to create  its  RowColumn  widgets,
             then  it  must  specify this resource itself.  The set of
             possible settings for this resource are:

          ⊕  XmWORKAREA - the default.

          ⊕  XmMENUBAR.

          ⊕  XmMENUPULLDOWN.

          ⊕  XmMENUPOPUP.

          ⊕  XmMENUOPTION.

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

          XmNspacing
             Specifies the horizontal  and  vertical  spacing  between
             items contained within the RowColumn widget.  The default
             value is one pixel,  except  for  a  horizontal  MenuBar,
             which defaults to 0 pixels.

          XmNsubMenuId
             Specifies the widget ID for the Pulldown MenuPane  to  be
             associated  with  an  OptionMenu.   This resource is only
             useful when XmNrowColumnType  is  set  to  XmMENUOPTION.
             This  resource  must be specified at creation time for an
             OptionMenu to function properly; it  is  unused  for  all
             other RowColumn types.  The default value is NULL.

          XmNunmapCallback
             Specifies a list of callbacks that is  called  after  the
             window  associated  with  the  RowColumn  widget has been
             unmapped.   The  callback  reason  is  XmCRUnmap.    The
             default value is NULL.

          XmNwhichButton
             Specifies the mouse button to  which  a  menu  system  is
             sensitive.  The default for XmMENUPOPUP is Button3.  The
             default for  XmMENUOPTION  and  XmMENUBAR  is  Button1.
             This resource is not useful for RowColumn widgets of type
             XmWORKAREA and XmMENUPULLDOWN.


                        XmRowColumn Special Menu Resource
                   Name          Class      Type    Default   Access
               _____________________________________________________
               XmNmenuCursor   XmCCursor   String   arrow     C


          XmNmenuCursor
             Sets a variable which controls the cursor which  is  used
             whenever  this  application  posts a menu.  This resource
             can only be specified once at application  startup  time,
             either  by  placing it within a defaults file or by using
             the -xrm command line argument.

             Example:  myProg -xrm "*menuCursor: arrow"

             The menu cursor can also be selected programmatically  by
             using  the  function XmSetMenuCursor.  The following is a
             list of acceptable cursor names.  If the application does
             not  specify  a cursor or if an invalid name is supplied,
             then the default cursor (an arrow pointing up and to  the
             right) is used.

     Xcursor              dotbox         man                 sizing
     arrow                 doublearrow   middlebutton        spider
     basedarrowdown      draftlarge    mouse               spraycan
     basedarrowup        draftsmall    pencil              star
     boat                  drapedbox     pirate              target
     bogosity              exchange       plus                tcross
     bottomleftcorner    fleur          questionarrow      topleftarrow
     bottomrightcorner   gobbler        rightptr           topleftcorner
     bottomside           gumby          rightside          toprightcorner
     bottomtee            hand1          righttee           topside
     boxspiral            hand2          rightbutton         toptee
     centerptr            heart          rtllogo            trek
     circle                icon           sailboat            ulangle
     clock                 ironcross     sbdownarrow       umbrella
     coffeemug            leftptr       sbhdoublearrow   urangle
     cross                 leftside      sbleftarrow       watch
     crossreverse         lefttee       sbrightarrow      xterm
     crosshair             leftbutton     sbuparrow
     diamondcross         llangle       sbvdoublearrow
     dot                   lrangle       shuttle


        Inherited Resources
          RowColumn inherits behavior and resources from the following
          named  superclasses.   For  a  complete description of these
          resources, refer to the man page for that superclass.

                                     XmManager Resource Set
     Name                  Class                 Type           Default              Access
     ______________________________________________________________________________________
     XmNbottomShadowColor  XmCForeground         Pixel          dynamic              CSG
     XmNbottomShadowPixmap XmCBottomShadowPixmap Pixmap         XmUNSPECIFIED_PIXMAP CSG
     XmNforeground         XmCForeground         Pixel          dynamic              CSG
     XmNhelpCallback       XmCCallback           XtCallbackList NULL                 C
     XmNhighlightColor     XmCForeground         Pixel          Black                CSG
     XmNhighlightPixmap    XmCHighlightPixmap    Pixmap         dynamic              CSG
     XmNshadowThickness    XmCShadowThickness    short          0                    CSG
     XmNtopShadowColor     XmCBackground         Pixel          dynamic              CSG
     XmNtopShadowPixmap    XmCTopShadowPixmap    Pixmap         XmUNSPECIFIED_PIXMAP CSG
     XmNunitType           XmCUnitType           unsigned char  XmPIXELS             CSG
     XmNuserData           XmCUserData           caddr_t        NULL                 CSG

                            Composite Resource Set
           Name                Class            Type       Default   Access
     ______________________________________________________________________
     XmNinsertPosition   XmCInsertPosition   XmRFunction   NULL      CSG

                                      Core Resource Set
     Name                 Class                Type           Default              Access
     ____________________________________________________________________________________
     XmNaccelerators      XmCAccelerators      XtTranslations NULL                 CSG
     XmNancestorSensitive XmCSensitive         Boolean        True                 G
     XmNbackground        XmCBackground        Pixel          dynamic              CSG
     XmNbackgroundPixmap  XmCPixmap            Pixmap         XmUNSPECIFIED_PIXMAP CSG
     XmNborderColor       XmCBorderColor       Pixel          Black                CSG
     XmNborderPixmap      XmCPixmap            Pixmap         XmUNSPECIFIED_PIXMAP CSG
     XmNborderWidth       XmCBorderWidth       Dimension      dynamic              CSG
     XmNcolormap          XmCColormap          Colormap       XtCopyFromParent     CG
     XmNdepth             XmCDepth             int            XtCopyFromParent     CG
     XmNdestroyCallback   XmCCallback          XtCallbackList NULL                 C
     XmNheight            XmCHeight            Dimension      16                   CSG
     XmNmappedWhenManaged XmCMappedWhenManaged Boolean        True                 CSG
     XmNscreen            XmCScreen            Pointer        XtCopyScreen         CG
     XmNsensitive         XmCSensitive         Boolean        True                 CSG
     XmNtranslations      XmCTranslations      XtTranslations NULL                 CSG
     XmNwidth             XmCWidth             Dimension      16                   CSG
     XmNx                 XmCPosition          Position       0                    CSG
     XmNy                 XmCPosition          Position       0                    CSG


        Callback Information
          The following structure is returned with 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
          XmCRACTIVATE;  for all other callback reasons, these fields
          are set to NULL.  The XmCRACTIVATE callback reason is  only
          generated   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
                    which has been activated.

          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.


        Behavior
          A RowColumn widget's behavior depends on its type  (MenuBar,
          Popup  MenuPane,  etc.) and the type of menu system in which
          it resides (Pulldown, Popup, or Option). The specific  mouse
          button depends on the XmNwhichButton resource.


          Default MenuBar

          <Btn1Down>:
               If the button event occurs within one  of  the  MenuBar
               buttons,  then  the  MenuBar  is  armed (if not already
               armed) and the submenu  associated  with  the  selected
               button  is  posted.   By  moving the mouse, the user is
               then able to  access  the  MenuPanes  attached  to  the
               MenuBar.

               If the button event does not occur within  one  of  the
               MenuBar buttons and if the MenuBar is already armed, it
               is disarmed, and any visible MenuPanes are unposted; if
               the MenuBar is not already armed, then nothing occurs.

          <Btn1Up>:
               If the MenuBar is armed, then this  event  unposts  all
               visible MenuPanes and then disarms the menubar.


          Default OptionMenu

          <Btn1Down>:
               When this event occurs within the selection  area,  the
               Pulldown  MenuPane  is  posted.   If  this event occurs
               outside of the selection area and if  the  MenuPane  is
               already posted, then the Pulldown MenuPane is unposted.

          <Btn1Up>:
               When this event occurs while the Pulldown  MenuPane  is
               posted, then it is unposted.

          <Return>:
               If this key is pressed while the focus is  set  to  the
               selection area, then the Pulldown MenuPane is posted.


          Default Pulldown MenuPane from a Popup MenuPane

          <Btn3Down>:
               When  this  event  occurs,  the  menu  system  disables
               traversal  mode,  and  re-enters  drag mode.  Depending
               upon  where  the  button  down  event  occurs,  certain
               portions of the visible set of MenuPanes are unposted.

          <Btn3Up>:
               When this event occurs within a  gadget  child  of  the
               MenuPane,  the  indicated  child  is  activated. If the
               child is not a CascadeButton (widget or  gadget),  then
               this  also  results  in  all  visible  MenuPanes  being
               unposted.  If the child is a CascadeButton  (widget  or
               gadget),  then  this  results in the associated submenu
               being posted and traversal being  enabled.   When  this
               event  occurs  outside  of  a  gadget  child,  then all
               visible MenuPanes are unposted.

          <Return>:
               If this key is pressed while the  focus  is  set  to  a
               gadget  child of the MenuPane, then the indicated child
               is activated.  If the  child  is  not  a  CascadeButton
               (widget  or  gadget),  then  this  also  results in all
               visible MenuPanes being unposted.  If the  child  is  a
               CascadeButton  (widget or gadget), then this results in
               the associated submenu being posted and traversal being
               enabled.

          <Escape>:
               This event unposts all visible MenuPanes.

          <Right>:
               If the current focus  item  is  a  CascadeButtonGadget,
               then  this  posts  the associated Pulldown MenuPane and
               highlights  the  first  accessible  item   within   the
               Pulldown MenuPane.

          <Left>:
               If this occurs within a MenuPane which is a submenu  of
               another MenuPane, then this causes the last MenuPane to
               be unposted and the  focus  to  move  to  the  previous
               MenuPane.

          <Up>:
               This moves the focus to the  previous  menu  item;  the
               previous  menu  item is defined as the widget which was
               created prior to the one which currently has the focus.
               Wrapping occurs, if necessary.

          <Down>:
               This moves the focus to the next menu  item;  the  next
               menu  item  is  defined as the widget which was created
               after the one which currently has the focus.   Wrapping
               occurs, if necessary.


          Default Pulldown MenuPane from a MenuBar or from an OptionMenu

          <Btn1Down>:
               When  this  event  occurs,  the  menu  system  disables
               traversal mode and re-enters drag mode.  Depending upon
               where the button down event occurs, certain portions of
               the visible set of MenuPanes are unposted.

          <Btn1Up>:
               When this event occurs within a  gadget  child  of  the
               MenuPane,  the  indicated  child  is  activated. If the
               child is not a CascadeButton (widget or  gadget),  then
               this  also  results  in  all  visible  MenuPanes  being
               unposted.  If the child is a CascadeButton  (widget  or
               gadget),  then  this  results in the associated submenu
               being posted and traversal being  enabled.   When  this
               event  occurs  outside  of  a  gadget  child,  then all
               visible MenuPanes are unposted.

          <Return>:
               If this key is pressed while the  focus  is  set  to  a
               gadget  child of the MenuPane, then the indicated child
               is activated.  If the  child  is  not  a  CascadeButton
               (widget  or  gadget),  then  this  also  results in all
               visible MenuPanes being unposted.  If the  child  is  a
               CascadeButton  (widget or gadget), then this results in
               the associated submenu being posted and traversal being
               enabled.

          <Escape>:
               This event unposts all visible MenuPanes.

          <Right>:
               If the current focus  item  is  a  CascadeButtonGadget,
               then  this  posts  the associated Pulldown MenuPane and
               highlights  the  first  accessible  item   within   the
               Pulldown  MenuPane.  If the current focus item is not a
               CascadeButton, then the visible set  of  MenuPanes  are
               unposted,   and   the   top   level  Pulldown  MenuPane
               associated with the next MenuBar item is posted.

          <Left>:
               If this is occurs within a MenuPane which is a  submenu
               of  another  MenuPane,  then this event causes the last
               MenuPane to be unposted and the focus to  move  to  the
               previous MenuPane.  If this is occurs within a MenuPane
               which is connected directly to the  MenuBar,  then  the
               visible  set  of  MenuPanes  are  unposted, and the top
               level Pulldown MenuPane associated  with  the  previous
               menubar item is posted.

          <Up>:
               This moves the focus to the  previous  menu  item;  the
               previous  menu  item is defined as the widget which was
               created prior to the one which currently has the focus.
               Wrapping occurs, if necessary.

          <Down>:
               This moves the focus to the next menu  item;  the  next
               menu  item  is  defined as the widget which was created
               after the one which currently has the focus.   Wrapping
               occurs, if necessary.

          WorkArea

          <Btn1Down>
               If the button press occurred in a gadget child,  it  is
               dispatched to it.

          <Btn1Up>
               If the button press occurred in a gadget child,  it  is
               dispatched to it.


        Default Translations
          The following are the default translations for an OptionMenu:
          <BtnDown>:     PopupBtnDown()
          <BtnUp>:       PopupBtnUp()
          <Key>Return:   MenuGadgetReturn()

          The following are the default translations for a Popup MenuPane:
          <BtnDown>:     PopupBtnDown()
          <BtnUp>:       PopupBtnUp()
          <Key>Return:   MenuGadgetReturn()
          <Key>Escape:   MenuGadgetEscape()
          <Unmap>:       MenuUnmap()
          <FocusIn>:     MenuFocusIn()
          <FocusOut>:    MenuFocusOut()
          <EnterWindow>: MenuEnter()
          <Key>Left:     MenuGadgetTraverseLeft()
          <Key>Right:    MenuGadgetTraverseRight()
          <Key>Up:       MenuGadgetTraverseUp()
          <Key>Down:     MenuGadgetTraverseDown()

          The following are the default translations are for a Pulldown MenuPane:
          <BtnDown>:     PulldownBtnDown()
          <BtnUp>:       PulldownBtnUp()
          <Key>Return:   MenuGadgetReturn()
          <Key>Escape:   MenuGadgetEscape()
          <Unmap>:       MenuUnmap()
          <FocusIn>:     MenuFocusIn()
          <FocusOut>:    MenuFocusOut()
          <EnterWindow>: MenuEnter()
          <Key>Left:     MenuGadgetTraverseLeft()
          <Key>Right:    MenuGadgetTraverseRight()
          <Key>Up:       MenuGadgetTraverseUp()
          <Key>Down:     MenuGadgetTraverseDown()

          The following are the default translations for a MenuBar:
          <BtnDown>:     MenuBarBtnDown()
          <BtnUp>:       MenuBarBtnUp()
          <Unmap>:       MenuUnmap()
          <FocusIn>:     MenuFocusIn()
          <FocusOut>:    MenuFocusOut()
          <EnterWindow>: MenuEnter()

          The following are the default translations for a WorkArea:
          <Btn1Down>:    WorkAreaBtnDown()
          <Btn1Up>:      WorkAreaBtnUp()


        Keyboard Traversal
          For information on keyboard traversal in a WorkArea, see the
          man  page for XmManager(Xm) and its sections on behavior and
          default translations.



     RELATED INFORMATION
          Composite(Xm), Constraint(Xm), Core(Xm),
          XmCreateRowColumn(Xm), XmCreateMenuBar(Xm),
          XmCreateOptionMenu(Xm), XmCreatePopupMenu(Xm),
          XmCreatePulldownMenu(Xm), XmCreateRadioBox(Xm),
          XmGetMenuCursor(Xm), XmLabel(Xm), XmManager(Xm),
          XmOptionButtonGadget(Xm), XmOptionLabelGadget(Xm),
          XmSetMenuCursor(Xm), XmMenuPosition(Xm), and
          XmUpdateDisplay(Xm).



     (printed 2/14/90)                            XmRowColumn(Xm)

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