共通デスクトップ環境 プログラマーズ・ガイド (ヘルプ・システム編)

ヘルプ・トピックの表示

ヘルプが要求されると、アプリケーションが表示するヘルプ・トピックを決定します。次にヘルプ・ダイアログを (必要であれば) 作成し、管理して、ヘルプ・トピックを表示するのに適切なリソースを設定します。

ほとんどの要求については、アプリケーションのヘルプ・ボリュームの一部であるヘルプ・トピックが表示されます。しかしヘルプ・システムのヘルプ・ダイアログは、マニュアル・ページ、テキスト・ファイル、単一テキスト文字列を表示することもできます。

ヘルプ・システムのヘルプ・ダイアログは Xt イントリンシクスと OSF/Motif プログラミングに明示的に基づいているので、他のウィジェットと同じように、リソースを設定することによりヘルプ・ダイアログ内で値を変更できます。

DtNhelpType リソースは、表示するべき情報の種類を決定します。次のいずれかの値が設定されます。

上記の値は Help.h ファイルで定義されています。

関連項目

ヘルプ・トピックを表示するには

  1. ヘルプ・ダイアログを作成します。

  2. 次のようなヘルプ・ダイアログのリソースを設定します。

    DtNhelpType

    DtHELP_TYPE_TOPIC を設定します。

    DtNhelpVolume

    アプリケーションのボリューム名を設定します。

    DtNlocationId

    表示するトピックの ID を設定します。

    サイズやタイトルなど、その他の値も設定できます。

  3. XtManageChild() を使用してダイアログを管理します。

次のプログラム・セグメントは、ID である getting-started が付いたトピックを、ボリューム MyVolume に表示します。

ac = 0;
XtSetArg (al[ac], DtNhelpType,   DtHELP_TYPE_TOPIC);  ac++;
 XtSetArg (al[ac], DtNhelpVolume,  "MyVolume");         ac++;
 XtSetArg (al[ac], DtNlocationId,  "getting-started");  ac++;
 XtSetArg (al[ac], DtNcolumns,    40);                  ac++;
 XtSetArg (al[ac], DtNrows,       12);                  ac++;
 XtSetValues (helpDialog, al, ac);
 XtManageChild (helpDialog);

ヘルプ・ボリューム MyVolume が登録されていない場合、DtNhelpVolume の値を指定するためには、MyVolume.sdl ファイルへの絶対パスが必要です。

テキスト文字列を表示するには

  1. 簡易ヘルプ・ダイアログを作成します。

    一般ヘルプ・ダイアログも使用できますが、このダイアログの機能は文字列データにほとんど適用されないので、使用しないようにしてください。

  2. 次のようなヘルプ・ダイアログのリソースを設定します。

    DtNhelpType

    DtHELP_TYPE_DYNAMIC_STRING (行の折り返しを使用する場合) または DtHELP_TYPE_STRING (改行を有効にしたい場合) を設定します。

    DtNstringData

    表示する文字列を設定します。文字列のコピーは内部的に保持されるので、保存する必要はありません。

    サイズやタイトルなど、その他の値も設定できます。

  3. XtManageChild() を使用してダイアログを管理します。

次のプログラム・セグメントは、変数 descriptionString に格納された文字列を表示します。

ac = 0;
 XtSetArg (al[ac], DtNhelpType,   DtHELP_TYPE_DYNAMIC_STRING); ac++;
 XtSetArg (al[ac], DtNstringData, (char *)descriptionString);   ac++;
 XtSetValues (quickHelpDialog, al, ac);
 XtManageChild (quickHelpDialog);

ヘルプ・ダイアログはデータのコピーを自身で作成するので、文字列が不要になった場合はメモリを解放できます。

XtFree (descriptionString);

テキスト・ファイルを表示するには

  1. 簡易ヘルプ・ダイアログを作成するか、ダイアログ・キャッシュの 1 つを取り出します。

    一般ヘルプ・ダイアログも使用できますが、このダイアログの機能のほとんどが標準ヘルプ・トピックについてのみ有効なので、使用しないようにしてください。

  2. 次のようなヘルプ・ダイアログのリソースを設定します。

    DtNhelpType

    DtHELP_TYPE_FILE を設定します。

    DtNhelpFile

    表示するファイル名を設定します。アプリケーションの現在のディレクトリにファイルがない場合は、ファイルへのパスを指定してください。

    サイズやタイトルなど、その他の値も設定できます。特に幅はテキスト・ファイルの標準である 80 に設定します。

  3. XtManageChild() を使用してダイアログを管理します。

次のプログラム・セグメントは、ファイル /tmp/printer.list を表示します。ダイアログのサイズもテキスト・ファイルにより適応するように設定します。

ac = 0;
 XtSetArg (al[ac], DtNhelpType, DtHELP_TYPE_FILE);      ac++;
 XtSetArg (al[ac], DtNhelpFile,  "/tmp/printer.list");  ac++;
 XtSetArg (al[ac], DtNcolumns,  80);                    ac++;
 XtSetArg (al[ac], DtNrows,     20);                    ac++;
 XtSetValues (quickHelpDialog, al, ac);
 XtManageChild (quickHelpDialog);

マニュアル・ページを表示するには

  1. 簡易ヘルプ・ダイアログを作成します。

    一般ヘルプ・ダイアログも使用できますが、このダイアログの機能のほとんどが標準ヘルプ・トピックについてのみ有効なので、使用しないようにしてください。

  2. 次のようなヘルプ・ダイアログのリソースを設定します。

    DtNhelpType

    DtHELP_TYPE_MAN_PAGE を設定します。

    DtNmanPage

    マニュアル・ページ名を設定します。このリソースの値は、システムの man コマンドへ直接渡されます。したがって特定のセクションを指定するときは、通常 man コマンドを入力するときのように、セクション番号の前にマニュアル・ページ名を付けてください。

    サイズやタイトルなど、その他の値も設定できます。

  3. XtManageChild() を使用してダイアログを管理します。

次のプログラム・セグメントは、grep コマンドのマニュアル・ページを表示します。ダイアログのサイズもマニュアル・ページに適応するように設定します。

ac = 0;
 XtSetArg (al[ac], DtNhelpType, DtHELP_TYPE_MAN_PAGE);  ac++;
 XtSetArg (al[ac], DtNmanPage,   "grep");                ac++;
 XtSetArg (al[ac], DtNcolumns,  80);                     ac++;
 XtSetArg (al[ac], DtNrows,     20);                     ac++;
 XtSetValues (quickHelpDialog, al, ac);
 XtManageChild (quickHelpDialog);