


     XXmmPPaanneeddWWiinnddooww((33XX))        RReeffeerreennccee PPaaggeess        XXmmPPaanneeddWWiinnddooww((33XX))



     NNAAMMEE
          XXmmPPaanneeddWWiinnddooww-The PanedWindow widget class

     AAEESS SSUUPPPPOORRTT LLEEVVEELL
          Full-use

     SSYYNNOOPPSSIISS
          ##iinncclluuddee <<XXmm//PPaanneeddWW..hh>>


     DDEESSCCRRIIPPTTIIOONN
          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 widgets to be inserted after
          other non-sash children but before any sashes.

        CCllaasssseess
          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.

        NNeeww RReessoouurrcceess
          The following table defines a set of widget resources used



     2-457                                            (printed 5/7/92)






     XXmmPPaanneeddWWiinnddooww((33XX))        RReeffeerreennccee PPaaggeess        XXmmPPaanneeddWWiinnddooww((33XX))



          by the programmer to specify data.  The programmer can also
          set the resource values for the inherited classes to set
          attributes for this widget.  To reference a resource by name
          or by class in a .Xdefaults file, remove the 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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 children
                    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



     2-458                                            (printed 5/7/92)






     XXmmPPaanneeddWWiinnddooww((33XX))        RReeffeerreennccee PPaaggeess        XXmmPPaanneeddWWiinnddooww((33XX))



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




     2-459                                            (printed 5/7/92)






     XXmmPPaanneeddWWiinnddooww((33XX))        RReeffeerreennccee PPaaggeess        XXmmPPaanneeddWWiinnddooww((33XX))



          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.


        IInnhheerriitteedd RReessoouurrcceess
          PanedWindow 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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
     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







     2-460                                            (printed 5/7/92)






     XXmmPPaanneeddWWiinnddooww((33XX))        RReeffeerreennccee PPaaggeess        XXmmPPaanneeddWWiinnddooww((33XX))



     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

        AAccttiioonn RRoouuttiinneess
          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 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.


        VViirrttuuaall BBiinnddiinnggss



     2-461                                            (printed 5/7/92)






     XXmmPPaanneeddWWiinnddooww((33XX))        RReeffeerreennccee PPaaggeess        XXmmPPaanneeddWWiinnddooww((33XX))



          The bindings for virtual keys are vendor specific.

     RREELLAATTEEDD IINNFFOORRMMAATTIIOONN
          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-462                                            (printed 5/7/92)






     XXmmPPrriimmiittiivvee((33XX))          RReeffeerreennccee PPaaggeess          XXmmPPrriimmiittiivvee((33XX))



     NNAAMMEE
          XXmmPPrriimmiittiivvee-The Primitive widget class

     AAEESS SSUUPPPPOORRTT LLEEVVEELL
          Full-use

     SSYYNNOOPPSSIISS
          ##iinncclluuddee <<XXmm//XXmm..hh>>


     DDEESSCCRRIIPPTTIIOONN
          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 Primitive widgets.

        CCllaasssseess
          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.

        NNeeww RReessoouurrcceess
          The following table defines a set of widget resources used
          by the programmer to specify data.  The programmer can also
          set the resource values for the inherited classes to set
          attributes for this widget.  To reference a resource by name
          or by class in a .Xdefaults file, remove the 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







     2-463                                            (printed 5/7/92)






     XXmmPPrriimmiittiivvee((33XX))          RReeffeerreennccee PPaaggeess          XXmmPPrriimmiittiivvee((33XX))



     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


          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ad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 widgets.

          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 cursor 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 policy is
                    XXmmPPOOIINNTTEERR and if this resource is True, the
                    highlighting 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



     2-464                                            (printed 5/7/92)






     XXmmPPrriimmiittiivvee((33XX))          RReeffeerreennccee PPaaggeess          XXmmPPrriimmiittiivvee((33XX))



                    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  XXmmNNOONNEE indicates that the widget is not a tab
                         group.

                      +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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.

                      +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.

                      +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at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xm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 CascadeButton 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



     2-465                                            (printed 5/7/92)






     XXmmPPrriimmiittiivvee((33XX))          RReeffeerreennccee PPaaggeess          XXmmPPrriimmiittiivvee((33XX))



                    Allows the application to attach any necessary
                    specific data to the widget.  It is an internally
                    unused resource.


        DDyynnaammiicc CCoolloorr DDeeffaauullttss
          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.

        IInnhheerriitteedd RReessoouurrcceess
          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
     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Caallllbbaacckk IInnffoorrmmaattiioonn
          A pointer to the following structure is passed to each
          callback:




     2-466                                            (printed 5/7/92)






     XXmmPPrriimmiittiivvee((33XX))          RReeffeerreennccee PPaaggeess          XXmmPPrriimmiittiivvee((33XX))



          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.


        AAccttiioonn RRoouuttiinneess
          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 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.




     2-467                                            (printed 5/7/92)






     XXmmPPrriimmiittiivvee((33XX))          RReeffeerreennccee PPaaggeess          XXmmPPrriimmiittiivvee((33XX))



          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, wrapping 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.


     RREELLAATTEEDD IINNFFOORRMMAATTIIOONN
          CCoorree((33XX)).





























     2-468                                            (printed 5/7/92)






     XXmmPPrroocceessssTTrraavveerrssaall((33XX))   RReeffeerreennccee PPaaggeess   XXmmPPrroocceessssTTrraavveerrssaall((33XX))



     NNAAMMEE
          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

     AAEESS SSUUPPPPOORRTT LLEEVVEELL
          Full-use

     SSYYNNOOPPSSIISS
          ##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;;


     DDEESSCCRRIIPPTTIIOONN
          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  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 contain _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  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.




     2-469                                            (printed 5/7/92)






     XXmmPPrroocceessssTTrraavveerrssaall((33XX))   RReeffeerreennccee PPaaggeess   XXmmPPrroocceessssTTrraavveerrssaall((33XX))



            +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  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  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.

            +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  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  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  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  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.


     RREETTUURRNN VVAALLUUEE
          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-470                                            (printed 5/7/92)






     XXmmPPuusshhBBuuttttoonn((33XX))         RReeffeerreennccee PPaaggeess         XXmmPPuusshhBBuuttttoonn((33XX))



     NNAAMMEE
          XXmmPPuusshhBBuuttttoonn-The PushButton widget class

     AAEESS SSUUPPPPOORRTT LLEEVVEELL
          Full-use

     SSYYNNOOPPSSIISS
          ##iinncclluuddee <<XXmm//PPuusshhBB..hh>>


     DDEESSCCRRIIPPTTIIOONN
          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 controls 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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lP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.

        CCllaasssseess
          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.

        NNeeww RReessoouurrcceess
          The following table defines a set of widget resources used
          by the programmer to specify data.  The programmer can also
          set the resource values for the inherited classes to set
          attributes for this widget.  To reference a resource by name
          or by class in a .Xdefaults file, remove the 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



     2-471                                            (printed 5/7/92)






     XXmmPPuusshhBBuuttttoonn((33XX))         RReeffeerreennccee PPaaggeess         XXmmPPuusshhBBuuttttoonn((33XX))



          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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ab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.



     2-472                                            (printed 5/7/92)






     XXmmPPuusshhBBuuttttoonn((33XX))         RReeffeerreennccee PPaaggeess         XXmmPPuusshhBBuuttttoonn((33XX))



          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 indicator shadow.  If this resource is
                    zero, the width of the shadow 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sD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.

          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 PushButton
                    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ad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 modified to accommodate the



     2-473                                            (printed 5/7/92)






     XXmmPPuusshhBBuuttttoonn((33XX))         RReeffeerreennccee PPaaggeess         XXmmPPuusshhBBuuttttoonn((33XX))



                    second shadow.  This resource is disabled when the
                    PushButton is in a menu.


        IInnhheerriitteedd RReessoouurrcceess
          PushButton 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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
     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





     2-474                                            (printed 5/7/92)






     XXmmPPuusshhBBuuttttoonn((33XX))         RReeffeerreennccee PPaaggeess         XXmmPPuusshhBBuuttttoonn((33XX))



     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Caallllbbaacckk IInnffoorrmmaattiioonn
          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.


        AAccttiioonn RRoouuttiinneess
          The XmPushButton action routines are described below:





     2-475                                            (printed 5/7/92)






     XXmmPPuusshhBBuuttttoonn((33XX))         RReeffeerreennccee PPaaggeess         XXmmPPuusshhBBuuttttoonn((33XX))



          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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.
                    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ll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 following:  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.

          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



     2-476                                            (printed 5/7/92)






     XXmmPPuusshhBBuuttttoonn((33XX))         RReeffeerreennccee PPaaggeess         XXmmPPuusshhBBuuttttoonn((33XX))



                    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XP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 callbacks 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
                    keyboard 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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.  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



     2-477                                            (printed 5/7/92)






     XXmmPPuusshhBBuuttttoonn((33XX))         RReeffeerreennccee PPaaggeess         XXmmPPuusshhBBuuttttoonn((33XX))



                    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.


     RREELLAATTEEDD IINNFFOORRMMAATTIIOONN
          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-478                                            (printed 5/7/92)






     XXmmPPuusshhBBuuttttoonnGGaaddggeett((33XX))   RReeffeerreennccee PPaaggeess   XXmmPPuusshhBBuuttttoonnGGaaddggeett((33XX))



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

     AAEESS SSUUPPPPOORRTT LLEEVVEELL
          Full-use

     SSYYNNOOPPSSIISS
          ##iinncclluuddee <<XXmm//PPuusshhBBGG..hh>>


     DDEESSCCRRIIPPTTIIOONN
          PushButtonGadget issues commands within an application.  It
          consists of a text label or pixmap surrounded by a border
          shadow.  When PushButtonGadget 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
          PushButtonGadget 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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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lP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.

        CCllaasssseess
          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.

        NNeeww RReessoouurrcceess
          The following table defines a set of widget resources used
          by the programmer to specify data.  The programmer can also
          set the resource values for the inherited classes to set
          attributes for this widget.  To reference a resource by name
          or by class in a .Xdefaults file, remove the XXmmNN or XXmmCC
          prefix and use the remaining letters.  To specify one of the



     2-479                                            (printed 5/7/92)






     XXmmPPuusshhBBuuttttoonnGGaaddggeett((33XX))   RReeffeerreennccee PPaaggeess   XXmmPPuusshhBBuuttttoonnGGaaddggeett((33XX))



          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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 PushButtonGadget 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 PushButtonGadget is armed.  It is armed when
                    the user presses the active mouse button while the
                    pointer is inside the PushButtonGadget.  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ab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



     2-480                                            (printed 5/7/92)






     XXmmPPuusshhBBuuttttoonnGGaaddggeett((33XX))   RReeffeerreennccee PPaaggeess   XXmmPPuusshhBBuuttttoonnGGaaddggeett((33XX))



                    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 indicator shadow.  If this resource is
                    zero, the width of the shadow 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sD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 PushButtonGadget is disarmed.
                    PushButtonGadget is disarmed when 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 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
                    PushButtonGadget 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ad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



     2-481                                            (printed 5/7/92)






     XXmmPPuusshhBBuuttttoonnGGaaddggeett((33XX))   RReeffeerreennccee PPaaggeess   XXmmPPuusshhBBuuttttoonnGGaaddggeett((33XX))



                    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.  This resource is disabled when the
                    PushButton is in a menu.


        IInnhheerriitteedd RReessoouurrcceess
          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
     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







     2-482                                            (printed 5/7/92)






     XXmmPPuusshhBBuuttttoonnGGaaddggeett((33XX))   RReeffeerreennccee PPaaggeess   XXmmPPuusshhBBuuttttoonnGGaaddggeett((33XX))



      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

        CCaallllbbaacckk IInnffoorrmmaattiioonn
          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.


     RREELLAATTEEDD IINNFFOORRMMAATTIIOONN
          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-483                                            (printed 5/7/92)






     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3RRXeXe)f)feerreennccee PPaaggXXememsRs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))



     NNAAMMEE
          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

     AAEESS SSUUPPPPOORRTT LLEEVVEELL
          Trial-use

     SSYYNNOOPPSSIISS
          ##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;;


     DDEESSCCRRIIPPTTIIOONN
          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ov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 associated

          _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



     2-484                                            (printed 5/7/92)






     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3RRXeXe)f)feerreennccee PPaaggXXememsRs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))



          resources, see VVeennddoorrSShheellll((33XX)).

     RREELLAATTEEDD IINNFFOORRMMAATTIIOONN
          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-485                                            (printed 5/7/92)






     XXmmRReemmoovveePPrroottooccoollss((33XX))    RReeffeerreennccee PPaaggeess    XXmmRReemmoovveePPrroottooccoollss((33XX))



     NNAAMMEE
          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

     AAEESS SSUUPPPPOORRTT LLEEVVEELL
          Trial-use

     SSYYNNOOPPSSIISS
          ##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;;


     DDEESSCCRRIIPPTTIIOONN
          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oc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)).

     RREELLAATTEEDD IINNFFOORRMMAATTIIOONN
          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



     2-486                                            (printed 5/7/92)






     XXmmRReemmoovveePPrroottooccoollss((33XX))    RReeffeerreennccee PPaaggeess    XXmmRReemmoovveePPrroottooccoollss((33XX))



          XXmmRReemmoovveeWWMMPPrroottooccoollss((33XX)).






















































     2-487                                            (printed 5/7/92)






     XXmmRReemmoovveeTTaabbGGrroouupp((33XX))     RReeffeerreennccee PPaaggeess     XXmmRReemmoovveeTTaabbGGrroouupp((33XX))



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

     AAEESS SSUUPPPPOORRTT LLEEVVEELL
          Full-use

     HHIISSTTOORRYY//DDIIRREECCTTIIOONN
          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.

     SSYYNNOOPPSSIISS
          ##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;;


     DDEESSCCRRIIPPTTIIOONN
          This function is obsolete and its behavior is replaced by
          setting 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.  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


     RREELLAATTEEDD IINNFFOORRMMAATTIIOONN
          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-488                                            (printed 5/7/92)






     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RR(e(e3f3fXeXe)r)reennccee PPXXamamgRgReeeesms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))



     NNAAMMEE
          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

     AAEESS SSUUPPPPOORRTT LLEEVVEELL
          Trial-use

     SSYYNNOOPPSSIISS
          ##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;;


     DDEESSCCRRIIPPTTIIOONN
          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ov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 associated

          _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)).

     RREELLAATTEEDD IINNFFOORRMMAATTIIOONN
          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-489                                            (printed 5/7/92)






     XXmmRReemmoovveeWWMMPPrroottooccoollss((33XX))  RReeffeerreennccee PPaaggeess  XXmmRReemmoovveeWWMMPPrroottooccoollss((33XX))



     NNAAMMEE
          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

     AAEESS SSUUPPPPOORRTT LLEEVVEELL
          Trial-use

     SSYYNNOOPPSSIISS
          ##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;;


     DDEESSCCRRIIPPTTIIOONN
          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oc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)).

     RREELLAATTEEDD IINNFFOORRMMAATTIIOONN
          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-490                                            (printed 5/7/92)






     XXmmRReessoollvveePPaarrttOOffffsseettss((33XX)) RReeffeerreennccee PPaaggeess XXmmRReessoollvveePPaarrttOOffffsseettss((33XX))



     NNAAMMEE
          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

     AAEESS SSUUPPPPOORRTT LLEEVVEELL
          Full-use

     SSYYNNOOPPSSIISS
          ##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;;


     DDEESSCCRRIIPPTTIIOONN
          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lvveePPaarrttOOffffsseettss function
          allocates the offset records needed by an application 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  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  Instead of putting the widget size in the class record,
               the widget puts the widget part size in the same field.

            +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  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



     2-491                                            (printed 5/7/92)






     XXmmRReessoollvveePPaarrttOOffffsseettss((33XX)) RReeffeerreennccee PPaaggeess XXmmRReessoollvveePPaarrttOOffffsseettss((33XX))



               widget's class record or a separate global variable.

            +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 initialized) 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 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  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  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)))




     2-492                                            (printed 5/7/92)






     XXmmRReessoollvveePPaarrttOOffffsseettss((33XX)) RReeffeerreennccee PPaaggeess XXmmRReessoollvveePPaarrttOOffffsseettss((33XX))



          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-493                                            (printed 5/7/92)






     XXmmRRoowwCCoolluummnn((33XX))          RReeffeerreennccee PPaaggeess          XXmmRRoowwCCoolluummnn((33XX))



     NNAAMMEE
          XXmmRRoowwCCoolluummnn-The RowColumn widget class

     AAEESS SSUUPPPPOORRTT LLEEVVEELL
          Full-use

     SSYYNNOOPPSSIISS
          ##iinncclluuddee <<XXmm//RRoowwCCoolluummnn..hh>>


     DDEESSCCRRIIPPTTIIOONN
          The RowColumn widget is a general purpose RowColumn manager
          capable of containing any widget type as a child.  In
          general, it requires no special knowledge about how its
          children function and provides nothing beyond support for
          several different layout styles.  However, it can be
          configured as a menu, in which case, it expects only certain
          children, and it configures to a particular layout.  The
          menus supported are:  MenuBar, Pulldown or Popup MenuPanes,
          and OptionMenu.

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


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

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

            +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



     2-494                                            (printed 5/7/92)






     XXmmRRoowwCCoolluummnn((33XX))          RReeffeerreennccee PPaaggeess          XXmmRRoowwCCoolluummnn((33XX))



          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.

          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.

        CCllaasssseess
          RowColumn inherits behavior and resources from 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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.

        NNeeww RReessoouurrcceess
          The following table defines a set of widget resources used
          by the programmer to specify data.  The programmer can also
          set the resource values for the inherited classes to set
          attributes for this widget.  To reference a resource by name
          or by class in a .Xdefaults file, remove the 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







     2-495                                            (printed 5/7/92)






     XXmmRRoowwCCoolluummnn((33XX))          RReeffeerreennccee PPaaggeess          XXmmRRoowwCCoolluummnn((33XX))



     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
     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at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 contained 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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 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tt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.





     2-496                                            (printed 5/7/92)






     XXmmRRoowwCCoolluummnn((33XX))          RReeffeerreennccee PPaaggeess          XXmmRRoowwCCoolluummnn((33XX))



                    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 callback reason is
                    XXmmCCRR__AACCTTIIVVAATTEE.  If the application does not 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.








     2-497                                            (printed 5/7/92)






     XXmmRRoowwCCoolluummnn((33XX))          RReeffeerreennccee PPaaggeess          XXmmRRoowwCCoolluummnn((33XX))



          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nt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.  Otherwise, 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pt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



     2-498                                            (printed 5/7/92)






     XXmmRRoowwCCoolluummnn((33XX))          RReeffeerreennccee PPaaggeess          XXmmRRoowwCCoolluummnn((33XX))



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



     2-499                                            (printed 5/7/92)






     XXmmRRoowwCCoolluummnn((33XX))          RReeffeerreennccee PPaaggeess          XXmmRRoowwCCoolluummnn((33XX))



                    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 contains the widget ID of the
                    last ToggleButton or ToggleButtonGadget to change
                    from unselected to selected.  The default value is
                    the widget ID of the first child in the widget.

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



     2-500                                            (printed 5/7/92)






     XXmmRRoowwCCoolluummnn((33XX))          RReeffeerreennccee PPaaggeess          XXmmRRoowwCCoolluummnn((33XX))



                    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 contains, 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 (rows), boxes are set to the
                    same depth.  Each entry's position 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 identically 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



     2-501                                            (printed 5/7/92)






     XXmmRRoowwCCoolluummnn((33XX))          RReeffeerreennccee PPaaggeess          XXmmRRoowwCCoolluummnn((33XX))



                    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.  Therefore, 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 children selected.
                    The result is undefined if the value of this
                    resource is True and the application sets more
                    than one ToggleButton at a time.

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

                    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



     2-502                                            (printed 5/7/92)






     XXmmRRoowwCCoolluummnn((33XX))          RReeffeerreennccee PPaaggeess          XXmmRRoowwCCoolluummnn((33XX))



                    ToggleButton and ToggleButtonGadget children.

                    RadioBox behavior dictates that when one toggle is
                    selected and the user selects another toggle, the
                    first toggle is unselected automatically.  The
                    RowColumn usually does not enforce this 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ad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 regardless 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




     2-503                                            (printed 5/7/92)






     XXmmRRoowwCCoolluummnn((33XX))          RReeffeerreennccee PPaaggeess          XXmmRRoowwCCoolluummnn((33XX))



                    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 associated with an OptionMenu.  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.  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



     2-504                                            (printed 5/7/92)






     XXmmRRoowwCCoolluummnn((33XX))          RReeffeerreennccee PPaaggeess          XXmmRRoowwCCoolluummnn((33XX))



                    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


        IInnhheerriitteedd RReessoouurrcceess
          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
     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







     2-505                                            (printed 5/7/92)






     XXmmRRoowwCCoolluummnn((33XX))          RReeffeerreennccee PPaaggeess          XXmmRRoowwCCoolluummnn((33XX))



     ________________________________________________________________________________
     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

        CCaallllbbaacckk IInnffoorrmmaattiioonn
          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


          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 activation callbacks



     2-506                                            (printed 5/7/92)






     XXmmRRoowwCCoolluummnn((33XX))          RReeffeerreennccee PPaaggeess          XXmmRRoowwCCoolluummnn((33XX))



          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


        AAccttiioonn RRoouuttiinneess
          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 generally has the effect of
                    unposting the menu hierarchy and arming and
                    activating the gadget, except that for a
                    CascadeButtonGadget with a submenu, it posts the
                    submenu.

          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.




     2-507                                            (printed 5/7/92)






     XXmmRRoowwCCoolluummnn((33XX))          RReeffeerreennccee PPaaggeess          XXmmRRoowwCCoolluummnn((33XX))



          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 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, rightmost 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
                    submenu attached to a MenuBar item, then this
                    action unposts the submenu and traverses to the
                    MenuBar item to the left, wrapping if necessary.
                    If that MenuBar item has a submenu, it posts the
                    submenu and arms the first traversable item in the
                    submenu.  If the current menu item is at the left
                    edge of a submenu not directly attached to a
                    MenuBar item, then this action unposts the current
                    submenu only.

                    In Popup or Torn-off MenuPanes, when the current



     2-508                                            (printed 5/7/92)






     XXmmRRoowwCCoolluummnn((33XX))          RReeffeerreennccee PPaaggeess          XXmmRRoowwCCoolluummnn((33XX))



                    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 submenus and traverses to
                    the MenuBar item to the right.  If that MenuBar
                    item has a submenu, it posts the submenu and arms
                    the submenu's first 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, rightmost corner of a Popup
                    or Pulldown MenuPane, this action wraps to the
                    tear-off control, if present, or else it wraps to
                    the top, leftmost menu item of the MenuPane.

          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.




     2-509                                            (printed 5/7/92)






     XXmmRRoowwCCoolluummnn((33XX))          RReeffeerreennccee PPaaggeess          XXmmRRoowwCCoolluummnn((33XX))



     RREELLAATTEEDD IINNFFOORRMMAATTIIOONN
          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-510                                            (printed 5/7/92)



 g
