XmDrawnButton(3X)

XmDrawnButton - The DrawnButton widget class

As shipped in IRIX 6.5.22. Added in IRIX 6.5.5.

     NAME
          XmDrawnButton - The DrawnButton widget class

     SYNOPSIS
          #include <Xm/DrawnB.h>

     VERSION
          This page documents Motif 2.1.

     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.  DrawnButton uses the XmQTmenuSystem and
          XmQTspecifyRenderTable traits, and holds the XmQTactivatable
          trait.

        Classes
          BulletinBoard inherits behavior, resources, and traits from
          the Core, Composite, Constraint, and XmManager 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.  This callback
                    uses the XmQTactivatable trait.

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

          XmNpushButtonEnabled
                    Enables or disables the 3-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:

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

                    XmSHADOW_OUT
                              Draws the DrawnButton so that the shadow
                              appears outset.

                    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.

                    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
          superclasses described in the following tables.  For a
          complete description of each resource, refer to the
          reference 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
          XmNrenderTable              XmCRenderTable              XmRenderTable       dynamic                  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
          XmNconvertCallback        XmCCallback             XtCallbackList     NULL                   C
          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
          XmNlayoutDirection        XmCLayoutDirection      XmDirection        dynamic                CG
          XmNnavigationType         XmCNavigationType       XmNavigationType   XmNONE                 CSG
          XmNpopupHandlerCallback   XmCCallback             XtCallbackList     NULL                   C
          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 XmNmultiClickis set to XmMULTICLICK_KEEP.

        Translations
          XmDrawnButton includes translations from Primitive.
          Additional XmDrawnButton translations are described in the
          following list.  The following key names are listed in the X
          standard key event translation table syntax.  This format is
          the one used by Motif to specify the widget actions
          corresponding to a given key.  A brief overview of the
          format is provided under VirtualBindings(3).  For a complete
          description of the format, please refer to the X Toolkit
          Instrinsics Documentation.

          c<Btn1Down>:
                    ButtonTakeFocus()

          ~c<Btn1Down>:
                    Arm()

          ~c<Btn1Down>,~c<Btn1Up>:
                    Activate() Disarm()

          ~c<Btn1Down>(2+):
                    MultiArm()

          ~c<Btn1Up>(2+):
                    MultiActivate()

          ~c<Btn1Up>:
                    Activate() Disarm()

          :<Key><osfActivate>:
                    PrimitiveParentActivate()

          :<Key><osfCancel>:
                    PrimitiveParentCancel()

          :<Key><osfSelect>:
                    ArmAndActivate()

          :<Key><osfHelp>:
                    Help()

          ~s ~m ~a <Key>Return:
                    PrimitiveParentActivate()

          ~s ~m ~a <Key>space:
                    ArmAndActivate()

        Action Routines
          The XmDrawnButton action routines are

          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.

                    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
                    XmNdisarmCallbackare called.  These actions happen
                    either immediately or at a later time.

          ButtonTakeFocus():
                    Causes the PushButton to take keyboard focus when
                    Ctrl<Btn1Down> is pressed, without activating the
                    widget.

          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
                    increments click_count in the callback structure.
                    If XmNpushButtonEnabled is True, this action
                    redraws the shadow in the unselected state;
                    otherwise, it redraws the shadow according to
                    XmNshadowType.  If the pointer is within the
                    DrawnButton, this action calls the
                    XmNactivateCallback callbacks and calls the
                    callbacks for XmNdisarmCallback.

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

                    If XmNmultiClick is XmMULTICLICK_KEEP and if
                    XmNpushButtonEnabled is True, this action redraws
                    the shadow in the selected state; otherwise, it
                    redraws the shadow according to XmNshadowType and
                    calls the callbacks for XmNarmCallback.

        Additional Behavior
          This widget has the following additional behavior:

          <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
                    XmNpushButtonEnabledis 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(3).

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