


   XmPanedWindow(3X)



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

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

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

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

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

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

     All panes and sashes in a PanedWindow must be tab groups.  When a pane
     is inserted as a child of the PanedWindow, if the pane's XXmmNNnnaavviiggaattiioonn--
     TTyyppee is not XXmmEEXXCCLLUUSSIIVVEE__TTAABB__GGRROOUUPP, PanedWindow sets it to
     XXmmSSTTIICCKKYY__TTAABB__GGRROOUUPP.

     Classes

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

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

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

     New Resources

     The following table defines a set of widget resources used by the pro-
     grammer to specify data.  The programmer can also set the resource
     values for the inherited classes to set attributes for this widget.  To
     reference a resource by name or by class in a .Xdefaults file, remove


   1-524






                                                            XmPanedWindow(3X)


     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 chil-
               dren to their appropriate positions.

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

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

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

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


   1-525






   XmPanedWindow(3X)



     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
         XmNpositionIndex   XmCPositionIndex   short       XmLAST_POSITION   CSG
         XmNskipAdjust      XmCBoolean         Boolean     False             CSG

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

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

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

     XXmmNNppoossiittiioonnIInnddeexx
               Specifies the position of the widget in its parent's list of
               children (the list of pane children, not including sashes).
               The value is an integer that is no less than zero and no
               greater than the number of children in the list at the time
               the value is specified.  A value of zero means that the child
               is placed at the beginning of the list.  The value can also be
               specified as XXmmLLAASSTT__PPOOSSIITTIIOONN (the default), which means that
               the child is placed at the end of the list.  Any other value
               is ignored.  XXttGGeettVVaalluueess returns the position of the widget in
               its parent's child list at the time of the call to XXttGGeett--
               VVaalluueess.
               When a widget is inserted into its parent's child list, the
               positions of any existing children that are greater than or
               equal to the specified widget's XXmmNNppoossiittiioonnIInnddeexx are increased
               by one.  The effect of a call to XXttSSeettVVaalluueess for XXmmNNppoossii--
               ttiioonnIInnddeexx is to remove the specified widget from its parent's
               child list, decrease by one the positions of any existing
               children that are greater than the specified widget's former
               position in the list, and then insert the specified widget


   1-526






                                                            XmPanedWindow(3X)


               into its parent's child list as described in the preceding
               sentence.

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

     Inherited Resources

     PanedWindow inherits behavior and resources from the following superc-
     lasses.  For a complete description of each resource, refer to the man
     page for that superclass.
                                        XXmmMMaannaaggeerr RReessoouurrccee SSeett
   NNaammee                    CCllaassss                   TTyyppee                DDeeffaauulltt                AAcccceessss
   _________________________________________________________________________________________________
   XmNbottomShadowColor    XmCBottomShadowColor    Pixel               dynamic                CSG
   XmNbottomShadowPixmap   XmCBottomShadowPixmap   Pixmap              XmUNSPECIFIED_PIXMAP   CSG
   XmNforeground           XmCForeground           Pixel               dynamic                CSG
   XmNhelpCallback         XmCCallback             XtCallbackList      NULL                   C
   XmNhighlightColor       XmCHighlightColor       Pixel               dynamic                CSG
   XmNhighlightPixmap      XmCHighlightPixmap      Pixmap              dynamic                CSG
   XmNinitialFocus         XmCInitialFocus         Widget              NULL                   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
   XmNunitType             XmCUnitType             unsigned char       dynamic                CSG
   XmNuserData             XmCUserData             XtPointer           NULL                   CSG
                                                 CCoorree RReessoouurrccee SSeett
   NNaammee                            CCllaassss                           TTyyppee             DDeeffaauulltt                AAcccceessss
   ______________________________________________________________________________________________________________
   XmNaccelerators                 XmCAccelerators                 XtAccelerators   dynamic                CSG
   XmNancestorSensitive            XmCSensitive                    Boolean          dynamic                G
   XmNbackground                   XmCBackground                   Pixel            dynamic                CSG
   XmNbackgroundPixmap             XmCPixmap                       Pixmap           XmUNSPECIFIED_PIXMAP   CSG
   XmNborderColor                  XmCBorderColor                  Pixel            XtDefaultForeground    CSG
   XmNborderPixmap                 XmCPixmap                       Pixmap           XmUNSPECIFIED_PIXMAP   CSG
   XmNborderWidth                  XmCBorderWidth                  Dimension        0                      CSG
   XmNcolormap                     XmCColormap                     Colormap         dynamic                CG
   XmNdepth                        XmCDepth                        int              dynamic                CG
   XmNdestroyCallback              XmCCallback                     XtCallbackList   NULL                   C
   XmNheight                       XmCHeight                       Dimension        dynamic                CSG
   XmNinitialResourcesPersistent   XmCInitialResourcesPersistent   Boolean          True                   C
   XmNmappedWhenManaged            XmCMappedWhenManaged            Boolean          True                   CSG
   XmNscreen                       XmCScreen                       Screen *         dynamic                CG
   XmNsensitive                    XmCSensitive                    Boolean          True                   CSG
   XmNtranslations                 XmCTranslations                 XtTranslations   dynamic                CSG
   XmNwidth                        XmCWidth                        Dimension        dynamic                CSG
   XmNx                            XmCPosition                     Position         0                      CSG
   XmNy                            XmCPosition                     Position         0                      CSG
                                CCoommppoossiittee RReessoouurrccee SSeett


   1-527






   XmPanedWindow(3X)


   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

     Translations

     XmPanedWindow inherits translations from XmManager.

     The translations for sashes within the PanedWindow are listed below.
     These translations may not directly correspond to a translation table.
     BBSSeelleecctt PPrreessss:: SSaasshhAAccttiioonn((SSttaarrtt))
     BBSSeelleecctt MMoottiioonn::SSaasshhAAccttiioonn((MMoovvee))
     BBSSeelleecctt RReelleeaassee::SSaasshhAAccttiioonn((CCoommmmiitt))
     BBDDrraagg PPrreessss::   SSaasshhAAccttiioonn((SSttaarrtt))
     BBDDrraagg MMoottiioonn::  SSaasshhAAccttiioonn((MMoovvee))
     BBDDrraagg RReelleeaassee:: SSaasshhAAccttiioonn((CCoommmmiitt))
     KKUUpp::           SSaasshhAAccttiioonn((KKeeyy,,DDeeffaauullttIInnccrr,,UUpp))
     MMCCttrrll KKUUpp::     SSaasshhAAccttiioonn((KKeeyy,,LLaarrggeeIInnccrr,,UUpp))
     KKDDoowwnn::         SSaasshhAAccttiioonn((KKeeyy,,DDeeffaauullttIInnccrr,,DDoowwnn))
     MMCCttrrll KKDDoowwnn::   SSaasshhAAccttiioonn((KKeeyy,,LLaarrggeeIInnccrr,,DDoowwnn))
     KKNNeexxttFFiieelldd::    NNeexxttTTaabbGGrroouupp(())
     KKPPrreevvFFiieelldd::    PPrreevvTTaabbGGrroouupp(())
     KKHHeellpp::         HHeellpp(())

     Action Routines

     The XmPanedWindow action routines are described below:

     HHeellpp(()):   Calls the callbacks for XXmmNNhheellppCCaallllbbaacckk if any exist.  If
               there are no help callbacks for this widget, this action calls
               the help callbacks for the nearest ancestor that has them.

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

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

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


   1-528






                                                            XmPanedWindow(3X)


               XmPanedWindow, but rather an action of the Sash control
               created by the XmPanedWindow.

     Additional Behavior

     This widget has the additional behavior described below:

     <<FFooccuussIInn>>:
               Moves the keyboard focus to the sash and highlights it.

     <<FFooccuussOOuutt>>:
               Unsets the keyboard focus in the sash and unhighlights it.

     Virtual Bindings

     The bindings for virtual keys are vendor specific.  For information
     about bindings for virtual buttons and keys, see VViirrttuuaallBBiinnddiinnggss((33XX)).

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



































   1-529






   XmPrimitive(3X)



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

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

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

     Classes

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

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

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

     New Resources

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




   1-530






                                                              XmPrimitive(3X)



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

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

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

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

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

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

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

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

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

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

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

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



   1-531






   XmPrimitive(3X)


                 ++oo  XXmmEEXXCCLLUUSSIIVVEE__TTAABB__GGRROOUUPP indicates that the widget is a tab
                    group and that widgets in the hierarchy whose XXmmNNnnaavviiggaa--
                    ttiioonnTTyyppee is XXmmTTAABB__GGRROOUUPP are not tab groups.
                    When a parent widget has an XXmmNNnnaavviiggaattiioonnTTyyppee of
                    XXmmEEXXCCLLUUSSIIVVEE__TTAABB__GGRROOUUPP, traversal of non-tab-group widgets
                    within the group is based on the order of those widgets
                    in their parent's XXmmNNcchhiillddrreenn list.
                    When any widget in a 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, traversal of tab groups in the
                    hierarchy proceeds to widgets in the order in which their
                    XXmmNNnnaavviiggaattiioonnTTyyppee resources were specified as
                    XXmmEEXXCCLLUUSSIIVVEE__TTAABB__GGRROOUUPP or XXmmSSTTIICCKKYY__TTAABB__GGRROOUUPP, whether by
                    creating the widgets with that value, by calling XXttSSeett--
                    VVaalluueess, or by calling XXmmAAddddTTaabbGGrroouupp.

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

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

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

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

     XXmmNNuunniittTTyyppee
               Provides the basic support for resolution independence.  It
               defines the type of units a widget uses with sizing and posi-
               tioning resources.  If the widget's parent is a subclass of
               XXmmMMaannaaggeerr and if the XXmmNNuunniittTTyyppee resource is not explicitly
               set, it defaults to the unit type of the parent widget.  If
               the widget's parent is not a subclass of XXmmMMaannaaggeerr, the
               resource has a default unit type of XXmmPPIIXXEELLSS.
               XXmmNNuunniittTTyyppee can have the following values:

                 ++oo  XXmmPPIIXXEELLSS-all values provided to the widget are treated as
                    normal pixel values.

                 ++oo  XXmm110000TTHH__MMIILLLLIIMMEETTEERRSS-all values provided to the widget are
                    treated as 1/100 millimeter.

                 ++oo  XXmm11000000TTHH__IINNCCHHEESS-all values provided to the widget are
                    treated as 1/1000 inch.

                 ++oo  XXmm110000TTHH__PPOOIINNTTSS-all values provided to the widget are
                    treated as 1/100 point.  A point is a unit used in text
                    processing applications and is defined as 1/72 inch.


   1-532






                                                              XmPrimitive(3X)



                 ++oo  XXmm110000TTHH__FFOONNTT__UUNNIITTSS-all values provided to the widget are
                    treated as 1/100 of a font unit.  A font unit has hor-
                    izontal and vertical components.  These are the values of
                    the XmScreen resources XXmmNNhhoorriizzoonnttaallFFoonnttUUnniitt and XXmmNNvveerr--
                    ttiiccaallFFoonnttUUnniitt.

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

     Dynamic Color Defaults

     The foreground, background, top shadow, bottom shadow, and highlight
     color resources are dynamically defaulted.  If no color data is speci-
     fied, 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
     and bottom shadow colors are generated to give the 3-D appearance.
     Foreground and highlight colors are generated to provide sufficient con-
     trast with the background color.

     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.  XXmmCChhaannggeeCCoolloorr can be
     used to recalculate all associated colors based on a new background
     color.

     Inherited Resources

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


   1-533






   XmPrimitive(3X)


   XmNy                            XmCPosition                     Position         0                      CSG

     Callback Information

     A pointer to the following structure is passed to each callback:
     ttyyppeeddeeff ssttrruucctt
     {{
       iinntt          _r_e_a_s_o_n;;
       XXEEvveenntt       * _e_v_e_n_t;;
     }} XXmmAAnnyyCCaallllbbaacckkSSttrruucctt;;

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

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

     Translations

     The XmPrimitive translations are listed below.  These translations may
     not directly correspond to a translation table.

     Note that for buttons in menus, altering translations in ##oovveerrrriiddee or
     ##aauuggmmeenntt mode is undefined.
     KKUUpp::           PPrriimmiittiivveeTTrraavveerrsseeUUpp(())
     KKDDoowwnn::         PPrriimmiittiivveeTTrraavveerrsseeDDoowwnn(())
     KKLLeefftt::         PPrriimmiittiivveeTTrraavveerrsseeLLeefftt(())
     KKRRiigghhtt::        PPrriimmiittiivveeTTrraavveerrsseeRRiigghhtt(())
     KKBBeeggiinnLLiinnee::    PPrriimmiittiivveeTTrraavveerrsseeHHoommee(())
     KKNNeexxttFFiieelldd::    PPrriimmiittiivveeNNeexxttTTaabbGGrroouupp(())
     KKPPrreevvFFiieelldd::    PPrriimmiittiivveePPrreevvTTaabbGGrroouupp(())
     KKAAccttiivvaattee::     PPrriimmiittiivveePPaarreennttAAccttiivvaattee(())
     KKCCaanncceell::       PPrriimmiittiivveePPaarreennttCCaanncceell(())
     KKHHeellpp::         PPrriimmiittiivveeHHeellpp(())

     Action Routines

     The XmPrimitive action routines are described below:

     PPrriimmiittiivveeHHeellpp(()):
               Calls the callbacks for XXmmNNhheellppCCaallllbbaacckk if any exist.  If
               there are no help callbacks for this widget, this action calls
               the help callbacks for the nearest ancestor that has them.

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

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

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


   1-534






                                                              XmPrimitive(3X)


               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.

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

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

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

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

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

     Additional Behavior

     This widget has the additional behavior described below:

     <<FFooccuussIInn>>:
               If the shell's keyboard focus policy is XXmmEEXXPPLLIICCIITT, highlights
               the widget and gives it the focus.

     <<FFooccuussOOuutt>>:
               If the shell's keyboard focus policy is XXmmEEXXPPLLIICCIITT,
               unhighlights the widget and removes the focus.

     Virtual Bindings

     The bindings for virtual keys are vendor specific.  For information
     about bindings for virtual buttons and keys, see VViirrttuuaallBBiinnddiinnggss((33XX)).





   1-535






   XmPrimitive(3X)


   RELATED INFORMATION
     CCoorree((33XX)), XXmmCChhaannggeeCCoolloorr((33XX)), and XXmmSSccrreeeenn((33XX)).






















































   1-536






                                                       XmProcessTraversal(3X)



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

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

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

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

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

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

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

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

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

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

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

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


   1-537






   XmProcessTraversal(3X)


          the active tab group in the hierarchy.

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

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

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

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

     CAUTIONS


       ++oo  XXmmPPrroocceessssTTrraavveerrssaall will not allow traversal to a widget in a dif-
          ferent shell.

       ++oo  XXmmPPrroocceessssTTrraavveerrssaall will only allow traversal to widgets that are
          currently mapped.

       ++oo  You cannot call XXmmPPrroocceessssTTrraavveerrssaall from inside a focusCallback rou-
          tine (or you will get a segmentation fault).

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

   RELATED INFORMATION
     XXmmGGeettVViissiibbiilliittyy((33XX)) and XXmmIIssTTrraavveerrssaabbllee((33XX)).



















   1-538






                                                             XmPushButton(3X)



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

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

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

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

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

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

     Classes

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

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

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

     New Resources

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


   1-539






   XmPushButton(3X)


   XmNactivateCallback               XmCCallback                       XtCallbackList   NULL                   C
   XmNarmCallback                    XmCCallback                       XtCallbackList   NULL                   C
   XmNarmColor                       XmCArmColor                       Pixel            dynamic                CSG
   XmNarmPixmap                      XmCArmPixmap                      Pixmap           XmUNSPECIFIED_PIXMAP   CSG
   XmNdefaultButtonShadowThickness   XmCDefaultButtonShadowThickness   Dimension        dynamic                CSG
   XmNdisarmCallback                 XmCCallback                       XtCallbackList   NULL                   C
   XmNfillOnArm                      XmCFillOnArm                      Boolean          True                   CSG
   XmNmultiClick                     XmCMultiClick                     unsigned char    dynamic                CSG
   XmNshowAsDefault                  XmCShowAsDefault                  Dimension        0                      CSG

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

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

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

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

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

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

     XXmmNNffiillllOOnnAArrmm
               Forces the PushButton to fill the background of the button


   1-540






                                                             XmPushButton(3X)


               with the color specified by XXmmNNaarrmmCCoolloorr when the button is
               armed and when this resource is set to True.  If False, only
               the top and bottom shadow colors are switched.  When the Push-
               Button is in a menu, this resource is ignored and assumed to
               be False.

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

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

     Inherited Resources

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


   1-541






   XmPushButton(3X)


   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
   XmNunitType             XmCUnitType             unsigned char      dynamic                CSG
   XmNuserData             XmCUserData             XtPointer          NULL                   CSG
                                                 CCoorree RReessoouurrccee SSeett
   NNaammee                            CCllaassss                           TTyyppee             DDeeffaauulltt                AAcccceessss
   ______________________________________________________________________________________________________________
   XmNaccelerators                 XmCAccelerators                 XtAccelerators   dynamic                CSG
   XmNancestorSensitive            XmCSensitive                    Boolean          dynamic                G
   XmNbackground                   XmCBackground                   Pixel            dynamic                CSG
   XmNbackgroundPixmap             XmCPixmap                       Pixmap           XmUNSPECIFIED_PIXMAP   CSG
   XmNborderColor                  XmCBorderColor                  Pixel            XtDefaultForeground    CSG
   XmNborderPixmap                 XmCPixmap                       Pixmap           XmUNSPECIFIED_PIXMAP   CSG
   XmNborderWidth                  XmCBorderWidth                  Dimension        0                      CSG
   XmNcolormap                     XmCColormap                     Colormap         dynamic                CG
   XmNdepth                        XmCDepth                        int              dynamic                CG
   XmNdestroyCallback              XmCCallback                     XtCallbackList   NULL                   C
   XmNheight                       XmCHeight                       Dimension        dynamic                CSG
   XmNinitialResourcesPersistent   XmCInitialResourcesPersistent   Boolean          True                   C
   XmNmappedWhenManaged            XmCMappedWhenManaged            Boolean          True                   CSG
   XmNscreen                       XmCScreen                       Screen *         dynamic                CG
   XmNsensitive                    XmCSensitive                    Boolean          True                   CSG
   XmNtranslations                 XmCTranslations                 XtTranslations   dynamic                CSG
   XmNwidth                        XmCWidth                        Dimension        dynamic                CSG
   XmNx                            XmCPosition                     Position         0                      CSG
   XmNy                            XmCPosition                     Position         0                      CSG

     Callback Information

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

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


   1-542






                                                             XmPushButton(3X)



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

     Translations

     XmPushButton includes translations from Primitive.

     Note that altering translations in ##oovveerrrriiddee or ##aauuggmmeenntt mode is unde-
     fined.

     Additional XmPushButton translations for XmPushButtons not in a menu
     system are listed below.  These translations may not directly correspond
     to a translation table.
     BBDDrraagg PPrreessss::   PPrroocceessssDDrraagg(())
     BBSSeelleecctt PPrreessss:: AArrmm(())
     BBSSeelleecctt CClliicckk:: AAccttiivvaattee(())
                    DDiissaarrmm(())
     BBSSeelleecctt RReelleeaassee::AAccttiivvaattee(())
                    DDiissaarrmm(())
     BBSSeelleecctt PPrreessss 22++::MMuullttiiAArrmm(())
     BBSSeelleecctt RReelleeaassee 22++::MMuullttiiAAccttiivvaattee(())
                    DDiissaarrmm(())
     KKSSeelleecctt::       AArrmmAAnnddAAccttiivvaattee(())
     KKHHeellpp::         HHeellpp(())

     XmPushButton inherits menu traversal translations from XmLabel.  Addi-
     tional XmPushButton translations for PushButtons in a menu system are
     listed below.  In a Popup menu system, BBMMeennuu also performs the BBSSeelleecctt
     actions.  These translations may not directly correspond to a transla-
     tion table.
     BBSSeelleecctt PPrreessss:: BBttnnDDoowwnn(())
     BBSSeelleecctt RReelleeaassee::BBttnnUUpp(())
     KKAAccttiivvaattee::     AArrmmAAnnddAAccttiivvaattee(())
     KKSSeelleecctt::       AArrmmAAnnddAAccttiivvaattee(())
     MMAAnnyy KKCCaanncceell::  MMeennuuSShheellllPPooppddoowwnnOOnnee(())

     Action Routines

     The XmPushButton action routines are described below:

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


   1-543






   XmPushButton(3X)



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

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

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

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

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

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

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


   1-544






                                                             XmPushButton(3X)



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

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

     PPrroocceessssDDrraagg(()):
               Drags the contents of a PushButton label, identified by press-
               ing BBDDrraagg.  This action creates a DragContext object whose
               XXmmNNeexxppoorrttTTaarrggeettss resource is set to "COMPOUND_TEXT" for a
               label type of XXmmSSTTRRIINNGG; otherwise, "PIXMAP" if the label type
               is XXmmPPIIXXMMAAPP.  This action is undefined for PushButtons used in
               a menu system.

     Additional Behavior

     This widget has the additional behavior described below:

     <<EEnntteerrWWiinnddooww>>:
               In a menu, if keyboard traversal is enabled, this action does
               nothing.  Otherwise, it draws the shadow in the armed state
               and calls the XXmmNNaarrmmCCaallllbbaacckk callbacks.  If the PushButton is
               not in a menu and the cursor leaves and then reenters the
               PushButton's window while the button is pressed, this action
               draws the shadow in the armed state.  If XXmmNNffiillllOOnnAArrmm is set
               to True, it also 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.

     <<LLeeaavveeWWiinnddooww>>:
               In a menu, if keyboard traversal is enabled, this action does
               nothing.  Otherwise, it draws the shadow in the unarmed state
               and calls the XXmmNNddiissaarrmmCCaallllbbaacckk callbacks.  If the PushButton
               is not in a menu and the cursor leaves the PushButton's window
               while the button is pressed, this action draws the shadow in
               the unarmed state.  If XXmmNNffiillllOOnnAArrmm is set to True, the back-
               ground 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.


   1-545






   XmPushButton(3X)



     Virtual Bindings

     The bindings for virtual keys are vendor specific.  For information
     about bindings for virtual buttons and keys, see VViirrttuuaallBBiinnddiinnggss((33XX)).

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















































   1-546






                                                       XmPushButtonGadget(3X)



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

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

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

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

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

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

     Classes

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

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

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

     New Resources

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


   1-547






   XmPushButtonGadget(3X)


   __________________________________________________________________________________________________________________
   XmNactivateCallback               XmCCallback                       XtCallbackList   NULL                   C
   XmNarmCallback                    XmCCallback                       XtCallbackList   NULL                   C
   XmNarmColor                       XmCArmColor                       Pixel            dynamic                CSG
   XmNarmPixmap                      XmCArmPixmap                      Pixmap           XmUNSPECIFIED_PIXMAP   CSG
   XmNdefaultButtonShadowThickness   XmCdefaultButtonShadowThickness   Dimension        dynamic                CSG
   XmNdisarmCallback                 XmCCallback                       XtCallbackList   NULL                   C
   XmNfillOnArm                      XmCFillOnArm                      Boolean          True                   CSG
   XmNmultiClick                     XmCMultiClick                     unsigned char    dynamic                CSG
   XmNshowAsDefault                  XmCShowAsDefault                  Dimension        0                      CSG

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

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

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

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

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

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


   1-548






                                                       XmPushButtonGadget(3X)



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

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

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

     Inherited Resources

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


   1-549






   XmPushButtonGadget(3X)


   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
   ___________________________________________________________________________________
   XmNbottomShadowColor    XmCBottomShadowColor    Pixel              dynamic   G
   XmNhelpCallback         XmCCallback             XtCallbackList     NULL      C
   XmNhighlightColor       XmCHighlightColor       Pixel              dynamic   G
   XmNhighlightOnEnter     XmCHighlightOnEnter     Boolean            False     CSG
   XmNhighlightThickness   XmCHighlightThickness   Dimension          2         CSG
   XmNnavigationType       XmCNavigationType       XmNavigationType   XmNONE    CSG
   XmNshadowThickness      XmCShadowThickness      Dimension          2         CSG
   XmNtopShadowColor       XmCTopShadowColor       Pixel              dynamic   G
   XmNtraversalOn          XmCTraversalOn          Boolean            True      CSG
   XmNunitType             XmCUnitType             unsigned char      dynamic   CSG
   XmNuserData             XmCUserData             XtPointer          NULL      CSG
                               RReeccttOObbjj RReessoouurrccee SSeett
       NNaammee                   CCllaassss            TTyyppee        DDeeffaauulltt   AAcccceessss
       ____________________________________________________________________
       XmNancestorSensitive   XmCSensitive     Boolean     dynamic   G
       XmNborderWidth         XmCBorderWidth   Dimension   0         CSG
       XmNheight              XmCHeight        Dimension   dynamic   CSG
       XmNsensitive           XmCSensitive     Boolean     True      CSG
       XmNwidth               XmCWidth         Dimension   dynamic   CSG
       XmNx                   XmCPosition      Position    0         CSG
       XmNy                   XmCPosition      Position    0         CSG
                               OObbjjeecctt RReessoouurrccee SSeett
       NNaammee                 CCllaassss         TTyyppee             DDeeffaauulltt   AAcccceessss
       ____________________________________________________________________
       XmNdestroyCallback   XmCCallback   XtCallbackList   NULL      C

     Callback Information

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

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

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

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


   1-550






                                                       XmPushButtonGadget(3X)



     Behavior

     XmPushButtonGadget includes behavior from XmGadget.  XmPushButtonGadget
     includes menu traversal behavior from XmLabelGadget.  Additional
     behavior for XmPushButtonGadget is described below:

     BBDDrraagg PPrreessss:
               Drags the contents of a PushButtonGadget label, identified by
               pressing BBDDrraagg.  This action creates a DragContext object
               whose XXmmNNeexxppoorrttTTaarrggeettss resource is set to "COMPOUND_TEXT" for
               a label type of XXmmSSTTRRIINNGG; otherwise, "PIXMAP" if the label
               type is XXmmPPIIXXMMAAPP.  This action is undefined for PushBut-
               tonGadgets used in a menu system.

     BBSSeelleecctt PPrreessss:
               This action arms the PushButtonGadget.  In a menu, this action
               unposts any menus posted by the PushButtonGadget's parent
               menu, disables keyboard traversal for the menu, and enables
               mouse traversal for the menu.  It draws the shadow in the
               armed state.  Unless the button is already armed, it calls the
               XXmmNNaarrmmCCaallllbbaacckk callbacks.  If the button is not in a menu,
               this action draws the shadow in the armed state.  If XXmmNNffiill--
               llOOnnAArrmm is set to True, it fills the button with the color
               specified by XXmmNNaarrmmCCoolloorr.  If XXmmNNllaabbeellTTyyppee is XXmmPPIIXXMMAAPP, the
               XXmmNNaarrmmPPiixxmmaapp is used for the button face.  It calls the
               XXmmNNaarrmmCCaallllbbaacckk callbacks.

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

     BBSSeelleecctt CClliicckk oorr BBSSeelleecctt RReelleeaassee:
               In a menu, this action unposts all menus in the menu hierarchy
               and activates the PushButtonGadget.  It calls the XXmmNNaaccttiivvaattee--
               CCaallllbbaacckk callbacks and then the XXmmNNddiissaarrmmCCaallllbbaacckk callbacks.
               If the PushButtonGadget is not in a menu, this action draws
               the shadow in the unarmed state.  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.  Calls the
               callbacks for XXmmNNddiissaarrmmCCaallllbbaacckk.

     BBSSeelleecctt RReelleeaassee 22++:
               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


   1-551






   XmPushButtonGadget(3X)


               button is not in a menu and if XXmmNNffiillllOOnnAArrmm is set to True,
               the background color reverts to the unarmed color.  If XXmmNNllaa--
               bbeellTTyyppee is XXmmPPIIXXMMAAPP, the XXmmNNllaabbeellPPiixxmmaapp is used for the button
               face.  If the pointer is within the PushButtonGadget, 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.

     KKA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; and 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, KKAAccttiivvaattee
               has no effect.  For PushButtonGadgets outside of a menu, if
               the parent is a manager, this action passes the event to the
               parent.

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

     KKHHeellpp:    In a Pulldown or Popup MenuPane, unposts all menus in the menu
               hierarchy and restores keyboard focus to the widget that had
               the focus before the menu system was entered.  Calls the call-
               backs 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 call-
               backs for the nearest ancestor that has them.

     MMAAnnyy KKCCaanncceell:
               In a toplevel Pulldown MenuPane from a MenuBar, unposts the
               menu, disarms the MenuBar CascadeButton and the MenuBar, and
               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.  For a PushButtonGadget outside of a menu, if the
               parent is a manger, this action passes the event to the
               parent.

     <<EEnntteerr>>:  In a menu, if keyboard traversal is enabled, this action does
               nothing.  Otherwise, it draws the shadow in the armed state
               and calls the XXmmNNaarrmmCCaallllbbaacckk callbacks.  If the PushBut-
               tonGadget is not in a menu and the cursor leaves and then


   1-552






                                                       XmPushButtonGadget(3X)


               reenters the PushButtonGadget while the button is pressed,
               this action draws the shadow in the armed state.  If XXmmNNffiill--
               llOOnnAArrmm is set to True, it also 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.

     <<LLeeaavvee>>:  In a menu, if keyboard traversal is enabled, this action does
               nothing.  Otherwise, it draws the shadow in the unarmed state
               and calls the XXmmNNddiissaarrmmCCaallllbbaacckk callbacks.  If the PushBut-
               tonGadget is not in a menu and the cursor leaves the PushBut-
               tonGadget while the button is pressed, this action draws the
               shadow in the unarmed state.  If XXmmNNffiillllOOnnAArrmm is set to True,
               the background color reverts to the unarmed color.  If XXmmNNllaa--
               bbeellTTyyppee is XXmmPPIIXXMMAAPP, the XXmmNNllaabbeellPPiixxmmaapp is used for the button
               face.

     Virtual Bindings

     The bindings for virtual keys are vendor specific.  For information
     about bindings for virtual buttons and keys, see VViirrttuuaallBBiinnddiinnggss((33XX)).

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
































   1-553






   XmRegisterSegmentEncoding(3X)



   NAME
     XXmmRReeggiisstteerrSSeeggmmeennttEEnnccooddiinngg-A compound string function that registers a
     compound text encoding format for a specified font list element tag

   SYNOPSIS
     ##iinncclluuddee <<XXmm//XXmm..hh>>
     cchhaarr ** XXmmRReeggiisstteerrSSeeggmmeennttEEnnccooddiinngg ((_f_o_n_t_l_i_s_t__t_a_g, _c_t__e_n_c_o_d_i_n_g))
          cchhaarr   **_f_o_n_t_l_i_s_t__t_a_g;;
          cchhaarr   **_c_t__e_n_c_o_d_i_n_g;;

   DESCRIPTION
     XXmmRReeggiisstteerrSSeeggmmeennttEEnnccooddiinngg registers a compound text encoding format with
     the specified font list element tag.  The XXmmCCvvttXXmmSSttrriinnggTTooCCTT function
     uses this registry to map the font list tags of compound string segments
     to compound text encoding formats.  Registering a font list tag that
     already exists in the registry overwrites the original entry.  You can
     unregister a font list tag by passing a NULL value for the _c_t__e_n_c_o_d_i_n_g
     parameter.

     _f_o_n_t_l_i_s_t__t_a_g
            Specifies the font list element tag to be registered.  The tag
            must be a NULL-terminated ISO8859-1 string.

     _c_t__e_n_c_o_d_i_n_g
            Specifies the compound text character set to be used for segments
            with the font list tag.  The value must be a NULL-terminated
            ISO8859-1 string.  A value of XXmmFFOONNTTLLIISSTT__DDEEFFAAUULLTT__TTAAGG maps the
            specified font list tag to the code set of the locale.

   RETURN VALUE
     Returns NULL for a new font list tag or the old _c_t__e_n_c_o_d_i_n_g value for an
     already registered font list tag.   The application is responsible for
     freeing the storage associated with the returned data (if any) by cal-
     ling XXttFFrreeee.

   RELATED INFORMATION
     XXmmCCvvttXXmmSSttrriinnggTTooCCTT((33XX)), XXmmFFoonnttLLiisstt((33XX)), XXmmMMaappSSeeggmmeennttEEnnccooddiinngg((33XX)), and
     XXmmSSttrriinngg((33XX)).

















   1-554






                                                 XmRemoveProtocolCallback(3X)



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

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

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

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

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

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

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

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

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

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

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








   1-555






   XmRemoveProtocols(3X)



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

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

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

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

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

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

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

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

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

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














   1-556






                                                         XmRemoveTabGroup(3X)



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

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

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

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

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





































   1-557






   XmRemoveWMProtocolCallback(3X)



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

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

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

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

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

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

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

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

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



















   1-558






                                                      XmRemoveWMProtocols(3X)



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

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

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

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

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

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

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

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

























   1-559






   XmRepTypeAddReverse(3X)



   NAME
     XXmmRReeppTTyyppeeAAddddRReevveerrssee-A representation type manager function that installs
     the reverse converter for a previously registered representation type

   SYNOPSIS
     ##iinncclluuddee <<XXmm//RReeppTTyyppee..hh>>
     vvooiidd XXmmRReeppTTyyppeeAAddddRReevveerrssee ((_r_e_p__t_y_p_e__i_d))
          XXmmRReeppTTyyppeeIIdd_r_e_p__t_y_p_e__i_d;;

   DESCRIPTION
     XXmmRReeppTTyyppeeAAddddRReevveerrssee installs the reverse converter for a previously
     registered representation type.  The reverse converter takes a numerical
     representation type value and returns its corresponding string value.
     Certain applications may require this capability to obtain a string
     value to display on a screen or to build a resource file.

     The _v_a_l_u_e_s argument of the XXmmRReeppTTyyppeeRReeggiisstteerr function can be used to
     register representation types with nonconsecutive values or with dupli-
     cate names for the same value.  If the list of numerical values for a
     representation type contains duplicate values, the reverse converter
     uses the first name in the _v_a_l_u_e__n_a_m_e_s list that matches the specified
     numeric value.  For example, if a _v_a_l_u_e__n_a_m_e_s array has ccaanncceell, pprroocceeeedd,
     and aabboorrtt, and the corresponding _v_a_l_u_e_s array contains 0, 1, and 0, the
     reverse converter will return ccaanncceell instead of aabboorrtt for an input value
     of 0.

     _r_e_p__t_y_p_e__i_d
               Specifies the identification number of the representation type

   RELATED INFORMATION
     XXmmRReeppTTyyppeeGGeettIIdd((33XX)) and XXmmRReeppTTyyppeeRReeggiisstteerr((33XX)).
























   1-560






                                                           XmRepTypeGetId(3X)



   NAME
     XXmmRReeppTTyyppeeGGeettIIdd-A representation type manager function that retrieves the
     identification number of a representation type

   SYNOPSIS
     ##iinncclluuddee <<XXmm//RReeppTTyyppee..hh>>
     XXmmRReeppTTyyppeeIIdd XXmmRReeppTTyyppeeGGeettIIdd ((_r_e_p__t_y_p_e))
          SSttrriinngg    _r_e_p__t_y_p_e;;

   DESCRIPTION
     XXmmRReeppTTyyppeeGGeettIIdd searches the registration list for the specified
     representation type and returns the associated identification number.

     _r_e_p__t_y_p_e  Specifies the representation type for which an identification
               number is requested

   RETURN VALUE
     Returns the identification number of the specified representation type.
     If the representation type is not registered, the function returns
     XXmmRREEPP__TTYYPPEE__IINNVVAALLIIDD.

   RELATED INFORMATION
     XXmmRReeppTTyyppeeGGeettRReeggiisstteerreedd((33XX)) and XXmmRReeppTTyyppeeRReeggiisstteerr((33XX)).
































   1-561






   XmRepTypeGetNameList(3X)



   NAME
     XXmmRReeppTTyyppeeGGeettNNaammeeLLiisstt-A representation type manager function that gen-
     erates a list of values for a representation type

   SYNOPSIS
     ##iinncclluuddee <<XXmm//RReeppTTyyppee..hh>>
     SSttrriinngg ** XXmmRReeppTTyyppeeGGeettNNaammeeLLiisstt ((_r_e_p__t_y_p_e__i_d, _u_s_e__u_p_p_e_r_c_a_s_e__f_o_r_m_a_t))
          XXmmRReeppTTyyppeeIIdd _r_e_p__t_y_p_e__i_d;;
          BBoooolleeaann     _u_s_e__u_p_p_e_r_c_a_s_e__f_o_r_m_a_t;;

   DESCRIPTION
     XXmmRReeppTTyyppeeGGeettNNaammeeLLiisstt generates a null-terminated list of the value names
     associated with the specified representation type.  Each value name is a
     null-terminated string.  This routine allocates memory for the returned
     data.  The application must free this memory using XXttFFrreeee.

     _r_e_p__t_y_p_e__i_d
               Specifies the identification number of the representation
               type.

     _u_s_e__u_p_p_e_r_c_a_s_e__f_o_r_m_a_t
               Specifies a Boolean value that controls the format of the name
               list.  If True, each value name is in uppercase characters
               prefixed by "Xm"; if False, the names are in lowercase charac-
               ters.

   RETURN VALUE
     Returns a pointer to an array of the value names.

   RELATED INFORMATION
     XXmmRReeppTTyyppeeGGeettIIdd((33XX)), XXmmRReeppTTyyppeeGGeettRReeggiisstteerreedd((33XX)), and
     XXmmRReeppTTyyppeeRReeggiisstteerr((33XX)).























   1-562






                                                       XmRepTypeGetRecord(3X)



   NAME
     XXmmRReeppTTyyppeeGGeettRReeccoorrdd-A representation type manager function that returns
     information about a representation type

   SYNOPSIS
     ##iinncclluuddee <<XXmm//RReeppTTyyppee..hh>>
     XXmmRReeppTTyyppeeEEnnttrryy XXmmRReeppTTyyppeeGGeettRReeccoorrdd ((_r_e_p__t_y_p_e__i_d))
          XXmmRReeppTTyyppeeIIdd_r_e_p__t_y_p_e__i_d;;

   DESCRIPTION
     XXmmRReeppTTyyppeeGGeettRReeccoorrdd retrieves information about a particular representa-
     tion type that is registered with the representation type manager.  This
     routine allocates memory for the returned data. The application must
     free this memory using XXttFFrreeee.

     _r_e_p__t_y_p_e__i_d
               The identification number of the representation type

     The representation type entry structure contains the following informa-
     tion:
     ttyyppeeddeeff ssttrruucctt
     {{
       SSttrriinngg       _r_e_p__t_y_p_e__n_a_m_e;;
       SSttrriinngg       **_v_a_l_u_e__n_a_m_e_s;;
       uunnssiiggnneedd cchhaarr**_v_a_l_u_e_s;;
       uunnssiiggnneedd cchhaarr_n_u_m__v_a_l_u_e_s;;
       BBoooolleeaann      _r_e_v_e_r_s_e__i_n_s_t_a_l_l_e_d;;
       XXmmRReeppTTyyppeeIIdd  _r_e_p__t_y_p_e__i_d;;
     }} XXmmRReeppTTyyppeeEEnnttrryyRReecc,, **XXmmRReeppTTyyppeeEEnnttrryy ;;

     _r_e_p__t_y_p_e__n_a_m_e
                  The name of the representation type

     _v_a_l_u_e__n_a_m_e_s  An array of representation type value names

     _v_a_l_u_e_s       An array of representation type numerical values

     _n_u_m__v_a_l_u_e_s   The number of values associated with the representation
                  type

     _r_e_v_e_r_s_e__i_n_s_t_a_l_l_e_d
                  A flag that indicates whether or not the reverse converter
                  is installed

     _r_e_p__t_y_p_e__i_d  The identification number of the representation type

   RETURN VALUE
     Returns a pointer to the representation type entry structure that
     describes the representation type.






   1-563






   XmRepTypeGetRecord(3X)


   RELATED INFORMATION
     XXmmRReeppTTyyppeeGGeettIIdd((33XX)), XXmmRReeppTTyyppeeGGeettRReeggiisstteerreedd((33XX)), and
     XXmmRReeppTTyyppeeRReeggiisstteerr((33XX)).





















































   1-564






                                                   XmRepTypeGetRegistered(3X)



   NAME
     XXmmRReeppTTyyppeeGGeettRReeggiisstteerreedd-A representation type manager function that
     returns a copy of the registration list

   SYNOPSIS
     ##iinncclluuddee <<XXmm//RReeppTTyyppee..hh>>
     XXmmRReeppTTyyppeeLLiisstt XXmmRReeppTTyyppeeGGeettRReeggiisstteerreedd (())

   DESCRIPTION
     XXmmRReeppTTyyppeeGGeettRReeggiisstteerreedd retrieves information about all representation
     types that are registered with the representation type manager.  The
     registration list is an array of structures, each of which contains
     information for a representation type entry.  The end of the registra-
     tion list is marked with a representation type entry whose _r_e_p__t_y_p_e__n_a_m_e
     field has a NULL pointer.  This routine allocates memory for the
     returned data.  The application must free this memory using XXttFFrreeee.

     The representation type entry structure contains the following informa-
     tion:
     ttyyppeeddeeff ssttrruucctt
     {{
       SSttrriinngg       _r_e_p__t_y_p_e__n_a_m_e;;
       SSttrriinngg       **_v_a_l_u_e__n_a_m_e_s;;
       uunnssiiggnneedd cchhaarr**_v_a_l_u_e_s;;
       uunnssiiggnneedd cchhaarr_n_u_m__v_a_l_u_e_s;;
       BBoooolleeaann      _r_e_v_e_r_s_e__i_n_s_t_a_l_l_e_d;;
       XXmmRReeppTTyyppeeIIdd  _r_e_p__t_y_p_e__i_d;;
     }} XXmmRReeppTTyyppeeEEnnttrryyRReecc,, **XXmmRReeppTTyyppeeLLiisstt ;;

     _r_e_p__t_y_p_e__n_a_m_e
                  The name of the representation type

     _v_a_l_u_e__n_a_m_e_s  An array of representation type value names

     _v_a_l_u_e_s       An array of representation type numerical values

     _n_u_m__v_a_l_u_e_s   The number of values associated with the representation
                  type

     _r_e_v_e_r_s_e__i_n_s_t_a_l_l_e_d
                  A flag that indicates whether or not the reverse converter
                  is installed

     _r_e_p__t_y_p_e__i_d  The identification number of the representation type

   RETURN VALUE
     Returns a pointer to the registration list of representation types.

   RELATED INFORMATION
     XXmmRReeppTTyyppeeRReeggiisstteerr((33XX)) and XXmmRReeppTTyyppeeGGeettRReeccoorrdd((33XX)).





   1-565






   XmRepTypeInstallTearOffModelConverter(3X)



   NAME
     XXmmRReeppTTyyppeeIInnssttaallllTTeeaarrOOffffMMooddeellCCoonnvveerrtteerr-A representation type manager
     function that installs the resource converter for XXmmNNtteeaarrOOffffMMooddeell.

   SYNOPSIS
     ##iinncclluuddee <<XXmm//RReeppTTyyppee..hh>>
     vvooiidd XXmmRReeppTTyyppeeIInnssttaallllTTeeaarrOOffffMMooddeellCCoonnvveerrtteerr (())

   DESCRIPTION
     XXmmRReeppTTyyppeeIInnssttaallllTTeeaarrOOffffMMooddeellCCoonnvveerrtteerr installs the resource converter
     that allows values for the XXmmNNtteeaarrOOffffMMooddeell resource to be specified in
     resource default files.

   RELATED INFORMATION
     XXmmRRoowwCCoolluummnn((33XX)).








































   1-566






                                                        XmRepTypeRegister(3X)



   NAME
     XXmmRReeppTTyyppeeRReeggiisstteerr-A representation type manager function that registers
     a representation type resource

   SYNOPSIS
     ##iinncclluuddee <<XXmm//RReeppTTyyppee..hh>>
     XXmmRReeppTTyyppeeIIdd XXmmRReeppTTyyppeeRReeggiisstteerr ((_r_e_p__t_y_p_e, _v_a_l_u_e__n_a_m_e_s, _v_a_l_u_e_s, _n_u_m__v_a_l_u_e_s))
          SSttrriinngg      _r_e_p__t_y_p_e;;
          SSttrriinngg      **_v_a_l_u_e__n_a_m_e_s;;
          uunnssiiggnneedd cchhaarr**_v_a_l_u_e_s;;
          uunnssiiggnneedd cchhaarr_n_u_m__v_a_l_u_e_s;;

   DESCRIPTION
     XXmmRReeppTTyyppeeRReeggiisstteerr registers a representation type resource with the
     representation type manager.  All features of the representation type
     management facility become available for the specified representation
     type.  The function installs a forward type converter to convert string
     values to numerical representation type values.

     When the _v_a_l_u_e_s argument is NULL, consecutive numerical values are
     assumed.  The order of the strings in the _v_a_l_u_e__n_a_m_e_s array determines
     the numerical values for the resource.  For example, the first value
     name is 0; the second value name is 1; and so on.

     If it is non-NULL, the _v_a_l_u_e_s argument can be used to assign values to
     representation types that have nonconsecutive values or have duplicate
     names for the same value.  Representation types registered in this
     manner will consume additional storage and will be slightly slower than
     representation types with consecutive values.

     A representation type can only be registered once; if the same represen-
     tation type name is registered more than once, the behavior is unde-
     fined.

     The function XXmmRReeppTTyyppeeAAddddRReevveerrssee installs a reverse converter for a
     registered representation type.  The reverse converter takes a represen-
     tation type numerical value and returns the corresponding string value.
     If the list of numerical values for a representation type contains
     duplicate values, the reverse converter uses the first name in the
     _v_a_l_u_e__n_a_m_e_s list that matches the specified numeric value.  For example,
     if a _v_a_l_u_e__n_a_m_e_s array has ccaanncceell, pprroocceeeedd, and aabboorrtt, and the
     corresponding _v_a_l_u_e_s array contains 0, 1, and 0, the reverse converter
     will return ccaanncceell instead of aabboorrtt for an input value of 0.

     _r_e_p__t_y_p_e    Specifies the representation type name.

     _v_a_l_u_e__n_a_m_e_s Specifies a pointer to an array of value names associated
                 with the representation type.  A value name is specified in
                 lowercase characters without an "Xm" prefix.  Words within a
                 name are separated with underscores.

     _v_a_l_u_e_s      Specifies a pointer to an array of values associated with
                 the representation type.  A value in this array is


   1-567






   XmRepTypeRegister(3X)


                 associated with the value name in the corresponding position
                 of the _v_a_l_u_e__n_a_m_e_s array.

     _n_u_m__v_a_l_u_e_s  Specifies the number of entries in the _v_a_l_u_e__n_a_m_e_s and
                 _v_a_l_u_e_s arrays.

   RETURN VALUE
     Returns the identification number for the specified representation type.

   RELATED INFORMATION
     XXmmRReeppTTyyppeeAAddddRReevveerrssee((33XX)), XXmmRReeppTTyyppeeGGeettIIdd((33XX)), XXmmRReeppTTyyppeeGGeettNNaammeeLLiisstt((33XX)),
     XXmmRReeppTTyyppeeGGeettRReeccoorrdd((33XX)), XXmmRReeppTTyyppeeGGeettRReeggiisstteerreedd((33XX)), and
     XXmmRReeppTTyyppeeVVaalliiddVVaalluuee((33XX)).











































   1-568






                                                      XmRepTypeValidValue(3X)



   NAME
     XXmmRReeppTTyyppeeVVaalliiddVVaalluuee-A representation type manager function that tests
     the validity of a numerical value of a  representation type resource

   SYNOPSIS
     ##iinncclluuddee <<XXmm//RReeppTTyyppee..hh>>
     BBoooolleeaann XXmmRReeppTTyyppeeVVaalliiddVVaalluuee ((_r_e_p__t_y_p_e__i_d, _t_e_s_t__v_a_l_u_e, _e_n_a_b_l_e__d_e_f_a_u_l_t__w_a_r_n_i_n_g))
          XXmmRReeppTTyyppeeIIdd _r_e_p__t_y_p_e__i_d;;
          uunnssiiggnneedd cchhaarr_t_e_s_t__v_a_l_u_e;;
          WWiiddggeett      _e_n_a_b_l_e__d_e_f_a_u_l_t__w_a_r_n_i_n_g;;

   DESCRIPTION
     XXmmRReeppTTyyppeeVVaalliiddVVaalluuee tests the validity of a numerical value for a given
     representation type resource.  The function generates a default warning
     message if the value is invalid and the _e_n_a_b_l_e__d_e_f_a_u_l_t__w_a_r_n_i_n_g argument
     is non-NULL.

     _r_e_p__t_y_p_e__i_d
               Specifies the identification number of the representation
               type.

     _t_e_s_t__v_a_l_u_e
               Specifies the numerical value to test.

     _e_n_a_b_l_e__d_e_f_a_u_l_t__w_a_r_n_i_n_g
               Specifies the ID of the widget that contains a default warning
               message.  If this parameter is NULL, no default warning mes-
               sage is generated and the application must provide its own
               error handling.

   RETURN VALUE
     Returns True if the specified value is valid; otherwise, returns False.

   RELATED INFORMATION
     XXmmRReeppTTyyppeeGGeettIIdd((33XX)) and XXmmRReeppTTyyppeeRReeggiisstteerr((33XX)).




















   1-569






   XmResolveAllPartOffsets(3X)



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

   SYNOPSIS
     ##iinncclluuddee <<XXmm//XXmmPP..hh>>
     vvooiidd XXmmRReessoollvveeAAllllP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, _c_o_n_s_t_r_a_i_n_t__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;;
          XXmmOOffffsseettPPttrr* _c_o_n_s_t_r_a_i_n_t__o_f_f_s_e_t;;

   DESCRIPTION
     The use of offset records requires two extra global variables per widget
     class.  The variables consist of pointers to arrays of offsets into the
     widget record and constraint record for each part of the widget struc-
     ture.  The XXmmRReessoollvveeAAllllP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 and constraint records by applications and widgets.  These
     offset records are used by the widget to access all of the widget's
     variables.  A widget needs to take the following steps:

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

          XmPartResource constraints[] = {
            {  BarNmaxWidth, BarNMaxWidth,
                    XmRDimension, sizeof(Dimension),
                    XmConstraintPartOffset(Bar,max_width),
                    XmRImmediate, (XtPointer)100 } };

       ++oo  Instead of putting the widget size in the class record, the widget
          puts the widget part size in the same field.  If the widget is a
          subclass of the Constraint class, instead of putting the widget
          constraint record size in the class record, the widget puts the
          widget constraint part size in the same field.

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

       ++oo  Define a variable, of type XXmmOOffffsseettPPttrr, to point to the offset


   1-570






                                                  XmResolveAllPartOffsets(3X)


          record.  If the widget is a subclass of the Constraint class,
          define a variable of type XmOffsetPtr to point to the constraint
          offset record.  These can be part of the widget's class record or
          separate global variables.

       ++oo  In class initialization, the widget calls XXmmRReessoollvveeAAllllPPaarrttOOffffsseettss,
          passing it pointers to the class record, the address of the offset
          record, and the address of the constraint offset record.  If the
          widget not is a subclass of the Constraint class, it should pass
          NULL as the address of the constraint offset record.  This does
          several things:
          Adds the superclass (which, by definition, has already been ini-
          tialized) size field to the part size field
          If the widget is a subclass of the Constraint class, adds the
          superclass constraint size field to the constraint size field
          Allocates an array based upon the number of superclasses
          If the widget is a subclass of the constraint class, allocates an
          array for the constraint offset record
          Fills in the offsets of all the widget parts and constraint 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o  The widget defines a constant which will be the index to its part
          structure in the offsets array.  The value should be 1 greater than
          the index of the widget's superclass.  Constants defined for all Xm
          widgets can be found in XXmmPP..hh.
          #define BarIndex (XmBulletinBIndex + 1)

       ++oo  Instead of accessing fields directly, the widget must always go
          through the offset table.  The XXmmFFiieelldd and XXmmCCoonnssttrraaiinnttFFiieelldd macros
          help you access these fields.  Because the XXmmPPaarrttOOffffsseett, XXmmCCoonn--
          ssttrraaiinnttPPaarrttOOffffsseett, XXmmFFiieelldd, and XXmmCCoonnssttrraaiinnttFFiieelldd macros concaten-
          ate 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)))
          For constraint field _m_a_x__w_i_d_t_h:
          #define BarMaxWidth(w) \
            XmConstraintField(w,constraint_offsets,Bar,max_width,Dimension)

     The parameters for XXmmRReessoollvveeAAllllP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


   1-571






   XmResolveAllPartOffsets(3X)



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

     _c_o_n_s_t_r_a_i_n_t__o_f_f_s_e_t
               Returns the constraint offset record

   RELATED INFORMATION
     XXmmRReessoollvveePPaarrttOOffffsseettss((33XX)).
















































   1-572






                                                     XmResolvePartOffsets(3X)



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

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

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

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

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

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

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

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


   1-573






   XmResolvePartOffsets(3X)


          resource list to be real offsets, in place

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

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

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

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

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

   RELATED INFORMATION
     XXmmRReessoollvveeAAllllPPaarrttOOffffsseettss((33XX)).























   1-574



 P
