/* * Copyright 1989, 1992 O'Reilly and Associates, Inc. * See ../Copyright for complete rights and liability information. */ /* * xworkproc.c */ #include <stdio.h> /* * Standard Toolkit include files: */ #include <Xm/Xm.h> /* * Public include files for widgets used in this file. */ #include <Xm/PushB.h> #include <Xm/RowColumn.h> #include <Xm/MessageB.h> Widget getHelp; /* * popup dialog */ /*ARGSUSED*/ void PopupDialog(w, client_data, call_data) Widget w; XtPointer client_data; /* cast to topLevel */ XtPointer call_data; { Widget popup = (Widget) client_data; XtManageChild(popup); } /* * quit button callback function */ /*ARGSUSED*/ void Quit(w, client_data, call_data) Widget w; XtPointer client_data, call_data; { exit(0); } /* work procedure */ Boolean create_popup(client_data) XtPointer client_data; { Widget parent = (Widget) client_data; Widget helpBox; Widget temp; helpBox = XmCreateMessageDialog(parent, "message", NULL, 0); temp = XmMessageBoxGetChild (helpBox, XmDIALOG_CANCEL_BUTTON); XtUnmanageChild (temp); temp = XmMessageBoxGetChild (helpBox, XmDIALOG_HELP_BUTTON); XtUnmanageChild (temp); /* arrange for getHelp button to pop up helpBox */ XtAddCallback(getHelp, XmNactivateCallback, PopupDialog, helpBox); return(True); /* makes Xt remove this work proc automatically */ } main(argc, argv) int argc; char **argv; { XtAppContext app_context; Widget rowColumn, topLevel; Widget quit; XtSetLanguageProc(NULL, (XtLanguageProc)NULL, NULL); topLevel = XtVaAppInitialize( &app_context, /* Application context */ "XWorkproc", /* application class name */ NULL, 0, /* command line option list */ &argc, argv, /* command line args */ NULL, /* for missing app-defaults file */ NULL); /* terminate varargs list */ rowColumn = XtVaCreateManagedWidget( "rowColumn", /* widget name */ xmRowColumnWidgetClass, /* widget class */ topLevel, /* parent widget*/ NULL); /* terminate argument list*/ quit = XtVaCreateManagedWidget( "quit", /* widget name */ xmPushButtonWidgetClass,/* widget class */ rowColumn, /* parent widget*/ NULL); /* terminate argument list*/ getHelp = XtVaCreateManagedWidget( "getHelp", /* widget name */ xmPushButtonWidgetClass,/* widget class */ rowColumn, /* parent widget*/ NULL); /* terminate argument list*/ (void) XtAppAddWorkProc(app_context, create_popup, topLevel); XtAddCallback(quit, XmNactivateCallback, Quit, NULL); XtRealizeWidget(topLevel); XtAppMainLoop(app_context); }