XtCallbackNonexclusive() XtCallbackNonexclusive()
Name
XtCallbackNonexclusive - callback function to pop up a widget.
Synopsis
void XtCallbackNonexclusive(w, client_data, call_data)
Widget w;
XtPointer client_data;
XtPointer call_data;
Inputs
w Specifies the widget.
client_data
Specifies the popup shell.
call_data Specifies the callback data, which is not used by this procedure.
Description
XtCallbackNonexclusive() calls XtPopup() on the widget passed in the client_data argument with grab_mode set to XtGrabNonexclusive. Then
it calls XtSetSensitive() on w to make that widget insensitive.
XtCallbackNonexclusive() is a convenience procedure designed to be registered on a widget's callback list (which is why it has a third,
unused argument). The widget to be popped up should be registered as client_data for the callback. The reason that this callback makes
its invoking widget insensitive is so that the user cannot request to popup the shell again while it is already up.
Usage
To popup a shell with a non-exclusive grab or with no grab at all, you can use XtCallbackNonexlusive() or XtCallbackNone(). To popdown a
shell from a callback, use XtCallbackPopdown().
Note that this function does not attempt to place the popup shell at any particular location, and for that reason may not be appropriate in
many circumstances.
It is also possible to pop up a shell with the XtMenuPopup action.
Example
To arrange for the shell pshell to be popped up when the user clicks on the button widget button, you would use code like the following:
XtAddCallback(button,XtNcallback,XtCallbackNonexclusive,pshell);
A companion example is presented on the XtCallbackPopdown() reference page.
See Also
XtCallbackNone(1), XtCallbackExclusive(1), XtCallbackPopdown(1), XtMenuPopdown(1), XtMenuPopup(1), XtPopdown(1), XtPopup(1), XtSetSensi-
tive(1).
Xt - Pop Ups XtCallbackNonexclusive()