Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ XmDrawnBu(Xm) — OpenDesktop Software Development System 3.0.0

Media Vault

Software Library

Restoration Projects

Artifacts Sought


 XmDrawnButton(Xm)              6 January 1993              XmDrawnButton(Xm)


 Name

    XmDrawnButton - the DrawnButton widget class

 Syntax


    #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 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 ``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
 ____________________________________________________________________________
 XmNactivate-      XmCCallback       XtCallbackList NULL               C
 Callback
 XmNarmCallback    XmCCallback       XtCallbackList NULL               C
 XmNdisarmCallback XmCCallback       XtCallbackList NULL               C
 XmNexposeCallback XmCCallback       XtCallbackList NULL               C
 XmNmultiClick     XmCMultiClick     unsigned char  dynamic            CSG
 XmNpushButton-    XmCPushButton-    Boolean        False              CSG
 Enabled           Enabled
 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
            XmCRACTIVATE.

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

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

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

    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 XmMULTICLICKDISCARD, do not process the
            second click. If this resource is set to XmMULTICLICKKEEP, pro-
            cess the event and increment clickcount in the callback struc-
            ture. When the button is not in a menu, the default value is
            XmMULTICLICKKEEP.

    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
            XmCRRESIZE. The event returned for this callback is NULL.

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

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

            +  XmSHADOWOUT -- draws the DrawnButton so that the shadow
               appears outset.

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

            +  XmSHADOWETCHEDOUT -- draws the DrawnButton using a double
               line. This gives the effect of a line coming out of the win-
               dow. The thickness of the double line is equal to the value of
               XmNshadowThickness.

    Inherited resources

    DrawnButton inherits behavior and resources from the following superc-
    lasses. 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 XmCAcceleratorTextXmString          NULL           N/A
 XmNalignment       XmCAlignment      unsigned char     dynamic        CSG
 XmNfontList        XmCFontList       XmFontList        dynamic        CSG
 XmNlabel-          XmCLabel-         Pixmap            XmUNSPECIFIED- CSG
 InsensitivePixmap  InsensitivePixmap                   _PIXMAP
 XmNlabelPixmap     XmCLabelPixmap    Pixmap            XmUNSPECIFIED- CSG
                                                        _PIXMAP
 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 XmCMnemonicCharSetString            XmFONTLIST_-   N/A
                                                        DEFAULT_TAG
 XmNrecomputeSize   XmCRecomputeSize  Boolean           True           CSG
 XmNstringDirection XmCStringDirectionXmStringDirection dynamic        CSG


 XmPrimitive resource set

 ____________________________________________________________________________
 Name               Class              Type             Default        Access
 ____________________________________________________________________________
 XmNbottomShadow-   XmCBottomShadow-   Pixel            dynamic        CSG
 Color              Color
 XmNbottomShadow-   XmCBottomShadow-   Pixmap           XmUNSPECIFIED- CSG
 Pixmap             Pixmap                              _PIXMAP
 XmNforeground      XmCForeground      Pixel            dynamic        CSG
 XmNhelpCallback    XmCCallback        XtCallbackList   NULL           C
 XmNhighlightColor  XmCHighlightColor  Pixel            dynamic        CSG
 XmNhighlightOn-    XmCHighlightOn-    Boolean          False          CSG
 Enter              Enter
 XmNhighlightPixmap XmCHighlightPixmap Pixmap           dynamic        CSG


 XmNhighlight-      XmCHighlight-      Dimension        2              CSG
 Thickness          Thickness
 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
 XmNancestor-        XmCSensitive      Boolean         dynamic         G
 Sensitive
 XmNbackground       XmCBackground     Pixel           dynamic         CSG
 XmNbackground-      XmCPixmap         Pixmap          XmUNSPECIFIED-  CSG
 Pixmap                                                _PIXMAP
 XmNborderColor      XmCBorderColor    Pixel           XtDefault-      CSG
                                                       Foreground
 XmNborderPixmap     XmCPixmap         Pixmap          XmUNSPECIFIED-  CSG
                                                       _PIXMAP


 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
 XmNinitial-         XmCInitial-       Boolean         True            C
 Resources-          Resources-
 Persistent          Persistent
 XmNmappedWhen-      XmCMappedWhen-    Boolean         True            CSG
 Managed             Managed
 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.

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

    Translations

    XmDrawnButton includes translations from Primitive.  Additional XmDrawn-
    Button 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 XmNactivateCall-
            back 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 XmMULTICLICKDISCARD, this action does noth-
            ing.

            If XmNmultiClick is XmMULTICLICKKEEP, this action does the fol-
            lowing. Increments clickcount 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 XmMULTICLICKDISCARD, this action does noth-
            ing.

            If XmNmultiClick is XmMULTICLICKKEEP, this action does the fol-
            lowing:  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(Xm).

 See also

    Core(Xm), XmCreateDrawnButton(Xm), XmLabel(Xm), XmPrimitive(Xm),
    XmPushButton(Xm) and XmSeparator(Xm).


Typewritten Software • bear@typewritten.org • Edmonds, WA 98026