kevinj@boulder.Colorado.EDU (Kevin M. Jackson) (04/14/90)
I'm trying to get XtCallbackPopdown to work, and so far have had little success. The code fragments provided in O'Reilly Vol 5 are incorrect. They specify that XtCallbackPopdown should be called as follows: Widget pshell, confirm; XtPopdownIDRec pop_rec; confirm = XtCreateWidget(...) pshell = XtCreatePopupShell(...) pop_rec.shell_widget = pshell; pop_rec.enable_widget = confirm; XtAddCallback(confirm, XtCallbackPopdown, pop_rec); There are two problems with this. XtAddCallback is missing its second arguement (callback_name) and XtCallbackPopdown is being sent an XtPopdownIDRec when it should be sent an XtPopdownIDRec pointer (or XtPopdownID). I tried the following (SunOS 4.0.1, Sun3/260, mit server (patchlevel 9)). Everthing compiles fine and runs until I try to exit the dialog with the "button" command widget, but at that point I get a segmentation fault in XtPopdown (called by XtCallbackPopdown): void CreateMessageBox (popup) XtPopdownID popup; { Widget mesg, box, text, button; mesg = XtCreateManagedWidget( "mesg", panedWidgetClass, popup->shell_widget, NULL, 0); text = XtCreateManagedWidget( "text", asciiTextWidgetClass, mesg, NULL, 0); box = XtCreateManagedWidget( "box", boxWidgetClass, mesg, NULL, 0); button = XtCreateManagedWidget( "button", commandWidgetClass, box, NULL, 0); XtAddCallback( popup->enable_widget, XtNcallback, XtCallbackNonexclusive, popup->shell_widget); XtAddCallback( button, XtNcallback, XtCallbackPopdown, popup); } Any help is appreciated... ______________________________________________________________ ( ) _______| Kevin M. Jackson kevinj@boulder.Colorado.EDU |_______ | kevinj@matrix.Colorado.EDU |