/*
* 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);
}