The following program segment is part of a HelpRequestCB() function. Presumably, the USING_HELP constant is passed to the function because the user chose Using Help from the application's Help menu or chose the Help button in a quick help dialog.
This example assumes that the application never creates more than one Help On Help dialog and maintains its widget ID in a variable called onHelpDialog.
case USING_HELP: if (onHelpDialog == (Widget)NULL) { /* Get a quick help dialog for use as the ` help on help' dialog. */ onHelpDialog = FetchHelpDialog (True); if (onHelpDialog == (Widget)NULL) /* We didn't get a dialog! Add your error handling code here. */ } /* Set the proper volume and ID to display the home topic of the help on help volume. Also, set the dialog's title. */ ac = 0; XtSetArg (al[ac], XmNtitle, "Help On Help"); ac++; XtSetArg (al[ac], XmNhelpType, DT_HELP_TYPE_TOPIC); ac++; XtSetArg (al[ac], XmNhelpVolume, "Help4Help"); ac++; XtSetArg (al[ac], XmNlocationId, "_hometopic"); ac++; XtSetValues (onHelpDialog, al, ac); /* If the ` help on help' dialog is already managed, it might be in another workspace, so unmanage it. */ if (XtIsManaged (onHelpDialog)) XtUnmanageChild (onHelpDialog); /* Manage the ` help on help' dialog. */ XtManageChild (onHelpDialog); break;
To see how the rest of the HelpRequestCB() function might be structured, refer to the example in "To Add a Help Callback".