callback routines. This interactivity is the principal difference between PushButtons and Labels. There are other visual
differences, but these are adjusted automatically by the PushButton widget using Label resources.
<Xm/PushB.h> and <Xm/PushBG.h> are the header files for PushButton widgets and gadgets, respectively. These
objects can be created using XtVaCreateManagedWidget(), as in the following code fragment:
Widget pushb_w, pushb_g;
pushb_w = XtVaCreateManagedWidget ("name",
xmPushButtonWidgetClass, parent,
resource−value−list,
NULL);
pushb_g = XtVaCreateManagedWidget ("name",
xmPushButtonGadgetClass, parent,
resource−value−list,
NULL);
12.2.1 PushButton Callbacks
The major callback routine associated with the PushButton widget is the XmNactivateCallback. The functions
associated with this resource are called whenever the user activates the PushButton by pressing the left mouse button
over it or by pressing the SPACEBAR when the widget has the keyboard focus.
The other callback routines associated with the PushButton are the XmNarmCallback and the
XmNdisarmCallback. Each function in an arm callback list is called whenever the user presses the left mouse
button when the pointer is over the PushButton. When the PushButton is armed, the top and bottom shadows are
inverted and the background of the button changes to the arm color. The arm callback does not indicate that the button
has been released. If the user releases the mouse button within the widget, then the activate callback list ...