DtHelpDialog(3) — Subroutines
CDE
NAME
DtHelpDialog − DtHelpDialog widget class
SYNOPSIS
#include <Dt/HelpDialog.h>
DESCRIPTION
The DtHelpDialog widget provides users with functionality for viewing and navigating structured online information (CDE help volumes). This functionality includes text and graphics rendering, embedded hypertext links and various navigation methods to move through online help information. The widget supports rendering of CDE help volumes, system manual pages, text files and character string values.
When the user resizes the window, the DtHelpDialog widget dynamically reformats its contents to fit the new window size if the DtNhelpType of the contents is DtHELP_TYPE_TOPIC or DtHELP_TYPE_DYNAMIC_STRING. If the DtNhelpType of the contents is DtHELP_TYPE_STRING, DtHELP_TYPE_MAN_PAGE or DtHELP_TYPE_FILE, the contents are not reformatted. Instead, scroll bars may appear when the user resizes the window smaller than the help contents. The exact scrollbar behavior is controlled by the DtNscrollBarPolicy resource.
Users can re-specify certain resources for the automatically created widgets and gadgets contained within the DtHelpDialog widget hierarchy. The following list identifies the names of these widgets (or gadgets):
Topic Tree − TocArea
Display Area − DisplayArea
Button Box − BtnBox
The DtHelpDialog widget honors all default and user-specified resource settings, with one exception. In the case where an error occurs due to an invalid request, the DtHelpDialog widget posts the proper error message in its display area and modifies the DtNhelpType resource to reflect the current contents of the display area (that is, a string message). Applications and users should set the DtNhelpType resource to the appropriate value with each setting of the DtHelpDialog widget.
Classes
The DtHelpDialog widget inherits behavior and resources from the Core, Composite, Constraint, XmManager and XmBulletinBoard classes.
The class pointer is dtHelpDialogClass.
The class name is DtHelpDialog.
New Resources
To reference a resource by name or by class in a .Xdefaults file, the application must remove the DtN or DtC prefix and use the remaining letters. To specify one of the defined values for a resource in a .Xdefaults file, the application must remove the Dt prefix and use the remaining letters (in either lower case or upper case, but including any underscores between words). The codes in the access column indicate if the given resource can be set at creation time (C), set by using XtSetValues (S), retrieved by using XtGetValues (G), or is not applicable (N/A).
| Name | Class | Type | Default | Access |
| DtNcloseCallback | DtCCloseCallback | XtCallbackList | NULL | C |
| DtNcolumns | DtCColumns | Dimension | 70 | CSG |
| DtNexecutionPolicy | DtCExecutionPolicy | unsigned char | DtHELP_- | CSG |
| EXECUTE- | ||||
| _QUERY- | ||||
| _UNALIASED | ||||
| DtNhelpFile | DtCHelpFile | char ∗ | NULL | CSG |
| DtNhelpOnHelpVolume | DtCHelpOnHelpVolume | char ∗ | See Definition | C |
| DtNhelpPrint | DtCHelpPrint | char ∗ | See Definition | CSG |
| DtNhelpType | DtCHelpType | unsigned char | See Definition | CSG |
| DtNhelpVolume | DtCHelpVolume | char ∗ | NULL | CSG |
| DtNhyperLinkCallback | DtCHyperLinkCallback | XtCallbackList | NULL | C |
| DtNlocationId | DtCLocationId | char ∗ | See Definition | CSG |
| DtNmanPage | DtCManPage | char ∗ | NULL | CSG |
| DtNpaperSize | DtCPaperSize | unsigned char | See Definition | C |
| DtNprinter | DtCPrinter | char ∗ | NULL | CSG |
| DtNrows | DtCRows | Dimension | 25 | CSG |
| DtNscrollBarPolicy | DtCScrollBarPolicy | unsigned char | See Definition | C |
| DtNstringData | DtCStringData | char ∗ | NULL | CSG |
| DtNtopicTitle | DtCTopicTitle | char ∗ | NULL | CSG |
| DtNvisiblePathCount | DtCVisiblePathCount | int | 7 | C |
DtNcloseCallback
Specifies the list of callbacks called when the user activates the Close button. The callback reason is DtCR_HELP_CLOSE.
DtNcolumns
Specifies the number of columns of text to display in the display area of the DtHelpDialog widget.
DtNexecutionPolicy
Specifies how to handle “Execute” hypertext link types and embedded scripts. The default value is set to DtHELP_EXECUTE_QUERY_UNALIASED and supports different semantics based on the usage of a command alias. Refer to the CDE Help System Author’s and Programmer’s Guide for more information on command alias usage. With the default value and no command alias, a query dialog will be posted upon user selection of an execute hypertext link. The dialog will show the command that has been specified and give the user the option to “Execute Anyway,” “Don’t Execute” or request help for more information. When a command alias is present for the selected link, the command will execute silently, and no query dialog will be posted.
Other values for this resource are DtHELP_EXECUTE_NONE, DtHELP_EXECUTE_ALL and DtHELP_EXECUTE_QUERY_ALL. DtHELP_EXECUTE_NONE forces all execute hypertext links to be ignored. DtHELP_EXECUTE_ALL allows all execute hypertext links to be executed silently upon link selection by the user, and DtHELP_EXECUTE_QUERY_ALL forces the query dialog to be posted with every link invocation.
DtNhelpFile
Specifies the absolute pathname of a text file to be read and displayed. This resource is used when the DtNhelpType is set to DtHELP_TYPE_FILE.
DtNhelpOnHelpVolume
Specifies the help volume that contains the help topics for the help user-interface components in the widget. This is displayed in an instance of the DtHelpDialog widget when the user requests help from within the widget. The default value for this resource is Help4Help, which refers to the default-supported help volume. This resource supports absolute pathnames and pathless help volume names. When just a volume name is used, the volume must be placed or linked to one of the default search locations, or one of the two help search path environment variables must be properly set. See the "ENVIRONMENT VARIABLES" section for more information on setting and modifying these variables.
DtNhelpPrint
Specifies the location of the dthelpprint(1) utility used to print help topics, manual-page files or help messages from the DtHelpDialog widget. This value defaults to /usr/dt/bin/dthelpprint.
DtNhelpType
Specifies the current topic type. When the value is DtHELP_TYPE_TOPIC, the DtNlocationId and DtNhelpVolume resources are used and the requested help topic is displayed. When the value is DtHELP_TYPE_STRING or DtHELP_TYPE_DYNAMIC_STRING, the DtNstringData resource is used and the requested string is displayed. When the value is DtHELP_TYPE_FILE, the DtNhelpFile resource is used and the requested text file is displayed. When the value is DtHELP_TYPE_MAN_PAGE, the DtNmanPage resource is used and the requested system manual page is displayed. The initial default value is DtHELP_TYPE_TOPIC; however, each time there is a request to display a help topic, text file, manual page or text string, the user should reset DtNhelpType to the proper type.
DtNhelpVolume
Specifies the help volume to use. This resource is used in conjunction with the DtNlocationId resource to display help topics. This resource supports absolute pathnames and pathless help volume names. When using just a volume name, the volume must be placed in or linked to one of the default search locations, or one of the two help search path environment variables must be properly set. See the "ENVIRONMENT VARIABLES" section for more information on setting and modifying these variables.
DtNhyperLinkCallback
Specifies the callback that is called when a client-specific hypertext link is activated in the display area of the DtHelpDialog widget. Links are activated when the user presses mouse button 1 over a hypertext link, or presses return with the keyboard focus on the hypertext link item. The callback reason is DtCR_HELP_LINK_ACTIVATE. DtNhyperLinkCallback allows applications to register a callback procedure that is used to process one of four hypertext link types: DtHELP_LINK_APP_DEFINE, DtHELP_LINK_TOPIC, DtHELP_LINK_MAN_PAGE or DtHELP_LINK_TEXT_FILE. For DtHELP_LINK_TOPIC, the callback is made only when the windowHint value in the callback structure is DtHELP_NEW_WINDOW.
DtNlocationId
Specifies a help topic to display. Applications reference topics within a help volume using a location ID. Location IDs are author-defined at help volume creation time. Applications use these location IDs to display the desired help topic. The default value for this resource is _HOMETOPIC, which refers to the help volume’s top level topic. DtNhelpVolume must be set to the help volume in which the corresponding location ID resides, and DtNhelpType must be set to DtHELP_TYPE_TOPIC.
DtNmanPage
Specifies the system manual page to display in the current DtHelpDialog widget. This resource is used when the DtNhelpType is set to DtHELP_TYPE_MAN_PAGE.
DtNpaperSize
Controls the value used in the Help-Print dialog for paper size. The default value is set to DtHELP_PAPERSIZE_LETTER. Other supported values for this resource are: DtHELP_PAPERSIZE_LEGAL, DtHELP_PAPERSIZE_EXECUTIVE, DtHELP_PAPERSIZE_A4, DtHELP_PAPERSIZE_B5.
DtNprinter
Specifies the printer name to be used when printing within the DtHelpDialog widget. If the value is NULL, the default value is taken from the LPDEST environment variable.
DtNrows
Specifies the number of rows of text to display in the display area of the DtHelpDialog widget.
DtNscrollBarPolicy
Controls the automatic placement of scroll bars in the text display area. If it is set to DtHELP_AS_NEEDED_SCROLLBARS, the scroll bars are displayed only if the display area exceeds the clip area in one or both dimensions. A resource value of DtHELP_STATIC_SCROLLBARS causes the display area to display the scroll bars whenever the DtHelpDialog widget is managed, regardless of the relationship between the clip window and the display area. A value of DtHELP_NO_SCROLLBARS removes scroll bars from the DtHelpDialog widget. The default value is DtHELP_AS_NEEDED_SCROLLBARS.
DtNstringData
Specifies the string data (char∗ to display in the current DtHelpDialog widget. This resource is used when the DtNhelpType is set to DtHELP_TYPE_STRING.
DtNtopicTitle
Specifies the topic title (char∗ to be used in conjunction with either the DtNstringData or DtNhelpFile resource. The topic title is required in order to maintain an accurate and descriptive history list. The topic title is also used as the default heading for the banner page and page header when printing. When printing help topics, this resource may be ignored.
DtNvisiblePathCount
Specifies the number of items to display in the topic tree area of the widget.
Inherited Resources
The DtHelpDialog widget inherits behavior and resources from the following named superclasses. For a complete description of each resource, see the man page for that superclass.
XmBulletinBoard Resource Set:
| Name | Class | Type | Default | Access |
| XmNallowOverlap | XmCAllowOverlap | Boolean | True | CSG |
| XmNautoUnmanage | XmCAutoUnmanage | Boolean | True | CG |
| XmNbuttonFontList | XmCButtonFontList | XmFontList | dynamic | CSG |
| XmNcancelButton | XmCWidget | Widget | dynamic | SG |
| XmNdefaultButton | XmCWidget | Widget | dynamic | SG |
| XmNdefaultPosition | XmCDefaultPosition | Boolean | True | CSG |
| XmNdialogStyle | XmCDialogStyle | unsigned char | dynamic | CSG |
| XmNdialogTitle | XmCDialogTitle | XmString | NULL | CSG |
| XmNfocusCallback | XmCCallback | XtCallbackList | NULL | C |
| XmNlabelFontList | XmCLabelFontList | XmFontList | dynamic | CSG |
| XmNmapCallback | XmCCallback | XtCallbackList | NULL | C |
| XmNmarginHeight | XmCMarginHeight | Dimension | 10 | CSG |
| XmNmarginWidth | XmCMarginWidth | Dimension | 10 | CSG |
| XmNnoResize | XmCNoResize | Boolean | False | CSG |
| XmNresizePolicy | XmCResizePolicy | unsigned char | XmRESIZE_ANY | CSG |
| XmNshadowType | XmCShadowType | unsigned char | XmSHADOW_OUT | CSG |
| XmNtextFontList | XmCTextFontList | XmFontList | dynamic | CSG |
| XmNtextTranslations | XmCTranslations | XtTranslations | NULL | C |
| XmNunmapCallback | XmCCallback | XtCallbackList | NULL | C |
XmManager Resource Set:
| Name | Class | Type | Default | Access |
| XmNbottom- | XmCBottom- | Pixel | dynamic | CSG |
| ShadowColor | ShadowColor | |||
| XmNbottom- | XmCBottom- | Pixmap | XmUNSPECIFIED- | CSG |
| ShadowPixmap | ShadowPixmap | _PIXMAP | ||
| XmNforeground | XmCForeground | Pixel | dynamic | CSG |
| XmNhelpCallback | XmCCallback | XtCallbackList | NULL | C |
| XmNhighlightColor | XmCHighlightColor | Pixel | dynamic | CSG |
| XmNhighlightPixmap | XmCHighlightPixmap | Pixmap | dynamic | CSG |
| XmNinitialFocus | XmCInitialFocus | Widget | dynamic | CSG |
| XmNnavigationType | XmCNavigationType | XmNavigation- | XmTAB_GROUP | CSG |
| Type | ||||
| XmNshadowThickness | XmCShadowThickness | Dimension | dynamic | CSG |
| XmNstringDirection | XmCStringDirection | XmString- | dynamic | CG |
| Direction | ||||
| XmNtopShadowColor | XmCTopShadowColor | Pixel | dynamic | CSG |
| XmNtopShadowPixmap | XmCTopShadowPixmap | Pixmap | dynamic | CSG |
| XmNtraversalOn | XmCTraversalOn | Boolean | True | CSG |
| XmNunitType | XmCUnitType | unsigned char | dynamic | CSG |
| XmNuserData | XmCUserData | XtPointer | NULL | CSG |
Composite Resource Set:
| Name | Class | Type | Default | Access |
| XmNchildren | XmCReadOnly | WidgetList | NULL | G |
| XmNinsertPosition | XmCInsertPosition | XtOrderProc | NULL | CSG |
| XmNnumChildren | XmCReadOnly | Cardinal | 0 | G |
Core Resource Set:
| Name | Class | Type | Default | Access |
| XmNaccelerators | XmCAccelerators | XtAccelerators | dynamic | N/A |
| XmNancestorSensitive | XmCSensitive | Boolean | dynamic | G |
| XmNbackground | XmCBackground | Pixel | dynamic | CSG |
| XmNbackgroundPixmap | XmCPixmap | Pixmap | XmUNSPECIFIED- | CSG |
| _PIXMAP | ||||
| XmNborderColor | XmCBorderColor | Pixel | XtDefaultForeground | CSG |
| XmNborderPixmap | XmCPixmap | Pixmap | XmUNSPECIFIED- | CSG |
| _PIXMAP | ||||
| XmNborderWidth | XmCBorderWidth | Dimension | 0 | CSG |
| XmNcolormap | XmCColormap | Colormap | dynamic | CG |
| XmNdepth | XmCDepth | int | dynamic | CG |
| XmNdestroyCallback | XmCCallback | XtCallbackList | NULL | C |
| XmNheight | XmCHeight | Dimension | dynamic | CSG |
| XmNinitialResources- | XmCInitialResources- | Boolean | True | C |
| Persistent | Persistent | |||
| XmNmappedWhen- | XmCMappedWhen- | Boolean | True | CSG |
| Managed | Managed | |||
| XmNscreen | XmCScreen | Screen ∗ | dynamic | CG |
| XmNsensitive | XmCSensitive | Boolean | True | CSG |
| XmNtranslations | XmCTranslations | XtTranslations | dynamic | CSG |
| XmNwidth | XmCWidth | Dimension | dynamic | CSG |
| XmNx | XmCPosition | Position | 0 | CSG |
| XmNy | XmCPosition | Position | 0 | CSG |
Callback Information
A pointer to the following structure is passed to each callback:
typedef struct {
intreason;
XEvent∗event;
char∗locationId;
char∗helpVolume;
char∗specification;
inthyperType;
intwindowHint;
} DtHelpDialogCallbackStruct;
The reason argument indicates why the callback was invoked.
The event argument points to the XEvent that triggered the callback.
The locationId argument indicates the DtNlocationId for the current topic. This value is NULL whenever the hyperType value is not DtHELP_LINK_TOPIC or DtHELP_LINK_APP_DEFINE.
The helpVolume argument indicates the current help volume. This value is NULL whenever the hyperType value is not DtHELP_LINK_TOPIC or DtHELP_LINK_APP_DEFINE.
The specification argument indicates any author-defined data that was contained within the hypertext link selected. This value returns NULL if no author-defined data was given. For hyperlinks of type DtHELP_MAN_PAGE, the specification argument contains the name of the manual page. For hyperlinks of type DtHELP_LINK_TEXT_FILE, the specification argument contains that name of the file.
The hyperType argument indicates the hypertext link type. Possible values are: DtHELP_LINK_TOPIC, DtHELP_LINK_MAN_PAGE, DtHELP_LINK_APP_DEFINE or DtHELP_LINK_TEXT_FILE.
The windowHint argument indicates a hint for the type of window (quick help, existing or new window) to use. This value contains one of the following three types: DtHELP_POPUP_WINDOW, DtHELP_CURRENT_WINDOW or DtHELP_NEW_WINDOW.
Additional Behavior
The DtHelpDialog widget has the additional behavior described below:
<MAny> <KCancel>
Calls the active callbacks for the Close button. If a <BDrag> for either a selection or scrollbar movement is in process, the <KCancel> aborts that action.
<KSpace>, <KActivate> or <BSelect> in Topic Tree Text
Opens the help topic currently selected, displays that topic in the display area and updates the topic tree to match the newly displayed topic.
<KSpace>, <KActivate> or <BSelect> in Display Area Text
Invokes the hypertext link that contains the current selection.
<DoubleClick> in Topic Tree or Display Area Text
Ignored.
<BDrag> in Topic Tree or Display Area Text
Selects the text from the drag start point to the drag end point. Moving and holding the <BDrag> outside the topic tree or display area scrolls the window, selecting the newly exposed text.
<MCtrl> or <MShift> <BSelect> in Topic Tree Text
<MCtrl> <KSpace> in Topic Tree Text
<MCtrl> <KActivate> in Topic Tree Text
Invokes the DtNhyperLinkCallback for the DtHelpDialog widget, setting the helpType to DtHELP_LINK_TOPIC, the windowHint to DtHELP_NEW_WINDOW, the helpVolume to the current volume name and the locationId to the selected item’s location ID. If no DtNhyperLinkCallback is supplied, the action is ignored.
<MCtrl> or <MShift> <BSelect> in Display Area Hypertext Link Text
Invokes the DtNhyperLinkCallback for the DtHelpDialog widget, honoring all existing link settings, but forces the windowHint to DtHELP_NEW_WINDOW. If no DtNhyperLinkCallback is supplied, the hypertext link is handled internally.
<KSelectAll> in Display Area or Topic Tree
Selects all text within the topic tree area or display area.
<KDeSelectAll> in Display Area or Topic Tree
Deselects all text within the topic tree area or display area.
<KUp> or <KLeft> in Display Area or Topic Tree
Moves the traversal highlight up or left to the next hypertext link item.
<KDown> or <KRight> in Display Area or Topic Tree
Moves the traversal highlight down or right to the next hypertext item.
<KCopy> in the Display Area or Topic Tree
Copies the currently selected text to the clipboard.
<KPageDown> or <MCtrl> <KDown> in Display Area or Topic Tree
Displays the next page of text.
<KPageLeft> or <MCtrl> <KLeft> in Display Area or Topic Tree
Scrolls the information to the left.
<KPageRight> or <MCtrl> <KRight> in Display Area or Topic Tree
Scrolls the information to the right.
<KPageUp> or <MCtrl> <KUp> in Display Area or Topic Tree
Displays the previous page of information.
<KBeginData> in the Display Area or Topic Tree
Displays the first page of information.
<KEndData> in the Display Area or Topic Tree
Displays the last page of information.
The following operations are supported, but the key bindings are implementation-dependent:
implementation-dependent
Moves the traversal highlight up, down, left or right to the next hypertext link item.
Virtual Bindings
The bindings for virtual keys are implementation-dependent. For information about bindings for virtual buttons and keys, see VirtualBindings(3X).
ENVIRONMENT VARIABLES
The DtHelpDialog widget uses two environment variables for locating help volumes within the desktop environment:
DTHELPSEARCHPATH
The system search path environment variable for locating help volumes on local and remote NFS mounted systems.
DTHELPUSERSEARCHPATH
The search path environment variable for locating user-specific help volumes on local and remote NFS mounted systems.
The environment variables contain colon-separated lists of directory paths. Each directory path can contain both environment variable names as well as special field descriptors that are expanded at runtime.
Field descriptors consist of a percent-sign character (%) followed by a single character. Field descriptors and their substitution values are:
%HReplaced with the current volume name being searched for.
%LReplaced with the current value of the LANG environment variable.
%%Replaced with a single %.
The default value for DTHELPUSERSEARCHPATH is:
$HOME/.dt/help/$DTUSERSESSION/%H:
$HOME/.dt/help/$DTUSERSESSION/%H.sdl:
$HOME/.dt/help/$DTUSERSESSION/%H.hv:
$HOME/.dt/help/%H:
$HOME/.dt/help/%H.sdl:
$HOME/.dt/help/%H.hv
The DTHELPUSERSEARCHPATH is first searched for the requested volume. If the volume is not found, the DTHELPSEARCHPATH value is searched.
The default value for DTHELPSEARCHPATH path is:
/etc/dt/appconfig/help/%L/%H:
/etc/dt/appconfig/help/%L/%H.sdl:
/etc/dt/appconfig/help/%L/%H.hv:
/etc/dt/appconfig/help/C/%H:
/etc/dt/appconfig/help/C/%H.sdl:
/etc/dt/appconfig/help/C/%H.hv:
/usr/dt/appconfig/help/%L/%H:
/usr/dt/appconfig/help/%L/%H.sdl:
/usr/dt/appconfig/help/%L/%H.hv:
/usr/dt/appconfig/help/C/%H:
/usr/dt/appconfig/help/C/%H.sdl:
/usr/dt/appconfig/help/C/%H.hv
APPLICATION USAGE
The following messages can be generated as a result of an error or improperly set resource value in the DtHelpDialog widget. These messages are displayed in the widget’s display area as well as standard error.
Error Messages
String data could not be formatted.
The error occurred when formatting help information of type DtHELP_TYPE_STRING.
Dynamic string data could not be formatted.
The error occurred when formatting help information of type DtHELP_TYPE_DYNAMIC_STRING.
Man Page could not be formatted. The requested man page
is either not present, or corrupt.
The error occurred when formatting help information of type DtHELP_TYPE_MAN_PAGE.
Text file could not be formatted. The requested text file
is either not present, or corrupt.
The error occurred when formatting help information of type DtHELP_TYPE_FILE.
Non-supported DtNhelpType value used.
The application used a non-supported DtNhelpType.
Help topic could not be formatted.
The application attempted to access a corrupt runtime help file.
No DtNhyperLinkCallback supplied for widget.
A hypertext link of type DtHELP_NEW_WINDOW has been selected, but the application has not supplied a hypertext callback to handle it. The link is handled like a DtHELP_CURRENT_WINDOW jump.
Nonexistent DtNlocationId.
The requested DtNlocationId is not present in the current help volume.
No DtNhyperLinkCallback supplied for widget.
A hypertext link of type DtHELP_LINK_APP_DEFINE or DtHELP_LINK_MAN_PAGE is selected, but the application has not supplied a hypertext callback to handle these link types.
Could not find DtNhelpVolume.
The Help System is unable to find the help volume requested.
Could not open DtNhelpVolume.
The Help System found the requested help volume, but does not have the permission to open it.
SEE ALSO
Dt/HelpQuickD.h5, Dt/Help.h5, DtCreateHelpQuickDialog(3), DtHelpSetCatalogName(3); XmManager(3X), XmBulletinBoard(3X), Core(3X), Composite(3X), Constraint(3X), dthelptagdtd(4). XmManager and XmBulletinBoard in the X/Open CAE Specification, X/Open Motif Toolkit API.