|dialog||The child of the dialog shell of an automatic dia log box-i.e. the widget returned by a call to XmtBuildDialog() or XmtBuildQueryDialog().|
|address||The address of a data structure from which data is to be transferred to the dialog box, and in which the users input data will later be stored.|
address XmtDialogDo() does not modify this field, but when XmtDialogDoSync() returns True, the structure at this address will contain the users input values.
XmtDialogDoSync() returns True if the user popped the dialog down normally, and returns False if the user cancelled the dialog with a Cancel button.
XmtDialogDo() calls XmtDialogSetDialogValues() to transfer the data pointed to by address to the widgets in the dialog box dialog. Then it internally associates address with dialog for later use, pops up the dialog box by calling XtManageChild() on dialog, and returns.
XmtDialogDo() is designed to be used with a callback procedure that takes the opposite actions-pops the dialog box down, and transfers the users input values from the dialog widgets back into the specified data structure. You can write a callback that does this by using XmtDialogGetDataAddress() to look up the stored address for a dialog, and then using XmtDialogGetDialogValues() to transfer the dialog data to the structure. Xmt provides predefined callbacks that do just this-XmtDialogOkayCallback(), for example, is designed to be registered on the Okay button of a dialog box managed with XmtDialogDo().
XmtDialogDoSync() works like XmtDialogDo(), but is usually more convenient. Instead of returning after popping up the dialog box, it enters an internal event loop-so that it appears to block-until the user pops the dialog down.
Like XmtDialogDo(), XmtDialogDoSync() must be used in conjunction with special callback procedures. If the user clicks the Okay button or some other button that invokes XmtDialogOkayCallback(), then that callback will copy the users input to the structure at address, and will pop down the dialog box. It will also cause XmtDialogDoSync() to exit its event loop and return True. On the other hand, if the user selects the Cancel button, or some other button that invokes the XmtDialogCancelCallback(), then that callback will pop down the dialog without modifying data at address, and will cause XmtDialogDoSync() to exit its loop and return False. If you write your own dialog callback procedures, you can tell XmtDialogDoSync() to stop blocking and return a value by calling XmtDialogSetReturnValue().
XmtDialogDoSync() performs synchronous input, and to prevent its internal event loops from becoming nested arbitrarily deep, it should only be used with modal dialogs.
Chapter 29, Custom Dialogs and Automatic Dialog Management, XmtDialogCancelCallback(), XmtDialogGetDataAddress(), XmtDialogGetDefaultValues(), XmtDialogGetDialogValues(), XmtDialogOkayCallback(), XmtDialogSetDialogValues(), XmtDialogSetReturnValue().
|Xmt||XMTDIALOGDO (3)||Motif Tools|