Since the InformationDialog is a child of the MessageDialog, if the MessageDialog is destroyed, the
InformationDialog is also destroyed. Similarly, if the MessageDialog is unmapped, so is the InformationDialog. In
general, when you display an InformationDialog, you should remove it if the user unmanages, destroys, or otherwise
disables the dialog from which it was posted because if the help dialog remains posted, it could confuse the user. By
making the InformationDialog the child of the original dialog, you can let the parent−child interaction handle this
behavior.
22.1.1 Multi−level Help
Developing a help systen may involve providing multiple levels of help information. If the user has already posted an
InformationDialog, it is possible to display an additional dialog if the user requests help in the original dialog.
However, multiple help windows can confuse the user, so they should be avoided. A better solution is to display the
new help text in the same InformationDialog, so that all of the help information is displayed in the same place. the
source code shows new help_callback() and help_done() routines that implement this technique.
XmStringCreateLocalized() is only available in Motif 1.2; XmStringCreateSimple() is the
corresponding function in Motif 1.1. XmFONTLIST_DEFAULT_TAG replaces XmSTRING_DEFAULT_CHARSET in
Motif 1.2.
#define MAX_HELP_STAGES 3
char *help_text[3][5] = {
{
"You have reached the first stage of the help system.",
"If you need additional help, select the 'More Help' ...