/* Written by Dan Heller and Paula Ferguson.
* Copyright 1994, O'Reilly & Associates, Inc.
* Permission to use, copy, and modify this program without
* restriction is hereby granted, as long as this copyright
* notice appears in each copy of the program source code.
* This program is freely distributable without licensing fees and
* is provided without guarantee or warrantee expressed or implied.
* This program is -not- in the public domain.
*/
/* dialog.c -- your typical Hello World program using
* an InformationDialog.
*/
#include <Xm/MessageB.h>
#include <Xm/PushB.h>
void
pushed(w, client_data, call_data)
Widget w;
XtPointer client_data;
XtPointer call_data;
{
Widget dialog;
extern void ok_pushed(), cancel_pushed(), help_pushed();
Arg args[5];
int n = 0;
XmString m = XmStringCreateLocalized ("This is a message.");
XmString t = XmStringCreateLocalized ("Message");
XtSetArg (args[n], XmNautoUnmanage, False); n++;
XtSetArg (args[n], XmNmessageString, m); n++;
XtSetArg (args[n], XmNdialogTitle, t); n++;
dialog = XmCreateMessageDialog (w, "notice", args, n);
XtAddCallback (dialog, XmNokCallback, ok_pushed, "Hi");
XtAddCallback (dialog, XmNcancelCallback, cancel_pushed, "Foo");
XtAddCallback (dialog, XmNhelpCallback, help_pushed, NULL);
XmStringFree (m);
XmStringFree (t);
XtManageChild (dialog);
XtPopup (XtParent (dialog), XtGrabNone);
}
main(argc, argv)
int argc;
char *argv[];
{
XtAppContext app;
Widget toplevel, pb;
XtSetLanguageProc (NULL, NULL, NULL);
toplevel = XtVaAppInitialize (&app, "Demos", NULL, 0,
&argc, argv, NULL, NULL);
pb = XtVaCreateManagedWidget ("Button",
xmPushButtonWidgetClass, toplevel, NULL);
XtAddCallback (pb, XmNactivateCallback, pushed, NULL);
XtRealizeWidget (toplevel);
XtAppMainLoop (app);
}
/* ok_pushed() --the OK button was selected. */
void
ok_pushed(widget, client_data, call_data)
Widget widget;
XtPointer client_data;
XtPointer call_data;
{
char *message = (char *) client_data;
printf ("OK was selected: %s\n", message);
XtDestroyWidget (widget);
}
/* cancel_pushed() --the Cancel button was selected. */
void
cancel_pushed(widget, client_data, call_data)
Widget widget;
XtPointer client_data;
XtPointer call_data;
{
char *message = (char *) client_data;
printf ("Cancel was selected: %s\n", message);
XtDestroyWidget (widget);
}
/* help_pushed() --the Help button was selected. */
void
help_pushed(widget, client_data, call_data)
Widget widget;
XtPointer client_data;
XtPointer call_data;
{
printf ("Help was selected\n");
}