


                                                            XmPanedWindow(3X)



   NAME
     XXmmPPaanneeddWWiinnddooww-The PanedWindow widget class

   AES SUPPORT LEVEL
     Full-use

   SYNOPSIS
     ##iinncclluuddee <<XXmm//PPaanneeddWW..hh>>

   DESCRIPTION
     PanedWindow is a composite widget that lays out children in a vertically
     tiled format.  Children appear in top-to-bottom fashion, with the first
     child inserted appearing at the top of the PanedWindow and the last
     child inserted appearing at the bottom.  The PanedWindow grows to match
     the width of its widest child and all other children are forced to this
     width. The height of the PanedWindow is equal to the sum of the heights
     of all its children, the spacing between them, and the size of the top
     and bottom margins.

     The user can also adjust the size of the panes.  To facilitate this
     adjustment, a pane control sash is created for most children.  The sash
     appears as a square box positioned on the bottom of the pane that it
     controls.  The user can adjust the size of a pane by using the mouse or
     keyboard.

     The PanedWindow is also a constraint widget, which means that it creates
     and manages a set of constraints for each child.  You can specify a
     minimum and maximum size for each pane.  The PanedWindow does not allow
     a pane to be resized below its minimum size or beyond its maximum size.
     Also, when the minimum size of a pane is equal to its maximum size, no
     control sash is presented for that pane or for the lowest pane.

     The default XXmmNNiinnsseerrttPPoossiittiioonn procedure for PanedWindow causes sashes to
     be inserted at the end of the list of children and causes non-sash widg-
     ets to be inserted after other non-sash children but before any sashes.

     Classes

     PanedWindow inherits behavior and resources from the CCoorree, CCoommppoossiittee,
     CCoonnssttrraaiinntt, and XXmmMMaannaaggeerr classes.

     The class pointer is xxmmPPaanneeddWWiinnddoowwWWiiddggeettCCllaassss.

     The class name is XXmmPPaanneeddWWiinnddooww.

     New Resources

     The following table defines a set of widget resources used by the pro-
     grammer 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 XXmmNN or XXmmCC prefix and use the remaining letters.  To specify one of
     the defined values for a resource in a .Xdefaults file, remove the XXmm


   2-405






   XmPanedWindow(3X)


     prefix and use the remaining letters (in either lowercase or uppercase,
     but include any underscores between words).  The codes in the access
     column indicate if the given resource can be set at creation time (C),
     set by using XXttSSeettVVaalluueess (S), retrieved by using XXttGGeettVVaalluueess (G), or is
     not applicable (N/A).
                            XXmmPPaanneeddWWiinnddooww RReessoouurrccee SSeett
    NNaammee                     CCllaassss                TTyyppee        DDeeffaauulltt   AAcccceessss
    __________________________________________________________________________
    XmNmarginHeight          XmCMarginHeight      Dimension   3         CSG
    XmNmarginWidth           XmCMarginWidth       Dimension   3         CSG
    XmNrefigureMode          XmCBoolean           Boolean     True      CSG
    XmNsashHeight             XmCSashHeight       Dimension   10        CSG
    XmNsashIndent            XmCSashIndent        Position    -10       CSG
    XmNsashShadowThickness   XmCShadowThickness   Dimension   dynamic   CSG
    XmNsashWidth              XmCSashWidth        Dimension   10        CSG
    XmNseparatorOn           XmCSeparatorOn       Boolean     True      CSG
    XmNspacing               XmCSpacing           Dimension   8         CSG

     XXmmNNmmaarrggiinnHHeeiigghhtt
               Specifies the distance between the top and bottom edges of the
               PanedWindow and its children.

     XXmmNNmmaarrggiinnWWiiddtthh
               Specifies the distance between the left and right edges of the
               PanedWindow and its children.

     XXmmNNrreeffiigguurreeMMooddee
               Determines whether the panes' positions are recomputed and
               repositioned when programmatic changes are being made to the
               PanedWindow.  Setting this resource to True resets the chil-
               dren to their appropriate positions.

     XXmmNNssaasshhHHeeiigghhtt
               Specifies the height of the sash.

     XXmmNNssaasshhIInnddeenntt
               Specifies the horizontal placement of the sash along each
               pane.  A positive value causes the sash to be offset from the
               near (left) side of the PanedWindow, and a negative value
               causes the sash to be offset from the far (right) side of the
               PanedWindow.  If the offset is greater than the width of the
               PanedWindow minus the width of the sash, the sash is placed
               flush against the near side of the PanedWindow.
               Whether the placement actually corresponds to the left or
               right side of the PanedWindow may depend on the value of the
               XXmmNNssttrriinnggDDiirreeccttiioonn resource.

     XXmmNNssaasshhSShhaaddoowwTThhiicckknneessss
               Specifies the thickness of the shadows of the sashes.

     XXmmNNssaasshhWWiiddtthh
               Specifies the width of the sash.

     XXmmNNsseeppaarraattoorrOOnn


   2-406






                                                            XmPanedWindow(3X)


               Determines whether a separator is created between each of the
               panes.  Setting this resource to True creates a Separator at
               the midpoint between each of the panes.

     XXmmNNssppaacciinngg
               Specifies the distance between each child pane.
                           XXmmPPaanneeddWWiinnddooww CCoonnssttrraaiinntt RReessoouurrccee SSeett
               NNaammee             CCllaassss            TTyyppee        DDeeffaauulltt   AAcccceessss
               ______________________________________________________________
               XmNallowResize   XmCBoolean       Boolean     False     CSG
               XmNpaneMaximum   XmCPaneMaximum   Dimension   1000      CSG
               XmNpaneMinimum   XmCPaneMinimum   Dimension   1         CSG
               XmNskipAdjust    XmCBoolean       Boolean     False     CSG

     XXmmNNaalllloowwRReessiizzee
               Allows an application to specify whether the PanedWindow
               should allow a pane to request to be resized.  This flag has
               an effect only after the PanedWindow and its children have
               been realized.  If this flag is set to True, the PanedWindow
               tries to honor requests to alter the height of the pane. If
               False, it always denies pane requests to resize.

     XXmmNNppaanneeMMaaxxiimmuumm
               Allows an application to specify the maximum size to which a
               pane may be resized.  This value must be greater than the
               specified minimum.

     XXmmNNppaanneeMMiinniimmuumm
               Allows an application to specify the minimum size to which a
               pane may be resized.  This value must be greater than 0.

     XXmmNNsskkiippAAddjjuusstt
               When set to True, this Boolean resource allows an application
               to specify that the PanedWindow should not automatically
               resize this pane.

     Inherited Resources

     PanedWindow inherits behavior and resources from the following superc-
     lasses.  For a complete description of each resource, refer to the man
     page for that superclass.
                                        XXmmMMaannaaggeerr RReessoouurrccee SSeett
   NNaammee                    CCllaassss                   TTyyppee                DDeeffaauulltt                AAcccceessss
   _________________________________________________________________________________________________
   XmNbottomShadowColor    XmCBottomShadowColor    Pixel               dynamic                CSG
   XmNbottomShadowPixmap   XmCBottomShadowPixmap   Pixmap              XmUNSPECIFIED_PIXMAP   CSG
   XmNforeground           XmCForeground           Pixel               dynamic                CSG
   XmNhelpCallback         XmCCallback             XtCallbackList      NULL                   C
   XmNhighlightColor       XmCHighlightColor       Pixel               dynamic                CSG
   XmNhighlightPixmap      XmCHighlightPixmap      Pixmap              dynamic                CSG
   XmNnavigationType       XmCNavigationType       XmNavigationType    XmTAB_GROUP            CSG
   XmNshadowThickness      XmCShadowThickness      Dimension           2                      CSG
   XmNstringDirection      XmCStringDirection      XmStringDirection   dynamic                CG
   XmNtopShadowColor       XmCTopShadowColor       Pixel               dynamic                CSG


   2-407






   XmPanedWindow(3X)


   XmNtopShadowPixmap      XmCTopShadowPixmap      Pixmap              dynamic                CSG
   XmNtraversalOn          XmCTraversalOn          Boolean             True                   CSG
   XmNuserData             XmCUserData             XtPointer           NULL                   CSG
                                                 CCoorree RReessoouurrccee SSeett
   NNaammee                            CCllaassss                           TTyyppee             DDeeffaauulltt                AAcccceessss
   ______________________________________________________________________________________________________________
   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
                                CCoommppoossiittee RReessoouurrccee SSeett
   NNaammee                CCllaassss               TTyyppee          DDeeffaauulltt             AAcccceessss
   ________________________________________________________________________________
   XmNchildren         XmCReadOnly         WidgetList    NULL                G
   XmNinsertPosition   XmCInsertPosition   XtOrderProc   default procedure   CSG
   XmNnumChildren      XmCReadOnly         Cardinal      0                   G

     Action Routines

     The XmPanedWindow action routines are described below:

     HHeellpp(()):   Calls the callbacks for XXmmNNhheellppCCaallllbbaacckk 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.

     NNeexxttTTaabbGGrroouupp(()):
               Moves the keyboard focus to the next tab group.  By default
               each pane and sash is a tab group.

     PPrreevvTTaabbGGrroouupp(()):
               Moves the keyboard focus to the previous tab group.  By
               default each pane and sash is a tab group.

     SSaasshhAAccttiioonn((_a_c_t_i_o_n)) or SSaasshhAAccttiioonn((KKeeyy,,_i_n_c_r_e_m_e_n_t,,_d_i_r_e_c_t_i_o_n)):
               The SSttaarrtt action activates the interactive placement of the
               pane's borders.  The MMoovvee action causes the sash to track the
               position of the pointer.  If one of the panes reaches its
               minimum or maximum size, adjustment continues with the next
               adjustable pane.  The CCoommmmiitt action ends sash motion.  When


   2-408






                                                            XmPanedWindow(3X)


               sash action is caused by a keyboard event, the sash with the
               keyboard focus is moved according to the _i_n_c_r_e_m_e_n_t and _d_i_r_e_c_-
               _t_i_o_n specified.  DDeeffaauullttIInnccrr adjusts the sash by one line.
               LLaarrggeeIInnccrr adjusts the sash by one view region.  The _d_i_r_e_c_t_i_o_n
               is specified as either UUpp or DDoowwnn.  Note that the SashAction
               action routine is not a direct action routine of the
               XmPanedWindow, but rather an action of the Sash control
               created by the XmPanedWindow.

     Virtual Bindings

     The bindings for virtual keys are vendor specific.

   RELATED INFORMATION
     CCoommppoossiittee((33XX)), CCoonnssttrraaiinntt((33XX)), CCoorree((33XX)), XXmmCCrreeaatteePPaanneeddWWiinnddooww((33XX)), and
     XXmmMMaannaaggeerr((33XX)).








































   2-409






   XmPrimitive(3X)



   NAME
     XXmmPPrriimmiittiivvee-The Primitive widget class

   AES SUPPORT LEVEL
     Full-use

   SYNOPSIS
     ##iinncclluuddee <<XXmm//XXmm..hh>>

   DESCRIPTION
     Primitive is a widget class used as a supporting superclass for other
     widget classes.  It handles border drawing and highlighting, traversal
     activation and deactivation, and various callback lists needed by Primi-
     tive widgets.

     Classes

     Primitive inherits behavior and resources from CCoorree class.

     The class pointer is xxmmPPrriimmiittiivveeWWiiddggeettCCllaassss.

     The class name is XXmmPPrriimmiittiivvee.

     New Resources

     The following table defines a set of widget resources used by the pro-
     grammer 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 XXmmNN or XXmmCC prefix and use the remaining letters.  To specify one of
     the defined values for a resource in a .Xdefaults file, remove the XXmm
     prefix and use the remaining letters (in either lowercase or uppercase,
     but include any underscores between words).  The codes in the access
     column indicate if the given resource can be set at creation time (C),
     set by using XXttSSeettVVaalluueess (S), retrieved by using XXttGGeettVVaalluueess (G), or is
     not applicable (N/A).
                                       XXmmPPrriimmiittiivvee RReessoouurrccee SSeett
   NNaammee                    CCllaassss                   TTyyppee               DDeeffaauulltt                AAcccceessss
   ________________________________________________________________________________________________
   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
   XmNhighlightOnEnter     XmCHighlightOnEnter     Boolean            False                  CSG
   XmNhighlightPixmap      XmCHighlightPixmap      Pixmap             dynamic                CSG
   XmNhighlightThickness   XmCHighlightThickness   Dimension          2                      CSG
   XmNnavigationType       XmCNavigationType       XmNavigationType   XmNONE                 CSG
   XmNshadowThickness      XmCShadowThickness      Dimension          2                      CSG
   XmNtopShadowColor       XmCTopShadowColor       Pixel              dynamic                CSG
   XmNtopShadowPixmap      XmCTopShadowPixmap      Pixmap             dynamic                CSG
   XmNtraversalOn          XmCTraversalOn          Boolean            True                   CSG
   XmNuserData             XmCUserData             XtPointer          NULL                   CSG


   2-410






                                                              XmPrimitive(3X)



     XXmmNNbboottttoommSShhaaddoowwCCoolloorr
               Specifies the color to use to draw the bottom and right sides
               of the border shadow.  This color is used if the XXmmNNttooppSShhaa--
               ddoowwPPiixxmmaapp resource is unspecified.

     XXmmNNbboottttoommSShhaaddoowwPPiixxmmaapp
               Specifies the pixmap to use to draw the bottom and right sides
               of the border shadow.

     XXmmNNffoorreeggrroouunndd
               Specifies the foreground drawing color used by Primitive widg-
               ets.

     XXmmNNhheellppCCaallllbbaacckk
               Specifies the list of callbacks that is called when the help
               key is pressed.  The reason sent by the callback is XXmmCCRR__HHEELLPP.

     XXmmNNhhiigghhlliigghhttCCoolloorr
               Specifies the color of the highlighting rectangle.  This color
               is used if the highlight pixmap resource is
               XXmmUUNNSSPPEECCIIFFIIEEDD__PPIIXXMMAAPP.

     XXmmNNhhiigghhlliigghhttOOnnEEnntteerr
               Specifies if the highlighting rectangle is drawn when the cur-
               sor moves into the widget.  If the shell's focus policy is
               XXmmEEXXPPLLIICCIITT, this resource is ignored, and the widget is
               highlighted when it has the focus.  If the shell's focus pol-
               icy is XXmmPPOOIINNTTEERR and if this resource is True, the highlight-
               ing rectangle is drawn when the the cursor moves into the
               widget.  If the shell's focus policy is XXmmPPOOIINNTTEERR and if this
               resource is False, the highlighting rectangle is not drawn
               when the the cursor moves into the widget.  The default is
               False.

     XXmmNNhhiigghhlliigghhttPPiixxmmaapp
               Specifies the pixmap used to draw the highlighting rectangle.

     XXmmNNhhiigghhlliigghhttTThhiicckknneessss
               Specifies the thickness of the highlighting rectangle.

     XXmmNNnnaavviiggaattiioonnTTyyppee
               Determines whether the widget is a tab group.

                 ++oo  XXmmNNOONNEE indicates that the widget is not a tab group.

                 ++oo  XXmmTTAABB__GGRROOUUPP indicates that the widget is a tab group,
                    unless another widget in the hierarchy has an XXmmNNnnaavviiggaa--
                    ttiioonnTTyyppee of XXmmEEXXCCLLUUSSIIVVEE__TTAABB__GGRROOUUPP.

                 ++oo  XXmmSSTTIICCKKYY__TTAABB__GGRROOUUPP indicates that the widget is a tab
                    group, even if another widget in the hierarchy has an
                    XXmmNNnnaavviiggaattiioonnTTyyppee of XXmmEEXXCCLLUUSSIIVVEE__TTAABB__GGRROOUUPP.



   2-411






   XmPrimitive(3X)


                 ++oo  XXmmEEXXCCLLUUSSIIVVEE__TTAABB__GGRROOUUPP indicates that the widget is a tab
                    group and that widgets in the hierarchy whose XXmmNNnnaavviiggaa--
                    ttiioonnTTyyppee is XXmmTTAABB__GGRROOUUPP are not tab groups.
                    When a parent widget has an XXmmNNnnaavviiggaattiioonnTTyyppee of
                    XXmmEEXXCCLLUUSSIIVVEE__TTAABB__GGRROOUUPP, traversal of non-tab-group widgets
                    within the group is based on the order of those widgets
                    in their parent's XXmmNNcchhiillddrreenn list.

     XXmmNNsshhaaddoowwTThhiicckknneessss
               Specifies the size of the drawn border shadow.

     XXmmNNttooppSShhaaddoowwCCoolloorr
               Specifies the color to use to draw the top and left sides of
               the border shadow.  This color is used if the XXmmNNttooppSShhaaddoowwPPiixx--
               mmaapp resource is unspecified.

     XXmmNNttooppSShhaaddoowwPPiixxmmaapp
               Specifies the pixmap to use to draw the top and left sides of
               the border shadow.

     XXmmNNttrraavveerrssaallOOnn
               Specifies if traversal is activated for this widget.  In Cas-
               cadeButton and CascadeButtonGadget, this resource is forced to
               TRUE unless the parent is an OptionMenu.

     XXmmNNuusseerrDDaattaa
               Allows the application to attach any necessary specific data
               to the widget.  It is an internally unused resource.

     Dynamic Color Defaults

     The foreground, background, top shadow, and bottom shadow resources are
     dynamically defaulted.  If no color data is specified, the colors are
     automatically generated.  On a single-plane system, a black and white
     color scheme is generated.  Otherwise, four colors are generated, which
     display the correct shading for the 3-D visuals.  If the background is
     the only color specified for a widget, the top shadow, bottom shadow,
     and foreground colors are generated to give the 3-D appearance.

     Colors are generated only at creation.  Resetting the background through
     XXttSSeettVVaalluueess does not regenerate the other colors.

     Inherited Resources

     Primitive inherits behavior and resources from the following superclass.
     For a complete description of each resource, refer to the man page for
     that superclass.
                                                 CCoorree RReessoouurrccee SSeett
   NNaammee                            CCllaassss                           TTyyppee             DDeeffaauulltt                AAcccceessss
   ______________________________________________________________________________________________________________
   XmNaccelerators                 XmCAccelerators                 XtAccelerators   dynamic                CSG
   XmNancestorSensitive            XmCSensitive                    Boolean          dynamic                G
   XmNbackground                   XmCBackground                   Pixel            dynamic                CSG
   XmNbackgroundPixmap             XmCPixmap                       Pixmap           XmUNSPECIFIED_PIXMAP   CSG


   2-412






                                                              XmPrimitive(3X)


   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:
     ttyyppeeddeeff ssttrruucctt
     {{
       iinntt          _r_e_a_s_o_n;;
       XXEEvveenntt       * _e_v_e_n_t;;
     }} XXmmAAnnyyCCaallllbbaacckkSSttrruucctt;;

     _r_e_a_s_o_n Indicates why the callback was invoked.  For this callback, _r_e_a_-
            _s_o_n is set to XXmmCCRR__HHEELLPP.

     _e_v_e_n_t  Points to the XXEEvveenntt that triggered the callback.

     Action Routines

     The XmPrimitive action routines are described below:

     PPrriimmiittiivveeHHeellpp(()):
               Calls the callbacks for XXmmNNhheellppCCaallllbbaacckk 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.

     PPrriimmiittiivveeNNeexxttTTaabbGGrroouupp(()):
               Traverses to the first item in the next tab group.  If the
               current tab group is the last entry in the tab group list, it
               wraps to the beginning of the tab group list.

     PPrriimmiittiivveePPaarreennttAAccttiivvaattee(()):
               If the parent is a manager, passes the KKAAccttiivvaattee event
               received by the widget to the parent.

     PPrriimmiittiivveePPaarreennttCCaanncceell(()):
               If the parent is a manager, Passes the KKCCaanncceell event received
               by the widget to the parent.

     PPrriimmiittiivveePPrreevvTTaabbGGrroouupp(()):
               Traverses to the first item in the previous tab group.  If the


   2-413






   XmPrimitive(3X)


               beginning of the tab group list is reached, it wraps to the
               end of the tab group list.

     PPrriimmiittiivveeTTrraavveerrsseeDDoowwnn(()):
               Traverses to the next item below the current widget in the
               current tab group, wrapping if necessary.

     PPrriimmiittiivveeTTrraavveerrsseeHHoommee(()):
               Traverses to the first widget or gadget in the current tab
               group.

     PPrriimmiittiivveeTTrraavveerrsseeLLeefftt(()):
               Traverses to the next item to the left of the current widget
               in the current tab group, wrapping if necessary.

     PPrriimmiittiivveeTTrraavveerrsseeNNeexxtt(()):
               Traverses to the next item in the current tab group, wrapping
               if necessary.

     PPrriimmiittiivveeTTrraavveerrsseePPrreevv(()):
               Traverses to the previous item in the current tab group, wrap-
               ping if necessary.

     PPrriimmiittiivveeTTrraavveerrsseeRRiigghhtt(()):
               Traverses to the next item to the right of the current gadget
               in the current tab group, wrapping if necessary.

     PPrriimmiittiivveeTTrraavveerrsseeUUpp(()):
               Traverses to the next item above the current gadget in the
               current tab group, wrapping if necessary.

   RELATED INFORMATION
     CCoorree((33XX)).























   2-414






                                                       XmProcessTraversal(3X)



   NAME
     XXmmPPrroocceessssTTrraavveerrssaall-A function that determines which component receives
     keyboard events when a widget has the focus

   AES SUPPORT LEVEL
     Full-use

   SYNOPSIS
     ##iinncclluuddee <<XXmm//XXmm..hh>>
     BBoooolleeaann XXmmPPrroocceessssTTrraavveerrssaall ((_w_i_d_g_e_t, _d_i_r_e_c_t_i_o_n))
          WWiiddggeett         _w_i_d_g_e_t;;
          XXmmTTrraavveerrssaallDDiirreeccttiioonn_d_i_r_e_c_t_i_o_n;;

   DESCRIPTION
     XXmmPPrroocceessssTTrraavveerrssaall determines which component of a hierarchy receives
     keyboard events when the hierarchy that contains the given widget has
     keyboard focus.  It is not possible to use XXmmPPrroocceessssTTrraavveerrssaall to
     traverse to MenuBars, Pulldown MenuPanes, or Popup MenuPanes.

     _w_i_d_g_e_t      Specifies the widget ID of the widget whose hierarchy is to
                 be traversed.  The hierarchy is only traversed up to the top
                 of the shell.  If that shell does not currently have the
                 focus, any changes to the element with focus within that
                 shell will not occur until the next time the shell recieves
                 focus.

     _d_i_r_e_c_t_i_o_n   Specifies the direction of traversal

     The _d_i_r_e_c_t_i_o_n parameter can have the following values, which cause the
     routine to take the corresponding actions:

       ++oo  XXmmTTRRAAVVEERRSSEE__CCUURRRREENNTT-Finds the hierarchy and the tab group that con-
          tain _w_i_d_g_e_t.  If this tab group is not the active tab group, makes
          it the active tab group.  If _w_i_d_g_e_t is an item in the active tab
          group, makes it the active item.  If _w_i_d_g_e_t is the active tab
          group, makes the first traversable item in the tab group the active
          item.

       ++oo  XXmmTTRRAAVVEERRSSEE__DDOOWWNN-Finds the hierarchy that contains _w_i_d_g_e_t.  Finds
          the active item in the active tab group and makes the item below it
          the active item.  If there is no item below, wraps.

       ++oo  XXmmTTRRAAVVEERRSSEE__HHOOMMEE-Finds the hierarchy that contains _w_i_d_g_e_t.  Finds
          the active item in the active tab group and makes the first
          traversable item in the tab group the active item.

       ++oo  XXmmTTRRAAVVEERRSSEE__LLEEFFTT-Finds the hierarchy that contains _w_i_d_g_e_t.  Finds
          the active item in the active tab group and makes the item to the
          left the active item.  If there is no item to the left, wraps.

       ++oo  XXmmTTRRAAVVEERRSSEE__NNEEXXTT-Finds the hierarchy that contains _w_i_d_g_e_t.  Finds
          the active item in the active tab group and makes the next item in
          child order the active item.


   2-415






   XmProcessTraversal(3X)



       ++oo  XXmmTTRRAAVVEERRSSEE__NNEEXXTT__TTAABB__GGRROOUUPP-Finds the hierarchy that contains _w_i_d_g_e_t.
          Finds the active tab group (if any) and makes the next tab group
          the active tab group in the hierarchy.

       ++oo  XXmmTTRRAAVVEERRSSEE__PPRREEVV-Finds the hierarchy that contains _w_i_d_g_e_t.  Finds
          the active item in the active tab group and makes the previous item
          in child order the active item.

       ++oo  XXmmTTRRAAVVEERRSSEE__PPRREEVV__TTAABB__GGRROOUUPP-Finds the hierarchy that contains _w_i_d_g_e_t.
          Finds the active tab group (if any) and makes the previous tab
          group the active tab group in the hierarchy.

       ++oo  XXmmTTRRAAVVEERRSSEE__RRIIGGHHTT-Finds the hierarchy that contains _w_i_d_g_e_t. Finds
          the active item in the active tab group and makes the item to the
          right the active item.  If there is no item to the right, wraps.

       ++oo  XXmmTTRRAAVVEERRSSEE__UUPP-Finds the hierarchy that contains _w_i_d_g_e_t.  Finds the
          active item in the active tab group and makes the item above it the
          active item.  If there is no item above, wraps.

   RETURN VALUE
     Returns True if the setting succeeded.  Returns False if the keyboard
     focus policy is not XXmmEEXXPPLLIICCIITT, if there are no traversable items, or if
     the call to the routine has invalid parameters.































   2-416






                                                             XmPushButton(3X)



   NAME
     XXmmPPuusshhBBuuttttoonn-The PushButton widget class

   AES SUPPORT LEVEL
     Full-use

   SYNOPSIS
     ##iinncclluuddee <<XXmm//PPuusshhBB..hh>>

   DESCRIPTION
     PushButton issues commands within an application.  It consists of a text
     label or pixmap surrounded by a border shadow.  When a PushButton is
     selected, the shadow changes to give the appearance that it has been
     pressed in.  When a PushButton is unselected, the shadow changes to give
     the appearance that it is out.

     The default behavior associated with a PushButton in a menu depends on
     the type of menu system in which it resides.  By default, BBSSeelleecctt con-
     trols the behavior of the PushButton.  In addition, BBMMeennuu controls the
     behavior of the PushButton if it resides in a PopupMenu system.  The
     actual mouse button used is determined by its RowColumn parent.

     Thickness for a second shadow, used when the PushButton is the default
     button,  may be specified by using the XXmmNNsshhoowwAAssDDeeffaauulltt resource.  If it
     has a non-zero value, the Label's resources XXmmNNmmaarrggiinnLLeefftt, XXmmNNmmaarrggiinn--
     RRiigghhtt, XXmmNNmmaarrggiinnTToopp, and XXmmNNmmaarrggiinnBBoottttoomm may be modified to accommodate
     the second shadow.

     If an initial value is specified for XXmmNNaarrmmPPiixxmmaapp but not for XXmmNNllaabbeell--
     PPiixxmmaapp, the XXmmNNaarrmmPPiixxmmaapp value is used for XXmmNNllaabbeellPPiixxmmaapp.

     Classes

     PushButton inherits behavior and resources from CCoorree, XXmmPPrriimmiittiivvee, and
     XXmmLLaabbeell Classes.

     The class pointer is xxmmPPuusshhBBuuttttoonnWWiiddggeettCCllaassss.

     The class name is XXmmPPuusshhBBuuttttoonn.

     New Resources

     The following table defines a set of widget resources used by the pro-
     grammer 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 XXmmNN or XXmmCC prefix and use the remaining letters.  To specify one of
     the defined values for a resource in a .Xdefaults file, remove the XXmm
     prefix and use the remaining letters (in either lowercase or uppercase,
     but include any underscores between words).  The codes in the access
     column indicate if the given resource can be set at creation time (C),
     set by using XXttSSeettVVaalluueess (S), retrieved by using XXttGGeettVVaalluueess (G), or is
     not applicable (N/A).


   2-417






   XmPushButton(3X)


                                               XXmmPPuusshhBBuuttttoonn RReessoouurrccee SSeett
   NNaammee                              CCllaassss                             TTyyppee             DDeeffaauulltt                AAcccceessss
   __________________________________________________________________________________________________________________
   XmNactivateCallback               XmCCallback                       XtCallbackList   NULL                   C
   XmNarmCallback                    XmCCallback                       XtCallbackList   NULL                   C
   XmNarmColor                       XmCArmColor                       Pixel            dynamic                CSG
   XmNarmPixmap                      XmCArmPixmap                      Pixmap           XmUNSPECIFIED_PIXMAP   CSG
   XmNdefaultButtonShadowThickness   XmCDefaultButtonShadowThickness   Dimension        dynamic                CSG
   XmNdisarmCallback                 XmCCallback                       XtCallbackList   NULL                   C
   XmNfillOnArm                      XmCFillOnArm                      Boolean          True                   CSG
   XmNmultiClick                     XmCMultiClick                     unsigned char    dynamic                CSG
   XmNshowAsDefault                  XmCShowAsDefault                  Dimension        0                      CSG

     XXmmNNaaccttiivvaatteeCCaallllbbaacckk
               Specifies the list of callbacks that is called when PushButton
               is activated.  PushButton is activated when the user presses
               and releases the active mouse button while the pointer is
               inside that widget.  Activating the PushButton also disarms
               it.  For this callback the reason is XXmmCCRR__AACCTTIIVVAATTEE.

     XXmmNNaarrmmCCaallllbbaacckk
               Specifies the list of callbacks that is called when PushButton
               is armed.  PushButton is armed when the user presses the
               active mouse button while the pointer is inside that widget.
               For this callback the reason is XXmmCCRR__AARRMM.

     XXmmNNaarrmmCCoolloorr
               Specifies the color with which to fill the armed button.
               XXmmNNffiillllOOnnAArrmm must be set to True for this resource to have an
               effect.  The default for a color display is a color between
               the background and the bottom shadow color.  For a monochrome
               display, the default is set to the foreground color, and any
               text in the label appears in the background color when the
               button is armed.

     XXmmNNaarrmmPPiixxmmaapp
               Specifies the pixmap to be used as the button face if XXmmNNllaa--
               bbeellTTyyppee is XXmmPPIIXXMMAAPP and PushButton is armed.  This resource is
               disabled when the PushButton is in a menu.

     XXmmNNddeeffaauullttBBuuttttoonnSShhaaddoowwTThhiicckknneessss
               This resource specifies the width of the default button indi-
               cator shadow.  If this resource is zero, the width of the sha-
               dow comes from the value of the XXmmNNsshhoowwAAssDDeeffaauulltt resource.  If
               this resource is greater than zero, the XXmmNNsshhoowwAAssDDeeffaauulltt
               resource is only used to specify whether this button is the
               default.  The default value is the initial value of XXmmNNsshhoowwAAss--
               DDeeffaauulltt.

     XXmmNNddiissaarrmmCCaallllbbaacckk
               Specifies the list of callbacks that is called when PushButton
               is disarmed.  PushButton is disarmed when the user presses and
               releases the active mouse button while the pointer is inside
               that widget.  For this callback, the reason is XXmmCCRR__DDIISSAARRMM.


   2-418






                                                             XmPushButton(3X)



     XXmmNNffiillllOOnnAArrmm
               Forces the PushButton to fill the background of the button
               with the color specified by XXmmNNaarrmmCCoolloorr when the button is
               armed and when this resource is set to True.  If False, only
               the top and bottom shadow colors are switched.  When the Push-
               Button is in a menu, this resource is ignored and assumed to
               be False.

     XXmmNNmmuullttiiCClliicckk
               If a button click is followed by another button click within
               the time span specified by the display's multi-click time, and
               this resource is set to XXmmMMUULLTTIICCLLIICCKK__DDIISSCCAARRDD, do not process
               the second click.  If this resource is set to
               XXmmMMUULLTTIICCLLIICCKK__KKEEEEPP, process the event and increment _c_l_i_c_k__c_o_u_n_t
               in the callback structure.  When the button is not in a menu,
               the default value is XXmmMMUULLTTIICCLLIICCKK__KKEEEEPP.

     XXmmNNsshhoowwAAssDDeeffaauulltt
               If XXmmNNddeeffaauullttBBuuttttoonnSShhaaddoowwTThhiicckknneessss is greater than zero, a
               value greater than zero in this resource specifies to mark
               this button as the default button.  If XXmmNNddeeffaauullttBBuuttttoonnSShhaa--
               ddoowwTThhiicckknneessss is zero, a value greater than zero in this
               resource specifies to mark this button as the default button
               with the shadow thickness specified by this resource.  The
               space between the shadow and the default shadow is equal to
               the sum of both shadows.  The default value is zero.  When
               this value is not zero, the Label resources XXmmNNmmaarrggiinnLLeefftt,
               XXmmNNmmaarrggiinnRRiigghhtt, XXmmNNmmaarrggiinnTToopp, and XXmmNNmmaarrggiinnBBoottttoomm may be modi-
               fied to accommodate the second shadow.  This resource is dis-
               abled when the PushButton is in a menu.

     Inherited Resources

     PushButton inherits behavior and resources from the following superc-
     lasses.  For a complete description of each resource, refer to the man
     page for that superclass.
                                              XXmmLLaabbeell RReessoouurrccee SSeett
   NNaammee                        CCllaassss                       TTyyppee                DDeeffaauulltt                  AAcccceessss
   ___________________________________________________________________________________________________________
   XmNaccelerator              XmCAccelerator              String              NULL                     CSG
   XmNacceleratorText          XmCAcceleratorText          XmString            NULL                     CSG
   XmNalignment                XmCAlignment                unsigned char       dynamic                  CSG
   XmNfontList                 XmCFontList                 XmFontList          dynamic                  CSG
   XmNlabelInsensitivePixmap   XmCLabelInsensitivePixmap   Pixmap              XmUNSPECIFIED_PIXMAP     CSG
   XmNlabelPixmap              XmCLabelPixmap              Pixmap              dynamic                  CSG
   XmNlabelString              XmCXmString                 XmString            dynamic                  CSG
   XmNlabelType                XmCLabelType                unsigned char       XmSTRING                 CSG
   XmNmarginBottom             XmCMarginBottom             Dimension           dynamic                  CSG
   XmNmarginHeight             XmCMarginHeight             Dimension           2                        CSG
   XmNmarginLeft               XmCMarginLeft               Dimension           dynamic                  CSG
   XmNmarginRight              XmCMarginRight              Dimension           dynamic                  CSG
   XmNmarginTop                XmCMarginTop                Dimension           dynamic                  CSG
   XmNmarginWidth              XmCMarginWidth              Dimension           2                        CSG


   2-419






   XmPushButton(3X)


   XmNmnemonic                 XmCMnemonic                 KeySym              NULL                     CSG
   XmNmnemonicCharSet          XmCMnemonicCharSet          String              XmFONTLIST_DEFAULT_TAG   CSG
   XmNrecomputeSize            XmCRecomputeSize            Boolean             True                     CSG
   XmNstringDirection          XmCStringDirection          XmStringDirection   dynamic                  CSG
                                       XXmmPPrriimmiittiivvee RReessoouurrccee SSeett
   NNaammee                    CCllaassss                   TTyyppee               DDeeffaauulltt                AAcccceessss
   ________________________________________________________________________________________________
   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
   XmNhighlightOnEnter     XmCHighlightOnEnter     Boolean            False                  CSG
   XmNhighlightPixmap      XmCHighlightPixmap      Pixmap             dynamic                CSG
   XmNhighlightThickness   XmCHighlightThickness   Dimension          2                      CSG
   XmNnavigationType       XmCNavigationType       XmNavigationType   XmNONE                 CSG
   XmNshadowThickness      XmCShadowThickness      Dimension          2                      CSG
   XmNtopShadowColor       XmCTopShadowColor       Pixel              dynamic                CSG
   XmNtopShadowPixmap      XmCTopShadowPixmap      Pixmap             dynamic                CSG
   XmNtraversalOn          XmCTraversalOn          Boolean            True                   CSG
   XmNuserData             XmCUserData             XtPointer          NULL                   CSG
                                                 CCoorree RReessoouurrccee SSeett
   NNaammee                            CCllaassss                           TTyyppee             DDeeffaauulltt                AAcccceessss
   ______________________________________________________________________________________________________________
   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:
     ttyyppeeddeeff ssttrruucctt
     {{
       iinntt      _r_e_a_s_o_n;;
       XXEEvveenntt   * _e_v_e_n_t;;
       iinntt      _c_l_i_c_k__c_o_u_n_t;;
     }} XXmmPPuusshhBBuuttttoonnCCaallllbbaacckkSSttrruucctt;;



   2-420






                                                             XmPushButton(3X)


     _r_e_a_s_o_n Indicates why the callback was invoked.

     _e_v_e_n_t  Points to the XXEEvveenntt that triggered the callback.

     _c_l_i_c_k__c_o_u_n_t
            This value is valid only when the reason is XXmmCCRR__AACCTTIIVVAATTEE.  It
            contains the number of clicks in the last multiclick sequence if
            the XXmmNNmmuullttiiCClliicckk resource is set to XXmmMMUULLTTIICCLLIICCKK__KKEEEEPP, otherwise
            it contains 11.  The activate callback is invoked for each click
            if XXmmNNmmuullttiiCClliicckk is set to XXmmMMUULLTTIICCLLIICCKK__KKEEEEPP.

     Action Routines

     The XmPushButton action routines are described below:

     AAccttiivvaattee(()):
               This action draws the shadow in the unarmed state.  If the
               button is not in a menu and if XXmmNNffiillllOOnnAArrmm is set to True,
               the background color reverts to the unarmed color.  If XXmmNNllaa--
               bbeellTTyyppee is XXmmPPIIXXMMAAPP, the XXmmNNllaabbeellPPiixxmmaapp is used for the button
               face.  If the pointer is still within the button, this action
               calls the callbacks for XXmmNNaaccttiivvaatteeCCaallllbbaacckk.

     AArrmm(()):    This action arms the PushButton.  It draws the shadow in the
               armed state.  If the button is not in a menu and if XXmmNNffiill--
               llOOnnAArrmm is set to True, it fills the button with the color
               specified by XXmmNNaarrmmCCoolloorr.  If XXmmNNllaabbeellTTyyppee is XXmmPPIIXXMMAAPP, the
               XXmmNNaarrmmPPiixxmmaapp is used for the button face.  It calls the
               XXmmNNaarrmmCCaallllbbaacckk callbacks.

     AArrmmAAnnddAAccttiivvaattee(()):
               In a menu, does the following: Unposts all menus in the menu
               hierarchy.  Unless the button is already armed, calls the
               XXmmNNaarrmmCCaallllbbaacckk callbacks.  Calls the XXmmNNaaccttiivvaatteeCCaallllbbaacckk and
               XXmmNNddiissaarrmmCCaallllbbaacckk callbacks.  Outside a menu, does the follow-
               ing: Draws the shadow in the armed state and, if XXmmNNffiillllOOnnAArrmm
               is set to True, fills the button with the color specified by
               XXmmNNaarrmmCCoolloorr.  If XXmmNNllaabbeellTTyyppee is XXmmPPIIXXMMAAPP, the XXmmNNaarrmmPPiixxmmaapp is
               used for the button face.  Calls the XXmmNNaarrmmCCaallllbbaacckk callbacks.
               Outside a menu, this action also arranges for the following to
               happen, either immediately or at a later time: The shadow is
               drawn in the unarmed state and, if XXmmNNffiillllOOnnAArrmm is set to
               True, the background color reverts to the unarmed color.  If
               XXmmNNllaabbeellTTyyppee is XXmmPPIIXXMMAAPP, the XXmmNNllaabbeellPPiixxmmaapp is used for the
               button face.  The XXmmNNaaccttiivvaatteeCCaallllbbaacckk and XXmmNNddiissaarrmmCCaallllbbaacckk
               callbacks are called.

     BBttnnDDoowwnn(()):
               This action unposts any menus posted by the PushButton's
               parent menu, disables keyboard traversal for the menu, and
               enables mouse traversal for the menu.  It draws the shadow in
               the armed state and, unless the button is already armed, calls
               the XXmmNNaarrmmCCaallllbbaacckk callbacks.



   2-421






   XmPushButton(3X)


     BBttnnUUpp(()):  This action unposts all menus in the menu hierarchy and
               activates the PushButton.  It calls the XXmmNNaaccttiivvaatteeCCaallllbbaacckk
               callbacks and then the XXmmNNddiissaarrmmCCaallllbbaacckk callbacks.

     DDiissaarrmm(()): Calls the callbacks for XXmmNNddiissaarrmmCCaallllbbaacckk.

     HHeellpp(()):   In a Pulldown or Popup MenuPane, unposts all menus in the menu
               hierarchy and, when the shell's keyboard focus policy is XXmmEEXX--
               PPLLIICCTT, restores keyboard focus to the widget that had the
               focus before the menu system was entered.  Calls the callbacks
               for XXmmNNhheellppCCaallllbbaacckk if any exist.  If there are no help call-
               backs for this widget, this action calls the help callbacks
               for the nearest ancestor that has them.

     MMeennuuSShheellllPPooppddoowwnnOOnnee(()):
               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 XXmmEEXXPPLLIICCTT, restores
               keyboard focus to the widget that had the focus before the
               MenuBar was entered.  In other Pulldown MenuPanes, unposts the
               menu.  In a Popup MenuPane, unposts the menu and restores key-
               board focus to the widget from which the menu was posted.

     MMuullttiiAAccttiivvaattee(()):
               If XXmmNNmmuullttiiCClliicckk is XXmmMMUULLTTIICCLLIICCKK__DDIISSCCAARRDD, this action does
               nothing.  If XXmmNNmmuullttiiCClliicckk is XXmmMMUULLTTIICCLLIICCKK__KKEEEEPP, this action
               does the following: Increments _c_l_i_c_k__c_o_u_n_t in the callback
               structure.  Draws the shadow in the unarmed state.  If the
               button is not in a menu and if XXmmNNffiillllOOnnAArrmm is set to True,
               the background color reverts to the unarmed color.  If XXmmNNllaa--
               bbeellTTyyppee is XXmmPPIIXXMMAAPP, the XXmmNNllaabbeellPPiixxmmaapp is used for the button
               face.  If the pointer is within the PushButton, calls the
               callbacks for XXmmNNaaccttiivvaatteeCCaallllbbaacckk.  Calls the callbacks for
               XXmmNNddiissaarrmmCCaallllbbaacckk.

     MMuullttiiAArrmm(()):
               If XXmmNNmmuullttiiCClliicckk is XXmmMMUULLTTIICCLLIICCKK__DDIISSCCAARRDD, this action does
               nothing.  If XXmmNNmmuullttiiCClliicckk is XXmmMMUULLTTIICCLLIICCKK__KKEEEEPP, this action
               does the following: Draws the shadow in the armed state.  If
               the button is not in a menu and if XXmmNNffiillllOOnnAArrmm is set to
               True, fills the button with the color specified by
               XXmmNNaarrmmCCoolloorr.  If XXmmNNllaabbeellTTyyppee is XXmmPPIIXXMMAAPP, the XXmmNNaarrmmPPiixxmmaapp is
               used for the button face.  Calls the XXmmNNaarrmmCCaallllbbaacckk callbacks.

   RELATED INFORMATION
     CCoorree((33XX)), XXmmCCrreeaatteePPuusshhBBuuttttoonn((33XX)), XXmmLLaabbeell((33XX)), XXmmPPrriimmiittiivvee((33XX)), and
     XXmmRRoowwCCoolluummnn((33XX)).









   2-422






                                                       XmPushButtonGadget(3X)



   NAME
     XXmmPPuusshhBBuuttttoonnGGaaddggeett-The PushButtonGadget widget class

   AES SUPPORT LEVEL
     Full-use

   SYNOPSIS
     ##iinncclluuddee <<XXmm//PPuusshhBBGG..hh>>

   DESCRIPTION
     PushButtonGadget issues commands within an application.  It consists of
     a text label or pixmap surrounded by a border shadow.  When PushBut-
     tonGadget is selected, the shadow changes to give the appearance that
     the PushButtonGadget has been pressed in.  When PushButtonGadget is
     unselected, the shadow changes to give the appearance that the PushBut-
     tonGadget is out.

     The default behavior associated with a PushButtonGadget in a menu
     depends on the type of menu system in which it resides.  By default,
     BBSSeelleecctt controls the behavior of the PushButtonGadget.  In addition,
     BBMMeennuu controls the behavior of the PushButtonGadget if it resides in a
     PopupMenu system.  The actual mouse button used is determined by its
     RowColumn parent.

     Thickness for a second shadow may be specified by using the XXmmNNsshhoowwAAssDDee--
     ffaauulltt resource.  If it has a non-zero value, the Label's resources
     XXmmNNmmaarrggiinnLLeefftt, XXmmNNmmaarrggiinnRRiigghhtt, XXmmNNmmaarrggiinnTToopp, and XXmmNNmmaarrggiinnBBoottttoomm may be
     modified to accommodate the second shadow.

     If an initial value is specified for XXmmNNaarrmmPPiixxmmaapp but not for XXmmNNllaabbeell--
     PPiixxmmaapp, the XXmmNNaarrmmPPiixxmmaapp value is used for XXmmNNllaabbeellPPiixxmmaapp.

     Classes

     PushButtonGadget inherits behavior and resources from OObbjjeecctt, RReeccttOObbjj,
     XXmmGGaaddggeett and XXmmLLaabbeellGGaaddggeett classes.

     The class pointer is xxmmPPuusshhBBuuttttoonnGGaaddggeettCCllaassss.

     The class name is XXmmPPuusshhBBuuttttoonnGGaaddggeett.

     New Resources

     The following table defines a set of widget resources used by the pro-
     grammer 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 XXmmNN or XXmmCC prefix and use the remaining letters.  To specify one of
     the defined values for a resource in a .Xdefaults file, remove the XXmm
     prefix and use the remaining letters (in either lowercase or uppercase,
     but include any underscores between words).  The codes in the access
     column indicate if the given resource can be set at creation time (C),
     set by using XXttSSeettVVaalluueess (S), retrieved by using XXttGGeettVVaalluueess (G), or is


   2-423






   XmPushButtonGadget(3X)


     not applicable (N/A).
                                                   XXmmPPuusshhBBuuttttoonnGGaaddggeett
   NNaammee                              CCllaassss                             TTyyppee             DDeeffaauulltt                AAcccceessss
   __________________________________________________________________________________________________________________
   XmNactivateCallback               XmCCallback                       XtCallbackList   NULL                   C
   XmNarmCallback                    XmCCallback                       XtCallbackList   NULL                   C
   XmNarmColor                       XmCArmColor                       Pixel            dynamic                CSG
   XmNarmPixmap                      XmCArmPixmap                      Pixmap           XmUNSPECIFIED_PIXMAP   CSG
   XmNdefaultButtonShadowThickness   XmCdefaultButtonShadowThickness   Dimension        dynamic                CSG
   XmNdisarmCallback                 XmCCallback                       XtCallbackList   NULL                   C
   XmNfillOnArm                      XmCFillOnArm                      Boolean          True                   CSG
   XmNmultiClick                     XmCMultiClick                     unsigned char    dynamic                CSG
   XmNshowAsDefault                  XmCShowAsDefault                  Dimension        0                      CSG

     XXmmNNaaccttiivvaatteeCCaallllbbaacckk
               Specifies the list of callbacks that is called when the Push-
               ButtonGadget is activated.  It is activated when the user
               presses and releases the active mouse button while the pointer
               is inside the PushButtonGadget.  Activating PushButtonGadget
               also disarms it.  For this callback the reason is
               XXmmCCRR__AACCTTIIVVAATTEE.

     XXmmNNaarrmmCCaallllbbaacckk
               Specifies the list of callbacks that is called when PushBut-
               tonGadget is armed.  It is armed when the user presses the
               active mouse button while the pointer is inside the PushBut-
               tonGadget.  For this callback the reason is XXmmCCRR__AARRMM.

     XXmmNNaarrmmCCoolloorr
               Specifies the color with which to fill the armed button.
               XXmmNNffiillllOOnnAArrmm must be set to True for this resource to have an
               effect.  The default for a color display is a color between
               the background and the bottom shadow color.  For a monochrome
               display, the default is set to the foreground color, and any
               text in the label appears in the background color when the
               button is armed.

     XXmmNNaarrmmPPiixxmmaapp
               Specifies the pixmap to be used as the button face if XXmmNNllaa--
               bbeellttyyppee is XXmmPPIIXXMMAAPP and PushButtonGadget is armed.  This
               resource is disabled when the PushButtonGadget is in a menu.

     XXmmNNddeeffaauullttBBuuttttoonnSShhaaddoowwTThhiicckknneessss
               This resource specifies the width of the default button indi-
               cator shadow.  If this resource is zero, the width of the sha-
               dow comes from the value of the XXmmNNsshhoowwAAssDDeeffaauulltt resource.  If
               this resource is greater than zero, the XXmmNNsshhoowwAAssDDeeffaauulltt
               resource is only used to specify whether this button is the
               default.  The default value is the initial value of XXmmNNsshhoowwAAss--
               DDeeffaauulltt.

     XXmmNNddiissaarrmmCCaallllbbaacckk
               Specifies the list of callbacks that is called when the Push-
               ButtonGadget is disarmed.  PushButtonGadget is disarmed when


   2-424






                                                       XmPushButtonGadget(3X)


               the user presses and releases the active mouse button while
               the pointer is inside that gadget.  For this callback, the
               reason is XXmmCCRR__DDIISSAARRMM.

     XXmmNNffiillllOOnnAArrmm
               Forces the PushButtonGadget to fill the background of the but-
               ton with the color specified by XXmmNNaarrmmCCoolloorr when the button is
               armed and when this resource is set to True.  If False, only
               the top and bottom shadow colors are switched.  When the Push-
               ButtonGadget is in a menu, this resource is ignored and
               assumed to be False.

     XXmmNNmmuullttiiCClliicckk
               If a button click is followed by another button click within
               the time span specified by the display's multi-click time, and
               this resource is set to XXmmMMUULLTTIICCLLIICCKK__DDIISSCCAARRDD, do not process
               the second click.  If this resource is set to
               XXmmMMUULLTTIICCLLIICCKK__KKEEEEPP, process the event and increment _c_l_i_c_k__c_o_u_n_t
               in the callback structure.  When the PushButtonGadget is not
               in a menu, the default value is XXmmMMUULLTTIICCLLIICCKK__KKEEEEPP.

     XXmmNNsshhoowwAAssDDeeffaauulltt
               If XXmmNNddeeffaauullttBBuuttttoonnSShhaaddoowwTThhiicckknneessss is greater than zero, a
               value greater than zero in this resource specifies to mark
               this button as the default button.  If XXmmNNddeeffaauullttBBuuttttoonnSShhaa--
               ddoowwTThhiicckknneessss is zero, a value greater than zero in this
               resource specifies to mark this button as the default button
               with the shadow thickness specified by this resource.  The
               space between the shadow and the default shadow is equal to
               the sum of both shadows.  The default value is zero.  When
               this value is not zero, the Label resources XXmmNNmmaarrggiinnLLeefftt,
               XXmmNNmmaarrggiinnRRiigghhtt, XXmmNNmmaarrggiinnTToopp, and XXmmNNmmaarrggiinnBBoottttoomm may be modi-
               fied to accommodate the second shadow.  This resource is dis-
               abled when the PushButton is in a menu.

     Inherited Resources

     PushButtonGadget inherits behavior and resources from the following
     superclasses.  For a complete description of each resource, refer to the
     man page for that superclass.
                                          XXmmLLaabbeellGGaaddggeett RReessoouurrccee SSeett
   NNaammee                        CCllaassss                       TTyyppee                DDeeffaauulltt                AAcccceessss
   _________________________________________________________________________________________________________
   XmNaccelerator              XmCAccelerator              String              NULL                   CSG
   XmNacceleratorText          XmCAcceleratorText          XmString            NULL                   CSG
   XmNalignment                XmCAlignment                unsigned char       dynamic                CSG
   XmNfontList                 XmCFontList                 XmFontList          dynamic                CSG
   XmNlabelInsensitivePixmap   XmCLabelInsensitivePixmap   Pixmap              XmUNSPECIFIED_PIXMAP   CSG
   XmNlabelPixmap              XmCLabelPixmap              Pixmap              dynamic                CSG
   XmNlabelString              XmCXmString                 XmString            dynamic                CSG
   XmNlabelType                XmCLabelType                unsigned char       XmSTRING               CSG
   XmNmarginBottom             XmCMarginBottom             Dimension           dynamic                CSG
   XmNmarginHeight             XmCMarginHeight             Dimension           2                      CSG
   XmNmarginLeft               XmCMarginLeft               Dimension           dynamic                CSG


   2-425






   XmPushButtonGadget(3X)


   XmNmarginRight              XmCMarginRight              Dimension           dynamic                CSG
   XmNmarginTop                XmCMarginTop                Dimension           dynamic                CSG
   XmNmarginWidth              XmCMarginWidth              Dimension           2                      CSG
   XmNmnemonic                 XmCMnemonic                 KeySym              NULL                   CSG
   XmNmnemonicCharSet          XmCMnemonicCharSet          String              dynamic                CSG
   XmNrecomputeSize            XmCRecomputeSize            Boolean             True                   CSG
   XmNstringDirection          XmCStringDirection          XmStringDirection   dynamic                CSG
                                  XXmmGGaaddggeett RReessoouurrccee SSeett
   NNaammee                    CCllaassss                   TTyyppee               DDeeffaauulltt   AAcccceessss
   ___________________________________________________________________________________
   XmNhelpCallback         XmCCallback             XtCallbackList     NULL      C
   XmNhighlightOnEnter     XmCHighlightOnEnter     Boolean            False     CSG
   XmNhighlightThickness   XmCHighlightThickness   Dimension          2         CSG
   XmNnavigationType       XmCNavigationType       XmNavigationType   XmNONE    CSG
   XmNshadowThickness      XmCShadowThickness      Dimension          2         CSG
   XmNtraversalOn          XmCTraversalOn          Boolean            True      CSG
   XmNuserData             XmCUserData             XtPointer          NULL      CSG
                               RReeccttOObbjj RReessoouurrccee SSeett
       NNaammee                   CCllaassss            TTyyppee        DDeeffaauulltt   AAcccceessss
       ____________________________________________________________________
       XmNancestorSensitive   XmCSensitive     Boolean     dynamic   G
       XmNborderWidth         XmCBorderWidth   Dimension   0         CSG
       XmNheight              XmCHeight        Dimension   dynamic   CSG
       XmNsensitive           XmCSensitive     Boolean     True      CSG
       XmNwidth               XmCWidth         Dimension   dynamic   CSG
       XmNx                   XmCPosition      Position    0         CSG
       XmNy                   XmCPosition      Position    0         CSG
                               OObbjjeecctt RReessoouurrccee SSeett
       NNaammee                 CCllaassss         TTyyppee             DDeeffaauulltt   AAcccceessss
       ____________________________________________________________________
       XmNdestroyCallback   XmCCallback   XtCallbackList   NULL      C

     Callback Information

     A pointer to the following structure is passed to each callback:
     ttyyppeeddeeff ssttrruucctt
     {{
       iinntt      _r_e_a_s_o_n;;
       XXEEvveenntt   * _e_v_e_n_t;;
       iinntt      _c_l_i_c_k__c_o_u_n_t;;
     }} XXmmPPuusshhBBuuttttoonnCCaallllbbaacckkSSttrruucctt;;

     _r_e_a_s_o_n Indicates why the callback was invoked.

     _e_v_e_n_t  Points to the XXEEvveenntt that triggered the callback.

     _c_l_i_c_k__c_o_u_n_t
            This value is valid only when the reason is XXmmCCRR__AACCTTIIVVAATTEE.  It
            contains the number of clicks in the last multiclick sequence if
            the XXmmNNmmuullttiiCClliicckk resource is set to XXmmMMUULLTTIICCLLIICCKK__KKEEEEPP, otherwise
            it contains 11.  The activate callback is invoked for each click
            if XXmmNNmmuullttiiCClliicckk is set to XXmmMMUULLTTIICCLLIICCKK__KKEEEEPP.




   2-426






                                                       XmPushButtonGadget(3X)


   RELATED INFORMATION
     OObbjjeecctt((33XX)), RReeccttOObbjj((33XX)), XXmmCCrreeaatteePPuusshhBBuuttttoonnGGaaddggeett((33XX)), XXmmGGaaddggeett((33XX)),
     XXmmLLaabbeellGGaaddggeett((33XX)), and XXmmRRoowwCCoolluummnn((33XX)).





















































   2-427






   XmRemoveProtocolCallback(3X)



   NAME
     XXmmRReemmoovveePPrroottooccoollCCaallllbbaacckk-A VendorShell function that removes a callback
     from the internal list

   AES SUPPORT LEVEL
     Trial-use

   SYNOPSIS
     ##iinncclluuddee <<XXmm//XXmm..hh>>
     ##iinncclluuddee <<XXmm//PPrroottooccoollss..hh>>
     vvooiidd XXmmRReemmoovveePPrroottooccoollCCaallllbbaacckk ((_s_h_e_l_l, _p_r_o_p_e_r_t_y, _p_r_o_t_o_c_o_l, _c_a_l_l_b_a_c_k, _c_l_o_s_u_r_e))
          WWiiddggeett      _s_h_e_l_l;;
          AAttoomm        _p_r_o_p_e_r_t_y;;
          AAttoomm        _p_r_o_t_o_c_o_l;;
          XXttCCaallllbbaacckkPPrroocc_c_a_l_l_b_a_c_k;;
          XXttPPooiinntteerr   _c_l_o_s_u_r_e;;
     vvooiidd XXmmRReemmoovveeWWMMPPrroottooccoollCCaallllbbaacckk ((_s_h_e_l_l, _p_r_o_t_o_c_o_l, _c_a_l_l_b_a_c_k, _c_l_o_s_u_r_e))
          WWiiddggeett      _s_h_e_l_l;;
          AAttoomm        _p_r_o_t_o_c_o_l;;
          XXttCCaallllbbaacckkPPrroocc_c_a_l_l_b_a_c_k;;
          XXttPPooiinntteerr   _c_l_o_s_u_r_e;;

   DESCRIPTION
     XXmmRReemmoovveePPrroottooccoollCCaallllbbaacckk removes a callback from the internal list.

     XXmmRReemmoovveeWWMMPPrroottooccoollCCaallllbbaacckk is a convenience interface.  It calls XXmmRReemmoo--
     vveePPrroottooccoollCCaallllbbaacckk with the property value set to the atom returned by
     interning WWMM__PPRROOTTOOCCOOLLSS.

     _s_h_e_l_l  Specifies the widget with which the protocol property is associ-
            ated

     _p_r_o_p_e_r_t_y
            Specifies the protocol property

     _p_r_o_t_o_c_o_l
            Specifies the protocol atom (or an int cast to Atom)

     _c_a_l_l_b_a_c_k
            Specifies the procedure to call when a protocol message is
            received

     _c_l_o_s_u_r_eSpecifies the client data to be passed to the callback when it is
            invoked

     For a complete definition of VendorShell and its associated resources,
     see VVeennddoorrSShheellll((33XX)).

   RELATED INFORMATION
     VVeennddoorrSShheellll((33XX)), XXmmIInntteerrnnAAttoomm((33XX)), and XXmmRReemmoovveeWWMMPPrroottooccoollCCaallllbbaacckk((33XX)).





   2-428






                                                        XmRemoveProtocols(3X)



   NAME
     XXmmRReemmoovveePPrroottooccoollss-A VendorShell function that removes the protocols from
     the protocol manager and deallocates the internal tables

   AES SUPPORT LEVEL
     Trial-use

   SYNOPSIS
     ##iinncclluuddee <<XXmm//XXmm..hh>>
     ##iinncclluuddee <<XXmm//PPrroottooccoollss..hh>>
     vvooiidd XXmmRReemmoovveePPrroottooccoollss ((_s_h_e_l_l, _p_r_o_p_e_r_t_y, _p_r_o_t_o_c_o_l_s, _n_u_m__p_r_o_t_o_c_o_l_s))
          WWiiddggeett    _s_h_e_l_l;;
          AAttoomm      _p_r_o_p_e_r_t_y;;
          AAttoomm      * _p_r_o_t_o_c_o_l_s;;
          CCaarrddiinnaall  _n_u_m__p_r_o_t_o_c_o_l_s;;
     vvooiidd XXmmRReemmoovveeWWMMPPrroottooccoollss ((_s_h_e_l_l, _p_r_o_t_o_c_o_l_s, _n_u_m__p_r_o_t_o_c_o_l_s))
          WWiiddggeett    _s_h_e_l_l;;
          AAttoomm       * _p_r_o_t_o_c_o_l_s;;
          CCaarrddiinnaall  _n_u_m__p_r_o_t_o_c_o_l_s;;

   DESCRIPTION
     XXmmRReemmoovveePPrroottooccoollss removes the protocols from the protocol manager and
     deallocates the internal tables.  If any of the protocols are active, it
     will update the handlers and update the property if _s_h_e_l_l is realized.

     XXmmRReemmoovveeWWMMPPrroottooccoollss is a convenience interface.  It calls XXmmRReemmoovveePPrroottoo--
     ccoollss with the property value set to the atom returned by interning
     WWMM__PPRROOTTOOCCOOLLSS.

     _s_h_e_l_l       Specifies the widget with which the protocol property is
                 associated

     _p_r_o_p_e_r_t_y    Specifies the protocol property

     _p_r_o_t_o_c_o_l_s   Specifies the protocol atoms (or ints cast to Atom)

     _n_u_m__p_r_o_t_o_c_o_l_s
                 Specifies the number of elements in protocols

     For a complete definition of VendorShell and its associated resources,
     see VVeennddoorrSShheellll((33XX)).

   RELATED INFORMATION
     VVeennddoorrSShheellll((33XX)), XXmmIInntteerrnnAAttoomm((33XX)), and XXmmRReemmoovveeWWMMPPrroottooccoollss((33XX)).











   2-429






   XmRemoveTabGroup(3X)



   NAME
     XXmmRReemmoovveeTTaabbGGrroouupp-A function that removes a tab group

   AES SUPPORT LEVEL
     Full-use

   HISTORY/DIRECTION
     The XXmmRReemmoovveeTTaabbGGrroouupp function is scheduled for removal in revision E.

   SYNOPSIS
     ##iinncclluuddee <<XXmm//XXmm..hh>>
     vvooiidd XXmmRReemmoovveeTTaabbGGrroouupp ((_t_a_b__g_r_o_u_p))
          WWiiddggeett    _t_a_b__g_r_o_u_p;;

   DESCRIPTION
     This function is obsolete and its behavior is replaced by setting XXmmNNnnaa--
     vviiggaattiioonnTTyyppee to XXmmNNOONNEE.  XXmmRReemmoovveeTTaabbGGrroouupp removes a widget from the list
     of tab groups associated with a particular widget hierarchy and sets the
     widget's XXmmNNnnaavviiggaattiioonnTTyyppee to XXmmNNOONNEE.

     _t_a_b__g_r_o_u_p Specifies the widget ID

   RELATED INFORMATION
     XXmmAAddddTTaabbGGrroouupp((33XX)), XXmmMMaannaaggeerr((33XX)), and XXmmPPrriimmiittiivvee((33XX)).































   2-430






                                               XmRemoveWMProtocolCallback(3X)



   NAME
     XXmmRReemmoovveeWWMMPPrroottooccoollCCaallllbbaacckk-A VendorShell convenience interface that
     removes a callback from the internal list

   AES SUPPORT LEVEL
     Trial-use

   SYNOPSIS
     ##iinncclluuddee <<XXmm//XXmm..hh>>
     ##iinncclluuddee <<XXmm//PPrroottooccoollss..hh>>
     vvooiidd XXmmRReemmoovveeWWMMPPrroottooccoollCCaallllbbaacckk ((_s_h_e_l_l, _p_r_o_t_o_c_o_l, _c_a_l_l_b_a_c_k, _c_l_o_s_u_r_e))
          WWiiddggeett      _s_h_e_l_l;;
          AAttoomm        _p_r_o_t_o_c_o_l;;
          XXttCCaallllbbaacckkPPrroocc_c_a_l_l_b_a_c_k;;
          XXttPPooiinntteerr   _c_l_o_s_u_r_e;;

   DESCRIPTION
     XXmmRReemmoovveeWWMMPPrroottooccoollCCaallllbbaacckk is a convenience interface.  It calls XXmmRReemmoo--
     vveePPrroottooccoollCCaallllbbaacckk with the property value set to the atom returned by
     interning WWMM__PPRROOTTOOCCOOLLSS.

     _s_h_e_l_l  Specifies the widget with which the protocol property is associ-
            ated

     _p_r_o_t_o_c_o_l
            Specifies the protocol atom (or an int type cast to Atom)

     _c_a_l_l_b_a_c_k
            Specifies the procedure to call when a protocol message is
            received

     _c_l_o_s_u_r_eSpecifies the client data to be passed to the callback when it is
            invoked

     For a complete definition of VendorShell and its associated resources,
     see VVeennddoorrSShheellll((33XX)).

   RELATED INFORMATION
     VVeennddoorrSShheellll((33XX)), XXmmIInntteerrnnAAttoomm((33XX)), and XXmmRReemmoovveePPrroottooccoollCCaallllbbaacckk((33XX)).
















   2-431






   XmRemoveWMProtocols(3X)



   NAME
     XXmmRReemmoovveeWWMMPPrroottooccoollss-A VendorShell convenience interface that removes the
     protocols from the protocol manager and deallocates the internal tables

   AES SUPPORT LEVEL
     Trial-use

   SYNOPSIS
     ##iinncclluuddee <<XXmm//XXmm..hh>>
     ##iinncclluuddee <<XXmm//PPrroottooccoollss..hh>>
     vvooiidd XXmmRReemmoovveeWWMMPPrroottooccoollss ((_s_h_e_l_l, _p_r_o_t_o_c_o_l_s, _n_u_m__p_r_o_t_o_c_o_l_s))
          WWiiddggeett    _s_h_e_l_l;;
          AAttoomm      * _p_r_o_t_o_c_o_l_s;;
          CCaarrddiinnaall  _n_u_m__p_r_o_t_o_c_o_l_s;;

   DESCRIPTION
     XXmmRReemmoovveeWWMMPPrroottooccoollss is a convenience interface.  It calls XXmmRReemmoovveePPrroottoo--
     ccoollss with the property value set to the atom returned by interning
     WWMM__PPRROOTTOOCCOOLLSS.

     _s_h_e_l_l       Specifies the widget with which the protocol property is
                 associated

     _p_r_o_t_o_c_o_l_s   Specifies the protocol atoms (or ints cast to Atom)

     _n_u_m__p_r_o_t_o_c_o_l_s
                 Specifies the number of elements in protocols

     For a complete definition of VendorShell and its associated resources,
     see VVeennddoorrSShheellll((33XX)).

   RELATED INFORMATION
     VVeennddoorrSShheellll((33XX)), XXmmIInntteerrnnAAttoomm((33XX)), and XXmmRReemmoovveePPrroottooccoollss((33XX)).






















   2-432






                                                     XmResolvePartOffsets(3X)



   NAME
     XXmmRReessoollvveePPaarrttOOffffsseettss-A function that allows writing of upward-compatible
     applications and widgets

   AES SUPPORT LEVEL
     Full-use

   SYNOPSIS
     ##iinncclluuddee <<XXmm//XXmmPP..hh>>
     vvooiidd XXmmRReessoollvveePPaarrttOOffffsseettss ((_w_i_d_g_e_t__c_l_a_s_s, _o_f_f_s_e_t))
          WWiiddggeettCCllaassss_w_i_d_g_e_t__c_l_a_s_s;;
          XXmmOOffffsseettPPttrr* _o_f_f_s_e_t;;

   DESCRIPTION
     The use of offset records requires one extra global variable per widget
     class.  The variable consists of a pointer to an array of offsets into
     the widget record for each part of the widget structure.  The XXmmRReessooll--
     vveePPaarrttOOffffsseettss function allocates the offset records needed by an appli-
     cation to guarantee upward-compatible access to widget instance records
     by applications and widgets.  These offset records are used by the
     widget to access all of the widget's variables.  A widget needs to take
     the following steps:

       ++oo  Instead of creating a resource list, the widget creates an offset
          resource list.  To help you accomplish this, use the XXmmPPaarrttRReessoouurrccee
          structure and the XXmmPPaarrttOOffffsseett macro.  The XXmmPPaarrttRReessoouurrccee data
          structure looks just like a resource list, but instead of having
          one integer for its offset, it has two shorts.  This is put into
          the class record as if it were a normal resource list.  Instead of
          using XXttOOffffsseett for the offset, the widget uses XXmmPPaarrttOOffffsseett.
          XmPartResource resources[] = {
            { BarNxyz, BarCXyz, XmRBoolean,
              sizeof(Boolean), XmPartOffset(Bar,xyz),
              XmRImmediate, (XtPointer)False }
          };

       ++oo  Instead of putting the widget size in the class record, the widget
          puts the widget part size in the same field.

       ++oo  Instead of putting XXttVVeerrssiioonn in the class record, the widget puts
          XXttVVeerrssiioonnDDoonnttCChheecckk in the class record.

       ++oo  The widget defines a variable, of type XXmmOOffffsseettPPttrr, to point to the
          offset record.  This can be part of the widget's class record or a
          separate global variable.

       ++oo  In class initialization, the widget calls XXmmRReessoollvveePPaarrttOOffffsseettss,
          passing it a pointer to contain the address of the offset record
          and the class record.  This does several things:
          Adds the superclass (which, by definition, has already been ini-
          tialized) size field to the part size field
          Allocates an array based upon the number of superclasses
          Fills in the offsets of all the widget parts with the appropriate


   2-433






   XmResolvePartOffsets(3X)


          values, determined by examining the size fields of all superclass
          records
          Uses the part offset array to modify the offset entries in the
          resource list to be real offsets, in place

       ++oo  The widget defines a constant which will be the index to its part
          structure in the offsets array.  The value should be 1 greater than
          the index of the widget's superclass.  Constants defined for all Xm
          widgets can be found in XXmmPP..hh.
          #define BarIndex (XmBulletinBIndex + 1)

       ++oo  Instead of accessing fields directly, the widget must always go
          through the offset table.  The XXmmFFiieelldd macro helps you access these
          fields.  Because the XXmmPPaarrttOOffffsseett and XXmmFFiieelldd macros concatenate
          things together, you must ensure that there is no space after the
          part argument.  For example, the following macros do not work
          because of the space after the part (Label) argument:
          XmField(w, offset, Label , text, char *)
          XmPartOffset(Label , text)
          Therefore, you must not have any spaces after the part (Label)
          argument, as illustrated here:
          XmField(w, offset, Label, text, char *)
          You can define macros for each field to make this easier.  Assume
          an integer field _x_y_z:
          #define BarXyz(w) (*(int *)(((char *) w) + \
            offset[BarIndex] + XtOffset(BarPart,xyz)))

     The parameters for XXmmRReessoollvveePPaarrttOOffffsseettss are defined below:

     _w_i_d_g_e_t__c_l_a_s_s
               Specifies the widget class pointer for the created widget.

     _o_f_f_s_e_t    Returns the offset record.























   2-434






                                                              XmRowColumn(3X)



   NAME
     XXmmRRoowwCCoolluummnn-The RowColumn widget class

   AES SUPPORT LEVEL
     Full-use

   SYNOPSIS
     ##iinncclluuddee <<XXmm//RRoowwCCoolluummnn..h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 spe-
     cial 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 how the children are laid out, as follows:

       ++oo  the children are packed tightly together into either rows or
          columns

       ++oo  each child is placed in an identically sized box (producing a sym-
          metrical look)

       ++oo  a specific layout (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 a MenuBar, Pulldown MenuPane, or Popup MenuPane the default for the
     XXmmNNsshhaaddoowwTThhiicckknneessss resource is 2.  In an OptionMenu or a WorkArea (such
     as a RadioBox or CheckBox) this resource is not applicable and its use
     is undefined.  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 XXmmNNnnaavviiggaattiioonnTTyyppee
     resource is not applicable and its use is undefined.  In a WorkArea the
     default for XXmmNNnnaavviiggaattiioonnTTyyppee is XXmmTTAABB__GGRROOUUPP.  In an OptionMenu the
     default for XXmmNNnnaavviiggaattiioonnTTyyppee is XXmmNNOONNEE.

     In a MenuBar, Pulldown MenuPane, or Popup MenuPane the XXmmNNttrraavveerrssaallOOnn
     resource is not applicable and its use is undefined.  In an OptionMenu
     or WorkArea the default for XXmmNNttrraavveerrssaallOOnn is True.



   2-435






   XmRowColumn(3X)


     If the parent of the RowColumn is a MenuShell, the XXmmNNmmaappppeeddWWhheennMMaannaaggeedd
     resource is forced to False when the widget is realized.

     Classes

     RowColumn inherits behavior and resources from CCoorree, CCoommppoossiittee, CCoonn--
     ssttrraaiinntt, and XXmmMMaannaaggeerr classes.

     The class pointer is xxmmRRoowwCCoolluummnnWWiiddggeettCCllaassss.

     The class name is XXmmRRoowwCCoolluummnn.

     New Resources

     The following table defines a set of widget resources used by the pro-
     grammer 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 XXmmNN or XXmmCC prefix and use the remaining letters.  To specify one of
     the defined values for a resource in a .Xdefaults file, remove the XXmm
     prefix and use the remaining letters (in either lowercase or uppercase,
     but include any underscores between words).  The codes in the access
     column indicate if the given resource can be set at creation time (C),
     set by using XXttSSeettVVaalluueess (S), retrieved by using XXttGGeettVVaalluueess (G), or is
     not applicable (N/A).
                                    XXmmRRoowwCCoolluummnn RReessoouurrccee SSeett
   NNaammee                 CCllaassss                TTyyppee             DDeeffaauulltt                  AAcccceessss
   __________________________________________________________________________________________
   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
   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
   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


   2-436






                                                              XmRowColumn(3X)


   XmNspacing           XmCSpacing           Dimension        dynamic                  CSG
   XmNsubMenuId         XmCMenuWidget        Widget           NULL                     CSG
   XmNunmapCallback     XmCCallback          XtCallbackList   NULL                     C

     XXmmNNaaddjjuussttLLaasstt
               Extends the last row of children to the bottom edge of
               RowColumn (when XXmmNNoorriieennttaattiioonn is XXmmHHOORRIIZZOONNTTAALL) or extends the
               last column to the right edge of RowColumn (when XXmmNNoorriieennttaa--
               ttiioonn is XXmmVVEERRTTIICCAALL).  This feature is disabled by setting
               XXmmNNaaddjjuussttLLaasstt to False.

     XXmmNNaaddjjuussttMMaarrggiinn
               Specifies whether the inner minor margins of all items con-
               tained within the RowColumn widget are forced to the same
               value.  The inner minor margin corresponds to the XXmmNNmmaarrggiinn--
               LLeefftt, XXmmNNmmaarrggiinnRRiigghhtt, XXmmNNmmaarrggiinnTToopp, and XXmmNNmmaarrggiinnBBoottttoomm
               resources supported by XXmmLLaabbeell and XXmmLLaabbeellGGaaddggeett.
               A horizontal orientation causes XXmmNNmmaarrggiinnTToopp and XXmmNNmmaarrggiinnBBoott--
               ttoomm 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 XXmmNNmmaarrggiinnLLeefftt and XXmmNNmmaarrggiinnRRiigghhtt
               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 XXmmNNrroowwCCoolluummnnTTyyppee
               is either XXmmMMEENNUU__PPOOPPUUPP or XXmmMMEENNUU__PPUULLLLDDOOWWNN and this resource is
               True, only button children have their margins adjusted.

     XXmmNNeennttrryyAAlliiggnnmmeenntt
               Specifies the alignment type for children that are subclasses
               of XXmmLLaabbeell or XXmmLLaabbeellGGaaddggeett when XXmmNNiissAAlliiggnneedd is enabled.  The
               following are textual alignment types:
               XXmmAALLIIGGNNMMEENNTT__BBEEGGIINNNNIINNGG-the default
               XXmmAALLIIGGNNMMEENNTT__CCEENNTTEERR
               XXmmAALLIIGGNNMMEENNTT__EENNDD
               See the description of XXmmNNaalliiggnnmmeenntt in the XXmmLLaabbeell((33XX)) man
               page for an explanation of these actions.

     XXmmNNeennttrryyBBoorrddeerr
               Imposes a uniform border width upon all RowColumn's children.
               The default value is 0, which disables the feature.

     XXmmNNeennttrryyCCaallllbbaacckk
               Disables the XXmmNNaaccttiivvaatteeCCaallllbbaacckk and XXmmNNvvaalluueeCChhaannggeeddCCaallllbbaacckk
               callbacks for all CascadeButton, DrawnButton, PushButton, and
               ToggleButton widgets and gadgets contained within the
               RowColumn widget.  If the application supplies this resource,
               the XXmmNNaaccttiivvaatteeCCaallllbbaacckk and XXmmNNvvaalluueeCChhaannggeeddCCaallllbbaacckk callbacks
               are then revectored to the XXmmNNeennttrryyCCaallllbbaacckk callbacks.  This
               allows an application to supply a single callback routine for
               handling all items contained in a RowColumn widget.  The call-
               back reason is XXmmCCRR__AACCTTIIVVAATTEE.  If the application does not


   2-437






   XmRowColumn(3X)


               supply this resource, the XXmmNNaaccttiivvaatteeCCaallllbbaacckk and
               XXmmNNvvaalluueeCChhaannggeeddCCaallllbbaacckk 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 XXttSSeettVVaalluueess is not
               supported.

     XXmmNNeennttrryyCCllaassss
               Specifies the only widget class that can be added to the
               RowColumn widget; this resource is meaningful only when the
               XXmmNNiissHHoommooggeenneeoouuss resource is set to True.  Both widget and
               gadget variants of the specified class may be added to the
               widget.
               When XXmmCCrreeaatteeRRaaddiiooBBooxx is called or when XXmmNNrroowwCCoolluummnnTTyyppee is
               set to XXmmWWOORRKK__AARREEAA and XXmmNNrraaddiiooBBeehhaavviioorr is True, the default
               value of XXmmNNeennttrryyCCllaassss is xxmmTToogggglleeBBuuttttoonnGGaaddggeettCCllaassss.  When
               XXmmNNrroowwCCoolluummnnTTyyppee is set to XXmmMMEENNUU__BBAARR, the value of XXmmNNeenn--
               ttrryyCCllaassss is forced to xxmmCCaassccaaddeeBBuuttttoonnWWiiddggeettCCllaassss.

     XXmmNNiissAAlliiggnneedd
               Specifies text alignment for each item within the RowColumn
               widget; this applies only to items that are subclasses of
               XXmmLLaabbeell or XXmmLLaabbeellGGaaddggeett.  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.  XXmmNNeennttrryyAAlliiggnnmmeenntt
               controls the type of textual alignment.

     XXmmNNiissHHoommooggeenneeoouuss
               Indicates whether the RowColumn widget should enforce exact
               homogeneity among the items it contains; if True, only the
               widgets that are of the class indicated by XXmmNNeennttrryyCCllaassss 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 XXmmNNiissHHoommooggeenneeoouuss is forced to True.
               In an OptionMenu the value is forced to False.  When
               XXmmCCrreeaatteeRRaaddiiooBBooxx is called the default value is True.  Other-
               wise, the default value is False.

     XXmmNNllaabbeellSSttrriinngg
               Points to a text string, which displays the label to one side
               of the selection area when XXmmNNrroowwCCoolluummnnTTyyppee is set to
               XXmmMMEENNUU__OOPPTTIIOONN.  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 (XXmmOOpp--
               ttiioonnLLaabbeellGGaaddggeett) and call XXttSSeettVVaalluueess on the LabelGadget
               directly.  The default value is no label.

     XXmmNNmmaappCCaallllbbaacckk
               Specifies a widget-specific callback function that is invoked
               when the window associated with the RowColumn widget is about


   2-438






                                                              XmRowColumn(3X)


               to be mapped.  The callback reason is XXmmCCRR__MMAAPP.

     XXmmNNmmaarrggiinnHHeeiigghhtt
               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 0 for Pulldown and Popup
               MenuPanes, and 3 pixels for other RowColumn types.

     XXmmNNmmaarrggiinnWWiiddtthh
               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.

     XXmmNNmmeennuuAAcccceelleerraattoorr
               This resource is useful only 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 KKMMeennuu.  The default for a MenuBar is KKMMeennuuBBaarr.
               The accelerator can be disabled by setting the XXmmNNppooppuuppEEnnaabblleedd
               resource to False.

     XXmmNNmmeennuuHHeellppWWiiddggeett
               Specifies the widget ID for the CascadeButton, which is
               treated as the Help widget if XXmmNNrroowwCCoolluummnnTTyyppee is set to
               XXmmMMEENNUU__BBAARR.  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
               XXmmMMEENNUU__BBAARR, this resource is not meaningful.

     XXmmNNmmeennuuHHiissttoorryy
               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 XXmmNNrroowwCCoolluummnnTTyyppee is set to
               XXmmMMEENNUU__OOPPTTIIOONN, the specified menu item is positioned under the
               cursor when the menu is displayed.
               If the RowColumn widget has the XXmmNNrraaddiiooBBeehhaavviioorr resource set
               to True, the widget field associated with this resource con-
               tains the widget ID of the last ToggleButton or ToggleBut-
               tonGadget to change from unselected to selected.  The default
               value is the widget ID of the first child in the widget.

     XXmmNNmmnneemmoonniicc
               This resource is useful only when XXmmNNrroowwCCoolluummnnTTyyppee is set to
               XXmmMMEENNUU__OOPPTTIIOONN.  Specifies a keysym for a key that, when
               pressed by the user along with the MMAAlltt modifier, posts the


   2-439






   XmRowColumn(3X)


               associated Pulldown MenuPane.  The first character in the
               OptionMenu label string that exactly matches the mnemonic in
               the character set specified in XXmmNNmmnneemmoonniiccCChhaarrSSeett is under-
               lined.  The user can post the menu by pressing either the
               shifted or the unshifted mnemonic key.  The default is no
               mnemonic.

     XXmmNNmmnneemmoonniiccCChhaarrSSeett
               Specifies the character set of the mnemonic for an OptionMenu.
               The default is XXmmFFOONNTTLLIISSTT__DDEEFFAAUULLTT__TTAAGG.  If the RowColumn
               widget is any type other than XXmmMMEENNUU__OOPPTTIIOONN, this resource is
               not meaningful.

     XXmmNNnnuummCCoolluummnnss
               Specifies the number of minor dimension extensions that are
               made to accommodate the entries; this attribute is meaningful
               only when XXmmNNppaacckkiinngg is set to XXmmPPAACCKK__CCOOLLUUMMNN.
               For vertically oriented RowColumn widgets, this attribute
               indicates how many columns are built; the number of entries
               per column is 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 1.  In an OptionMenu the value is forced
               to 1.  The value must be greater than 0.

     XXmmNNoorriieennttaattiioonn
               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.  XXmmVVEERRTTIICCAALL resource value selects a
               column-major layout.  XXmmHHOORRIIZZOONNTTAALL resource value selects a
               row-major layout.
               When creating a MenuBar or an OptionMenu, the default is
               XXmmHHOORRIIZZOONNTTAALL.  Otherwise, the default value is XXmmVVEERRTTIICCAALL.
               The results of specifying a value of XXmmVVEERRTTIICCAALL for a MenuBar
               are undefined.

     XXmmNNppaacckkiinngg
               Specifies how to pack the items contained within a RowColumn
               widget.  This can be set to XXmmPPAACCKK__TTIIGGHHTT,, XXmmPPAACCKK__CCOOLLUUMMNN or
               XXmmPPAACCKK__NNOONNEE.  When a RowColumn widget packs the items it con-
               tains, it determines its major dimension using the value of
               the XXmmNNoorriieennttaattiioonn resource.
               XXmmPPAACCKK__TTIIGGHHTT indicates that given the current major dimension
               (for example, vertical if XXmmNNoorriieennttaattiioonn is XXmmVVEERRTTIICCAALL),
               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


   2-440






                                                              XmRowColumn(3X)


               (rows), boxes are set to the same depth.  Each entry's posi-
               tion in the major dimension is left unaltered (for example,
               XXmmNNyy is left unchanged when XXmmNNoorriieennttaattiioonn is XXmmVVEERRTTIICCAALL); 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.
               XXmmPPAACCKK__CCOOLLUUMMNN 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
               XXmmNNnnuummCCoolluummnnss resource determines how many boxes are placed in
               the major dimension, before extending in the minor dimension.
               XXmmPPAACCKK__NNOONNEE 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 XXmmCCrreeaatteeRRaaddiiooBBooxx is called or when XXmmNNrroowwCCoolluummnnTTyyppee is
               set to XXmmWWOORRKK__AARREEAA and XXmmNNrraaddiiooBBeehhaavviioorr is True, the default
               value of XXmmNNppaacckkiinngg is XXmmPPAACCKK__CCOOLLUUMMNN.  In an OptionMenu the
               value is initialized to XXmmPPAACCKK__TTIIGGHHTT.  Otherwise, the value
               defaults to XXmmPPAACCKK__TTIIGGHHTT.

     XXmmNNppooppuuppEEnnaabblleedd
               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 of this resource is True (keyboard input-accelerators
               and mnemonics-defined for the Popup MenuPane and any of its
               submenus is enabled).

     XXmmNNrraaddiiooAAllwwaayyssOOnnee
               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 important only when XXmmNNrraaddiiooBBeehhaavviioorr is True.
               The application can always add and subtract toggles from
               RowColumn 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.  There-
               fore, the application can sometimes create a RowColumn that
               has XXmmNNrraaddiiooAAllwwaayyssOOnnee set to True and none of the toggle chil-
               dren selected.  The result is undefined if the value of this
               resource is True and the application sets more than one Tog-
               gleButton at a time.

     XXmmNNrraaddiiooBBeehhaavviioorr
               Specifies a Boolean value that when True, indicates that the
               RowColumn widget should enforce a RadioBox-type behavior on
               all of its children that are ToggleButtons or ToggleBut-
               tonGadgets.
               When the value of this resource is True, XXmmNNiinnddiiccaattoorrTTyyppee
               defaults to XXmmOONNEE__OOFF__MMAANNYY for ToggleButton and


   2-441






   XmRowColumn(3X)


               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 behavior 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
               XXmmTToogggglleeBBuuttttoonnSSeettSSttaattee or XXmmTToogggglleeBBuuttttoonnGGaaddggeettSSeettSSttaattee with a
               _n_o_t_i_f_y argument of True.
               When XXmmCCrreeaatteeRRaaddiiooBBooxx is called the default value of XXmmNNrraa--
               ddiiooBBeehhaavviioorr is True.  Otherwise, the default value is False.

     XXmmNNrreessiizzeeHHeeiigghhtt
               Requests a new height if necessary, when set to True.  When
               set to False, the widget does not request a new height regard-
               less of any changes to the widget or its children.

     XXmmNNrreessiizzeeWWiiddtthh
               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.

     XXmmNNrroowwCCoolluummnnTTyyppee
               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
               XXmmCCrreeaatteeRRoowwCCoolluummnn, 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, it must specify this resource itself.  The set of
               possible settings for this resource are:
               XXmmWWOORRKK__AARREEAA-the default
               XXmmMMEENNUU__BBAARR
               XXmmMMEENNUU__PPUULLLLDDOOWWNN
               XXmmMMEENNUU__PPOOPPUUPP
               XXmmMMEENNUU__OOPPTTIIOONN
               This resource cannot be changed after the RowColumn widget is
               created.  Any changes attempted through XXttSSeettVVaalluueess are
               ignored.
               The value of this resource is used to determine the value of a
               number of other resources.  The descriptions of RowColumn
               resources explain this when it is the case.  The resource
               XXmmNNnnaavviiggaattiioonnTTyyppee, inherited from XXmmMMaannaaggeerr, is changed to
               XXmmNNOONNEE if XXmmNNrroowwCCoolluummnnTTyyppee is XXmmMMEENNUU__OOPPTTIIOONN.

     XXmmNNssppaacciinngg
               Specifies the horizontal and vertical spacing between items
               contained within the RowColumn widget.  The default value is 3
               pixels for XXmmOOPPTTIIOONN__MMEENNUU and XXmmWWOORRKK__AARREEAA and 0 for other
               RowColumn types.

     XXmmNNssuubbMMeennuuIIdd
               Specifies the widget ID for the Pulldown MenuPane to be asso-
               ciated with an OptionMenu.  This resource is useful only when


   2-442






                                                              XmRowColumn(3X)


               XXmmNNrroowwCCoolluummnnTTyyppee is set to XXmmMMEENNUU__OOPPTTIIOONN.  The default value
               is NULL.

     XXmmNNuunnmmaappCCaallllbbaacckk
               Specifies a list of callbacks that is called after the window
               associated with the RowColumn widget has been unmapped.  The
               callback reason is XXmmCCRR__UUNNMMAAPP.  The default value is NULL.
                                DDiissppllaayy RReessoouurrccee
              NNaammee            CCllaassss       TTyyppee     DDeeffaauulltt   AAcccceessss
              _____________________________________________________
              XmNmenuCursor   XmCCursor   String   arrow     C

     XXmmNNmmeennuuCCuurrssoorr
               Sets a variable that controls the cursor used whenever this
               application posts a menu.  This resource can be specified only
               once at application startup time, either by placing it within
               a defaults file or by using the --xxrrmm command line argument.
               The menu cursor can also be selected programmatically by using
               the function XXmmSSeettMMeennuuCCuurrssoorr.  The following is a list of
               acceptable cursor names.  If the application does not specify
               a cursor or if an invalid name is supplied, the default cursor
               (an arrow pointing up and to the right) is used.
         X_cursor              dotbox         man                 sizing
         arrow                 double_arrow   middlebutton        spider
         based_arrow_down      draft_large    mouse               spraycan
         based_arrow_up        draft_small    pencil              star
         boat                  draped_box     pirate              target
         bogosity              exchange       plus                tcross
         bottom_left_corner    fleur          question_arrow      top_left_arrow
         bottom_right_corner   gobbler        right_ptr           top_left_corner
         bottom_side           gumby          right_side          top_right_corner
         bottom_tee            hand1          right_tee           top_side
         box_spiral            hand2          rightbutton         top_tee
         center_ptr            heart          rtl_logo            trek
         circle                icon           sailboat            ul_angle
         clock                 iron_cross     sb_down_arrow       umbrella
         coffee_mug            left_ptr       sb_h_double_arrow   ur_angle
         cross                 left_side      sb_left_arrow       watch
         cross_reverse         left_tee       sb_right_arrow      xterm
         crosshair             leftbutton     sb_up_arrow
         diamond_cross         ll_angle       sb_v_double_arrow
         dot                   lr_angle       shuttle

     Inherited Resources

     RowColumn inherits behavior and resources from the following named
     superclasses.  For a complete description of each resource, refer to the
     man page for that superclass.
                                        XXmmMMaannaaggeerr RReessoouurrccee SSeett
   NNaammee                    CCllaassss                   TTyyppee                DDeeffaauulltt                AAcccceessss
   _________________________________________________________________________________________________
   XmNbottomShadowColor    XmCBottomShadowColor    Pixel               dynamic                CSG
   XmNbottomShadowPixmap   XmCBottomShadowPixmap   Pixmap              XmUNSPECIFIED_PIXMAP   CSG
   XmNforeground           XmCForeground           Pixel               dynamic                CSG


   2-443






   XmRowColumn(3X)


   XmNhelpCallback         XmCCallback             XtCallbackList      NULL                   C
   XmNhighlightColor       XmCHighlightColor       Pixel               dynamic                CSG
   XmNhighlightPixmap      XmCHighlightPixmap      Pixmap              dynamic                CSG
   XmNnavigationType       XmCNavigationType       XmNavigationType    dynamic                CSG
   XmNshadowThickness      XmCShadowThickness      Dimension           dynamic                CSG
   XmNstringDirection      XmCStringDirection      XmStringDirection   dynamic                CG
   XmNtopShadowColor       XmCTopShadowColor       Pixel               dynamic                CSG
   XmNtopShadowPixmap      XmCTopShadowPixmap      Pixmap              dynamic                CSG
   XmNtraversalOn          XmCTraversalOn          Boolean             dynamic                CSG
   XmNuserData             XmCUserData             XtPointer           NULL                   CSG
                                CCoommppoossiittee RReessoouurrccee SSeett
   NNaammee                CCllaassss               TTyyppee          DDeeffaauulltt             AAcccceessss
   ________________________________________________________________________________
   XmNchildren         XmCReadOnly         WidgetList    NULL                G
   XmNinsertPosition   XmCInsertPosition   XtOrderProc   default procedure   CSG
   XmNnumChildren      XmCReadOnly         Cardinal      0                   G
                                                 CCoorree RReessoouurrccee SSeett
   NNaammee                            CCllaassss                           TTyyppee             DDeeffaauulltt                AAcccceessss
   ______________________________________________________________________________________________________________
   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:
     ttyyppeeddeeff ssttrruucctt
     {{
       iinntt      _r_e_a_s_o_n;;
       XXEEvveenntt   * _e_v_e_n_t;;
       WWiiddggeett   _w_i_d_g_e_t;;
       cchhaarr     * _d_a_t_a;;
       cchhaarr     * _c_a_l_l_b_a_c_k_s_t_r_u_c_t;;
     }} XXmmRRoowwCCoolluummnnCCaallllbbaacckkSSttrruucctt;;

     _r_e_a_s_o_n    Indicates why the callback was invoked

     _e_v_e_n_t     Points to the XXEEvveenntt that triggered the callback


   2-444






                                                              XmRowColumn(3X)



     The following fields apply only when the callback reason is
     XXmmCCRR__AACCTTIIVVAATTEE; for all other callback reasons, these fields are set to
     NULL.  The XXmmCCRR__AACCTTIIVVAATTEE callback reason is generated only when the
     application has supplied an entry callback, which overrides any activa-
     tion callbacks registered with the individual RowColumn items.

     _w_i_d_g_e_t    Is set to the widget ID of the RowColumn item that has been
               activated

     _d_a_t_a      Contains the client-data value supplied by the application
               when the RowColumn item's activation callback was registered

     _c_a_l_l_b_a_c_k_s_t_r_u_c_t
               Points to the callback structure generated by the RowColumn
               item's activation callback

     Action Routines

     The XmRowColumn action routines are described below:

     HHeellpp(()):   Calls the callbacks for XXmmNNhheellppCCaallllbbaacckk 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.

     MMaannaaggeerrGGaaddggeettSSeelleecctt(()):
               When a gadget child of the menu has the focus, invokes the
               gadget child's behavior associated with KKSSeelleecctt.  This gen-
               erally has the effect of unposting the menu hierarchy and arm-
               ing and activating the gadget, except that for a CascadeBut-
               tonGadget with a submenu, it posts the submenu.

     MMeennuuBBttnnDDoowwnn(()):
               When a gadget child of the menu has the focus, invokes the
               gadget child's behavior associated with BBSSeelleecctt PPrreessss.  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 associated submenu.

     MMeennuuBBttnnUUpp(()):
               When a gadget child of the menu has the focus, invokes the
               gadget child's behavior associated with BBSSeelleecctt RReelleeaassee.  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.

     MMeennuuGGaaddggeettEEssccaappee(()):
               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 XXmmEEXXPPLLIICCIITT, restores
               keyboard focus to the widget that had the focus before the
               MenuBar was entered.  In other Pulldown MenuPanes, unposts the


   2-445






   XmRowColumn(3X)


               menu.  In a Popup MenuPane, unposts the menu and, when the
               shell's keyboard focus policy is XXmmEEXXPPLLIICCIITT, restores keyboard
               focus to the widget from which the menu was posted.

     MMeennuuGGaaddggeettTTrraavveerrsseeDDoowwnn(()):
               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, right-
               most corner of the MenuPane, then this action wraps to the
               tear-off control, if present, or to the top, leftmost menu
               item.

     MMeennuuGGaaddggeettTTrraavveerrsseeLLeefftt(()):
               When the current menu item is in a MenuBar, then this action
               disarms 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 MenuPane,
               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 sub-
               menu attached to a MenuBar item, then this action unposts the
               submenu and traverses to the MenuBar item to the left, wrap-
               ping 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 directly 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.

     MMeennuuGGaaddggeettTTrraavveerrsseeRRiigghhtt(()):
               If the current menu item is in a MenuBar, then this action
               disarms 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 CascadeButton 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 submenu 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


   2-446






                                                              XmRowColumn(3X)


               submenu's first traversable 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, right-
               most 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.

     MMeennuuGGaaddggeettTTrraavveerrsseeUUpp(()):
               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 bottommost menu item in the column to the left, if one
               exists.  When the current menu item is at the top, leftmost
               corner of the MenuPane, then this action wraps to the tear-off
               control, if present, or to the bottom, rightmost menu item.

   RELATED INFORMATION
     CCoommppoossiittee((33XX)), CCoonnssttrraaiinntt((33XX)), CCoorree((33XX)), XXmmCCrreeaatteeMMeennuuBBaarr((33XX)),
     XXmmCCrreeaatteeOOppttiioonnMMeennuu((33XX)), XXmmCCrreeaatteePPooppuuppMMeennuu((33XX)), XXmmCCrreeaatteePPuullllddoowwnnMMeennuu((33XX)),
     XXmmCCrreeaatteeRRaaddiiooBBooxx((33XX)), XXmmCCrreeaatteeRRoowwCCoolluummnn((33XX)), XXmmCCrreeaatteeWWoorrkkAArreeaa((33XX)),
     XXmmGGeettMMeennuuCCuurrssoorr((33XX)), XXmmGGeettPPoosstteeddFFrroommWWiiddggeett((33XX)), XXmmLLaabbeell((33XX)),
     XXmmMMaannaaggeerr((33XX)), XXmmMMeennuuPPoossiittiioonn((33XX)), XXmmOOppttiioonnBBuuttttoonnGGaaddggeett((33XX)),
     XXmmOOppttiioonnLLaabbeellGGaaddggeett((33XX)), XXmmSSeettMMeennuuCCuurrssoorr((33XX)), and XXmmUUppddaatteeDDiissppllaayy((33XX)).






























   2-447



 a
