XmDrawnButton(3X)

XmDrawnButton --The DrawnButton widget class

As shipped in IRIX 6.5.30. Unchanged since IRIX 6.5.

NAME
     XmDrawnButton --The DrawnButton widget class

SYNOPSIS
     #include <Xm/DrawnB.h>


VERSION
     This page documents version 1.2 of the Motif library.

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, cre-
     ate the graphics context with a clipping rectangle for drawing in the  wid-
     get.   The clipping rectangle should take into account the size of the wid-
     get's highlight thickness and shadow.

   Classes
     DrawnButton inherits behavior and resources from Core, XmPrimitive, and Xm-
     Label 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  program-
     mer  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  re-
     maining  letters  (in either lowercase or uppercase, but include any under-
     scores 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_ACTI-
               VATE.

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

     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 sec-
               ond 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 XmMUL-
               TICLICK_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:


                 *  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 ap-
                    pears outset.

                 *  XmSHADOW_ETCHED_IN-draws  the  DrawnButton  using  a  double
                    line.   This gives the effect of a line etched into the win-
                    dow.  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 following super-
     classes.  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 XmN-
            multiClick is set to XmMULTICLICK_KEEP.


   Translations
     XmDrawnButton includes translations from Primitive.  Additional XmDrawnBut-
     ton 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 unse-
               lected state; otherwise, redraws the shadow according to XmNshad-
               owType.  If the pointer is within the DrawnButton, calls the XmN-
               activateCallback callbacks.

     Arm():    If XmNpushButtonEnabled is True, redraws the shadow  in  the  se-
               lected state; otherwise, redraws the shadow according to XmNshad-
               owType.  Calls the callbacks for XmNarmCallback.

     ArmAndActivate():
               If  XmNpushButtonEnabled  is  True, redraws the shadow in the se-
               lected state; otherwise, redraws the shadow according to XmNshad-
               owType.  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 unse-
     lected 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 noth-
               ing.

     If XmNmultiClick is XmMULTICLICK_KEEP, this action does the following:  In-
     crements 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  DrawnBut-
     ton,  calls the XmNactivateCallback callbacks.  Calls the callbacks for Xm-
     NdisarmCallback.

     MultiArm():
               If  XmNmultiClick is XmMULTICLICK_DISCARD, this action does noth-
               ing.

     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  call-
     backs 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 BSe-
               lect 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).

                                                               XmDrawnButton(3X)