(3)

NAME
XfwfButton

DESCRIPTION
The XfwfButton widget is a simple button with a single callback activate_callback. Except for that callback, all resources are inherited from the XfwfLabel widget. Subclasses provide buttons of other, more specialized types. XfwfButton inherits its 3D frame from XfwfFrame, the location specification resources from XfwfBoard and the multi-line label from XfwfLabel. The implementation is also very simple, since nearly all code is inherited from XfwfLabel. There are no new or redefined methods. In fact, just six lines of actual code suffice to implement the widget: Object Oriented Programming at its best!

  Public variables
XfwfButton
Name | Class | Type | Default
XtNactivate | XtCActivate | Callback | NULL
XtNenter | XtCEnter | Callback | NULL
XtNleave | XtCLeave | Callback | NULL

XtNactivate
    The activate is invoked from the activate action, which is normally bound to a mouse click. The call_data argument of the callbacks routines is filled with a pointer to the event that triggered the action.

    <Callback> XtCallbackList activate = NULL

XtNenter
    The enter callback is invoked on an EnterNotify event.

    <Callback> XtCallbackList enter = NULL

XtNleave
    The leave callback is invoked on an LeaveNotify event.

    <Callback> XtCallbackList leave = NULL

XtNframeWidth
    The default frameWidth is set to 2 pixels.

    Dimension frameWidth = 2

XtNtraversalOn
    In contrast to its superclass XfwfLabel, a button usually takes part in keyboard traversal.

     traversalOn = True
    XfwfLabel
    Name | Class | Type | Default
    XtNlabel | XtCLabel | String | NULL
    XtNtablist | XtCTablist | String | NULL
    XtNfont | XtCFont | FontStruct | XtDefaultFont
    XtNforeground | XtCForeground | Pixel | XtDefaultForeground
    XtNhlForeground | XtCHlForeground | Pixel | XtDefaultForeground
    XtNalignment | XtCAlignment | Alignment | 0
    XtNtopMargin | XtCTopMargin | Dimension | 2
    XtNbottomMargin | XtCBottomMargin | Dimension | 2
    XtNleftMargin | XtCLeftMargin | Dimension | 2
    XtNrightMargin | XtCRightMargin | Dimension | 2
    XtNshrinkToFit | XtCShrinkToFit | Boolean | False
    XtNrvStart | XtCRvStart | Int | 0
    XtNrvLength | XtCRvLength | Int | 0
    XtNhlStart | XtCHlStart | Int | 0
    XtNhlLength | XtCHlLength | Int | 0
    XfwfBoard
    Name | Class | Type | Default
    XtNabs_x | XtCAbs_x | Position | 0
    XtNrel_x | XtCRel_x | Float | "0.0"
    XtNabs_y | XtCAbs_y | Position | 0
    XtNrel_y | XtCRel_y | Float | "0.0"
    XtNabs_width | XtCAbs_width | Position | 0
    XtNrel_width | XtCRel_width | Float | "1.0"
    XtNabs_height | XtCAbs_height | Position | 0
    XtNrel_height | XtCRel_height | Float | "1.0"
    XtNhunit | XtCHunit | Float | "1.0"
    XtNvunit | XtCVunit | Float | "1.0"
    XtNlocation | XtCLocation | String | NULL
    XfwfFrame
    Name | Class | Type | Default
    XtNcursor | XtCCursor | Cursor | None
    XtNframeType | XtCFrameType | FrameType | XfwfRaised
    XtNframeWidth | XtCFrameWidth | Dimension | 0
    XtNouterOffset | XtCOuterOffset | Dimension | 0
    XtNinnerOffset | XtCInnerOffset | Dimension | 0
    XtNshadowScheme | XtCShadowScheme | ShadowScheme | XfwfAuto
    XtNtopShadowColor | XtCTopShadowColor | Pixel | compute_topcolor
    XtNbottomShadowColor | XtCBottomShadowColor | Pixel | compute_bottomcolor
    XtNtopShadowStipple | XtCTopShadowStipple | Bitmap | NULL
    XtNbottomShadowStipple | XtCBottomShadowStipple | Bitmap | NULL
    XfwfCommon
    Name | Class | Type | Default
    XtNtraversalOn | XtCTraversalOn | Boolean | True
    XtNhighlightThickness | XtCHighlightThickness | Dimension | 2
    XtNhighlightColor | XtCHighlightColor | Pixel | XtDefaultForeground
    XtNhighlightPixmap | XtCHighlightPixmap | Pixmap | None
    XtNnextTop | XtCNextTop | Callback | NULL
    XtNuserData | XtCUserData | Pointer | NULL
    Composite
    Name | Class | Type | Default
    XtNchildren | XtCChildren | WidgetList | NULL
    insertPosition | XtCInsertPosition | XTOrderProc | NULL
    numChildren | XtCNumChildren | Cardinal | 0
    Core
    Name | Class | Type | Default
    XtNx | XtCX | Position | 0
    XtNy | XtCY | Position | 0
    XtNwidth | XtCWidth | Dimension | 0
    XtNheight | XtCHeight | Dimension | 0
    borderWidth | XtCBorderWidth | Dimension | 0
    XtNcolormap | XtCColormap | Colormap | NULL
    XtNdepth | XtCDepth | Int | 0
    destroyCallback | XtCDestroyCallback | XTCallbackList | NULL
    XtNsensitive | XtCSensitive | Boolean | True
    XtNtm | XtCTm | XTTMRec | NULL
    ancestorSensitive | XtCAncestorSensitive | Boolean | False
    accelerators | XtCAccelerators | XTTranslations | NULL
    borderColor | XtCBorderColor | Pixel | 0
    borderPixmap | XtCBorderPixmap | Pixmap | NULL
    background | XtCBackground | Pixel | 0
    backgroundPixmap | XtCBackgroundPixmap | Pixmap | NULL
    mappedWhenManaged | XtCMappedWhenManaged | Boolean | True
    XtNscreen | XtCScreen | Screen * | NULL

  Translations
By default, the activate action is bound to a mouse click and to the Enter key.

<Btn1Down>: set_shadow(sunken)
<Btn1Down>,<Btn1Up>: activate() set_shadow()
Button1<Leave>: set_shadow() leave()
<Key>Return: set_shadow(sunken) activate() set_shadow()
<EnterNotify>: enter()
<LeaveNotify>: leave()

  Actions

activate
    The activate action just calls the activate callback functions, passing the XEvent pointer in the call_data argument.
    void activate($, XEvent* event, String* params, Cardinal* num_params)
    {
        XtCallCallbackList($, $activate, event);
    }

enter
    void enter($, XEvent* event, String* params, Cardinal* num_params)
    {
        XtCallCallbackList($, $enter, event);
    }

leave
    void leave($, XEvent* event, String* params, Cardinal* num_params)
    {
        XtCallCallbackList($, $leave, event);
    }