XmDrawnButton(3X)

XmDrawnButton - The DrawnButton widget class

Showing IRIX 6.5.30 (default release). Added in IRIX 6.5.19.

     NAME
          XmDrawnButton - The DrawnButton widget class

     SYNOPSIS
          #include <Xm/DrawnB.h>

     DESCRIPTION
          The DrawnButton widget consists of an empty widget window
          surrounded by a shadow border.  It provides the application
          developer with a graphics area that can have PushButton
          input semantics.

          Callback types are defined for widget exposure and widget
          resize to allow the application to redraw or reposition its
          graphics.  If the DrawnButton widget has a highlight and
          shadow thickness, the application should not draw in that
          area.  To avoid drawing in the highlight and shadow area,
          create the graphics context with a clipping rectangle for
          drawing in the widget.  The clipping rectangle should take
          into account the size of the widget's highlight thickness
          and shadow.

        Classes
          DrawnButton inherits behavior and resources from Core,
          XmPrimitive, and XmLabel Classes.

          The class pointer is xmDrawnButtonWidgetClass.

          The class name is XmDrawnButton.

        New Resources
          The following table defines a set of widget resources used
          by the programmer to specify data.  The programmer can also
          set the resource values for the inherited classes to set
          attributes for this widget.  To reference a resource by name
          or by class in a .Xdefaults file, remove the XmN or XmC
          prefix and use the remaining letters.  To specify one of the
          defined values for a resource in a .Xdefaults file, remove
          the Xm prefix and use the remaining letters (in either
          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
          XtSetValues (S), retrieved by using XtGetValues (G), or is
          not applicable (N/A).

                                     XmDrawnButton Resource Set
     Name                   Class                  Type             Default              Access
     __________________________________________________________________________________________
     XmNactivateCallback    XmCCallback            XtCallbackList   NULL                 C
     XmNarmCallback         XmCCallback            XtCallbackList   NULL                 C

     XmNdisarmCallback      XmCCallback            XtCallbackList   NULL                 C
     XmNexposeCallback      XmCCallback            XtCallbackList   NULL                 C
     XmNmultiClick          XmCMultiClick          unsigned char    dynamic              CSG
     XmNpushButtonEnabled   XmCPushButtonEnabled   Boolean          False                CSG
     XmNresizeCallback      XmCCallback            XtCallbackList   NULL                 C
     XmNshadowType          XmCShadowType          unsigned char    XmSHADOW_ETCHED_IN   CSG


          XmNactivateCallback
               Specifies the list of callbacks that is called when the
               widget becomes selected.  The reason sent by the
               callback is XmCR_ACTIVATE.

          XmNarmCallback
               Specifies the list of callbacks that is called when the
               widget becomes armed.  The reason sent by the callback
               is XmCR_ARM.

          XmNdisarmCallback
               Specifies the list of callbacks that is called when the
               widget becomes disarmed.  The reason sent by the
               callback is XmCR_DISARM.

          XmNexposeCallback
               Specifies the list of callbacks that is called when the
               widget receives an exposure event.  The reason sent by
               the callback is XmCR_EXPOSE.

          XmNmultiClick
               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
               XmMULTICLICK_DISCARD, do not process the second click.
               If this resource is set to XmMULTICLICK_KEEP, process
               the event and increment click_count in the callback
               structure.  When the button is not in a menu, the
               default value is XmMULTICLICK_KEEP.

          XmNpushButtonEnabled
               Enables or disables the three-dimensional shadow
               drawing as in PushButton.

          XmNresizeCallback
               Specifies the list of callbacks that is called when the
               widget receives a resize event.  The reason sent by the
               callback is XmCR_RESIZE.  The event returned for this
               callback is NULL.

          XmNshadowType
               Describes the drawing style for the DrawnButton.  This
               resource can have the following values:

          o    XmSHADOW_IN - draws the DrawnButton so that the shadow
               appears inset.  This means that the bottom shadow
               visuals and top shadow visuals are reversed.

          o    XmSHADOW_OUT - draws the DrawnButton so that the shadow
               appears outset.

          o    XmSHADOW_ETCHED_IN - draws the DrawnButton using a
               double line.  This gives the effect of a line etched
               into the window.  The thickness of the double line is
               equal to the value of XmNshadowThickness.

          o    XmSHADOW_ETCHED_OUT - draws the DrawnButton using a
               double line.  This gives the effect of a line coming
               out of the window.  The thickness of the double line is
               equal to the value of XmNshadowThickness.

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

                                                XmLabel Resource Set
     Name                        Class                       Type                Default                  Access
     ___________________________________________________________________________________________________________
     XmNaccelerator              XmCAccelerator              String              NULL                     N/A
     XmNacceleratorText          XmCAcceleratorText          XmString            NULL                     N/A
     XmNalignment                XmCAlignment                unsigned char       dynamic                  CSG
     XmNfontList                 XmCFontList                 XmFontList          dynamic                  CSG
     XmNlabelInsensitivePixmap   XmCLabelInsensitivePixmap   Pixmap              XmUNSPECIFIED_PIXMAP     CSG
     XmNlabelPixmap              XmCLabelPixmap              Pixmap              XmUNSPECIFIED_PIXMAP     CSG
     XmNlabelString              XmCXmString                 XmString            "\0"                     CSG
     XmNlabelType                XmCLabelType                unsigned char       XmSTRING                 CSG
     XmNmarginBottom             XmCMarginBottom             Dimension           0                        CSG
     XmNmarginHeight             XmCMarginHeight             Dimension           2                        CSG
     XmNmarginLeft               XmCMarginLeft               Dimension           0                        CSG
     XmNmarginRight              XmCMarginRight              Dimension           0                        CSG
     XmNmarginTop                XmCMarginTop                Dimension           0                        CSG
     XmNmarginWidth              XmCMarginWidth              Dimension           2                        CSG
     XmNmnemonic                 XmCMnemonic                 KeySym              NULL                     N/A
     XmNmnemonicCharSet          XmCMnemonicCharSet          String              XmFONTLIST_DEFAULT_TAG   N/A
     XmNrecomputeSize            XmCRecomputeSize            Boolean             True                     CSG
     XmNstringDirection          XmCStringDirection          XmStringDirection   dynamic                  CSG


                                         XmPrimitive Resource Set
     Name                    Class                   Type               Default                Access
     ________________________________________________________________________________________________
     XmNbottomShadowColor    XmCBottomShadowColor    Pixel              dynamic                CSG
     XmNbottomShadowPixmap   XmCBottomShadowPixmap   Pixmap             XmUNSPECIFIED_PIXMAP   CSG

     XmNforeground           XmCForeground           Pixel              dynamic                CSG
     XmNhelpCallback         XmCCallback             XtCallbackList     NULL                   C
     XmNhighlightColor       XmCHighlightColor       Pixel              dynamic                CSG
     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


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


        Callback Information
          A pointer to the following structure is passed to each
          callback:
          typedef struct
          {
            int      reason;
            XEvent   * event;
            Window   window;
            int      click_count;
          } XmDrawnButtonCallbackStruct;

          reason
               Indicates why the callback was invoked.
          event
               Points to the XEvent that triggered the callback.  This
               is  NULL for XmNresizeCallback.

          window
               Is set to the window ID in which the event occurred.

          click_count
               Contains the number of clicks in the last multiclick
               sequence if the XmNmultiClick resource is set to
               XmMULTICLICK_KEEP, otherwise it contains 1.  The
               activate callback is invoked for each click if
               XmNmultiClick is set to XmMULTICLICK_KEEP.

        Translations
          XmDrawnButton includes translations from Primitive.
          Additional XmDrawnButton translations are listed below.
          These translations may not directly correspond to a
          translation table.
          BSelect Press: Arm()
          BSelect Click: Activate()
                         Disarm()
          BSelect Release:Activate()
                         Disarm()
          BSelect Press 2+:MultiArm()
          BSelect Release 2+:MultiActivate()
          KSelect:       ArmAndActivate()
          KHelp:         Help()

        Action Routines
          The XmDrawnButton action routines are described below:

          Activate():
               If XmNpushButtonEnabled is True, redraws the shadow in
               the unselected state; otherwise, redraws the shadow
               according to XmNshadowType.  If the pointer is within
               the DrawnButton, calls the XmNactivateCallback
               callbacks.

          Arm():
               If XmNpushButtonEnabled is True, redraws the shadow in
               the selected state; otherwise, redraws the shadow
               according to XmNshadowType.  Calls the callbacks for
               XmNarmCallback.

          ArmAndActivate():
               If XmNpushButtonEnabled is True, redraws the shadow in
               the selected state; otherwise, redraws the shadow
               according to XmNshadowType.  Calls the callbacks for
               XmNarmCallback.

          Arranges for the following to happen, either immediately or
          at a later time:  If XmNpushButtonEnabled is True, the
          shadow is redrawn in the unselected state; otherwise, the
          shadow is redrawn according to XmNshadowType.  The callbacks
          for XmNactivateCallback and XmNdisarmCallback are called.

          Disarm():
               Marks the DrawnButton as unselected and calls the
               callbacks for XmNdisarmCallback.

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

          MultiActivate():
               If XmNmultiClick is XmMULTICLICK_DISCARD, this action
               does nothing.

          If XmNmultiClick is XmMULTICLICK_KEEP, this action does the
          following:  Increments click_count in the callback
          structure.  If XmNpushButtonEnabled is True, redraws the
          shadow in the unselected state; otherwise, redraws the
          shadow according to XmNshadowType.  If the pointer is within
          the DrawnButton,  calls the XmNactivateCallback callbacks.

          Calls the callbacks for XmNdisarmCallback.

          MultiArm():
               If XmNmultiClick is XmMULTICLICK_DISCARD, this action
               does nothing.

          If XmNmultiClick is XmMULTICLICK_KEEP, this action does the
          following:  If XmNpushButtonEnabled is True, redraws the
          shadow in the selected state; otherwise, redraws the shadow
          according to XmNshadowType.  Calls the callbacks for
          XmNarmCallback.

        Additional Behavior
          This widget has the additional behavior described below:

          <EnterWindow>:
               Draws the shadow in its selected state if
               XmNpushButtonEnabled is True and if the cursor leaves
               and re-enters the window while BSelect is pressed.

          <LeaveWindow>:
               Draws the shadow in its unselected state if
               XmNpushButtonEnabled is True and if the cursor leaves
               the window while BSelect is pressed.

        Virtual Bindings
          The bindings for virtual keys are vendor specific.  For
          information about bindings for virtual buttons and keys, see
          VirtualBindings(3X).

     RELATED INFORMATION
          Core(3X), XmCreateDrawnButton, XmLabel(3X), XmPrimitive(3X),
          XmPushButton, and XmSeparator(3X).