* and the message to display.
*/
Widget
PostDialog(parent, dialog_type, msg)
Widget parent;
int dialog_type;
char *msg;
{
Widget dialog;
XmString text;
dialog = XmCreateMessageDialog (parent, "dialog", NULL, 0);
text = XmStringCreateLocalized (msg);
XtVaSetValues (dialog,
XmNdialogType, dialog_type,
XmNmessageString, text,
NULL);
XmStringFree (text);
XtManageChild (dialog);
XtPopup (XtParent (dialog), XtGrabNone);
return dialog;
}
This routine allows the programmer to specify several parameters: the parent widget, the type of dialog that is to be
used, and the message that is to be displayed. The function returns the new dialog widget, so that the calling routine
can modify it, unmanage it, or keep a handle to it. You may have additional requirements that this simplified example
does not satisfy. For instance, the routine does not allow you to specify callback functions for the buttons in the action
area and it does not handle the destruction of the widget when it is no longer needed. You could extend the routine to
handle these issues, or you could control them outside the context of the function. You may also want to extend the
routine so that it reuses the same dialog each time it is called and so that it allows you to disable the different action
area buttons. All of these issues are discussed again in Chapter 6, Selection Dialogs, and in Chapter 21, Advanced
Dialog Programming.
6.4 Dialog Resources
The following sections discuss resources that are specific to Motif dialogs. In most ...