ch08.sgm 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254
  1. <!-- $XConsortium: ch08.sgm /main/12 1996/09/08 19:40:25 rws $ -->
  2. <!-- (c) Copyright 1995 Digital Equipment Corporation. -->
  3. <!-- (c) Copyright 1995 Hewlett-Packard Company. -->
  4. <!-- (c) Copyright 1995 International Business Machines Corp. -->
  5. <!-- (c) Copyright 1995 Sun Microsystems, Inc. -->
  6. <!-- (c) Copyright 1995 Novell, Inc. -->
  7. <!-- (c) Copyright 1995 FUJITSU LIMITED. -->
  8. <!-- (c) Copyright 1995 Hitachi. -->
  9. <chapter id="HRDC.CrDia.div.1">
  10. <title id="HRDC.CrDia.mkr.1">ヘルプ・ダイアログ・ボックスの作成と管理</title>
  11. <para>この章では、ヘルプ・ダイアログ・ウィジェットとその作成方法を説明します。
  12. </para>
  13. <informaltable id="HRDC.CrDia.itbl.1" frame="All">
  14. <tgroup cols="1">
  15. <colspec colname="1" colwidth="4.0 in">
  16. <tbody>
  17. <row rowsep="1">
  18. <entry><para><!--Original XRef content: 'Help Dialog Boxes207'--><xref role="JumpText"
  19. linkend="HRDC.CrDia.mkr.2"></para></entry></row>
  20. <row rowsep="1">
  21. <entry><para><!--Original XRef content: 'General Help Dialog208'--><xref role="JumpText"
  22. linkend="HRDC.CrDia.mkr.3"></para></entry></row>
  23. <row rowsep="1">
  24. <entry><para><!--Original XRef content: 'To Create a General Help Dialog209'--><xref
  25. role="JumpText" linkend="HRDC.CrDia.mkr.5"></para></entry></row>
  26. <row rowsep="1">
  27. <entry><para><!--Original XRef content: 'Quick Help Dialog211'--><xref role="JumpText"
  28. linkend="HRDC.CrDia.mkr.6"></para></entry></row>
  29. <row rowsep="1">
  30. <entry><para><!--Original XRef content: 'To Create a Quick Help Dialog211'--><xref
  31. role="JumpText" linkend="HRDC.CrDia.mkr.7"></para></entry></row>
  32. <row rowsep="1">
  33. <entry><para><!--Original XRef content: 'Summary of Application Program Interface214'--><xref
  34. role="JumpText" linkend="HRDC.CrDia.mkr.8"></para></entry></row></tbody></tgroup>
  35. </informaltable>
  36. <sect1 id="HRDC.CrDia.div.2">
  37. <title id="HRDC.CrDia.mkr.2">ヘルプ・ダイアログ・ボックス</title>
  38. <indexterm><primary>作成</primary><secondary>ヘルプ・ダイアログ・ボックス</secondary>
  39. </indexterm><indexterm><primary>ヘルプ・ダイアログ・ボックスの管理</primary></indexterm><indexterm><primary>ダイアログ・ボックス</primary><secondary>作成と管理</secondary></indexterm><indexterm><primary>ダイアログ・ボックス</primary><secondary>簡易ヘルプ</secondary></indexterm><indexterm><primary>ダイアログ・ボックス</primary>
  40. <secondary>一般ヘルプ</secondary></indexterm><indexterm><primary>一般ヘルプ・ダイアログ・ボックス</primary><secondary>機能</secondary></indexterm>
  41. <para>ヘルプ・システムは、アプリケーション・プログラマに対して、ヘルプ・ダイアログ・ボックスをすべての Motif アプリケーションに追加するプログラミング・ライブラリを提供します。ライブラリは、2種類のダイアログ・ボックスを提供します。
  42. </para>
  43. <itemizedlist remap="Bullet1"><listitem><para><emphasis>一般ヘルプ・ダイアログ</emphasis> には、メニューバー、トピック・ツリー、ヘルプ・トピック表示領域があります。トピック・ツリーには、ヘルプ・ボリュームのトピックとサブトピックが表示されます。ユーザは、表示するトピックを選択したり、使用可能なトピックをブラウズしたり、トピックがヘルプ・ボリュームのどこにあるかをみつけるために、トピック・ツリーを使用します。
  44. </para>
  45. </listitem><listitem><para><emphasis>簡易ヘルプ・ダイアログ</emphasis> には、トピック表示領域と、下部にひとつ以上のダイアログ・ボタンがあります。
  46. </para>
  47. </listitem></itemizedlist>
  48. <sect2 id="HRDC.CrDia.div.3">
  49. <title>標準の Xt パラダイム<indexterm><primary>ウィジェット・クラス</primary>
  50. </indexterm><indexterm><primary>クラス、ダイアログ・ウィジェット</primary></indexterm></title>
  51. <para><indexterm><primary>ウィジェット・リソース</primary></indexterm><indexterm>
  52. <primary>リソース</primary><secondary>ヘルプ・ダイアログ・ボックス</secondary></indexterm>
  53. プログラミングの観点からみると、ユーザは、アプリケーション内の他の Motif ウィジェットと対話するのと同じようにヘルプ・ダイアログと対話します。2種類のヘルプ・ダイアログ・ボックスは、2つの新しいウィジェット・クラス(<classname>DtHelpDialog</classname> と <classname>DtHelpQuickDialog</classname>)として定義されます。
  54. </para>
  55. <para>ボリューム名、トピックIDなどのヘルプ・ウィンドウの属性のほとんどは、ウィジェット・リソースとして処理されます。たとえば、新しいトピックを表示するには、<systemitem class="resource">DtNhelpVolume</systemitem>、<systemitem class="resource">DtNlocationId</systemitem>、および <systemitem class="resource">DtNhelpType</systemitem> の各リソースを設定するために <function>XtSetValues()</function> の呼び出しを実行するだけです。詳細については、<!--Original XRef content: '&ldquo;Displaying Help Topics&rdquo; on page&numsp;216'--><xref role="SecTitleAndPageNum" linkend="HRDC.HReq.mkr.3"> を参照してください。
  56. </para>
  57. <note>
  58. <para>ヘルプ・システムをアプリケーションに統合するには、Cプログラミング言語、Motif プログラマーズ・ツールキット、Xt イントリンシクス・ツールキットに関する実用的な知識が必要です。
  59. </para>
  60. </note>
  61. </sect2>
  62. </sect1>
  63. <sect1 id="HRDC.CrDia.div.4">
  64. <title id="HRDC.CrDia.mkr.3">一般ヘルプ・ダイアログ</title>
  65. <para>一般ヘルプ・ダイアログには、トピック・ツリーとトピック表示領域の2つの表示領域があります。トピック・ツリーは、スクロール可能なヘルプ・トピックのリストを提供しています。常にホーム・トピックのタイトルが1番目の項目になります。ユーザがタイトルを選択すると、そのタイトルに矢印 (→) が付き、そのヘルプ情報がトピック表示領域に表示されます。
  66. <!--Original XRef content: 'Figure&numsp;9&hyphen;1 on page&numsp;209'--><xref role="CodeOrFigOrTabAndPNum" linkend="hrdc.crdia.mkr.4"> に、一般ヘルプ・ウィンドウのトピック・ツリーとトピック表示領域を示します。現在のトピック「パレットを選択するには」が表示されています。
  67. </para>
  68. <para>一般ヘルプ・ダイアログには、[前のトピックへ]、[ヒストリ]、[索引] の3つのダイアログ・ボタンがあります。これらのコマンドは、ヘルプ・メニューでも使用できます。ヘルプ・ダイアログとグラフィカル・ユーザ・インタフェースの概要については、
  69. <!--Original XRef content: '&ldquo;Help User Interface&rdquo; on page&numsp;5'--><xref role="SecTitleAndPageNum" linkend="HRDC.Intro.mkr.7"> を参照してください。
  70. </para>
  71. <para><indexterm><primary>一般ヘルプ・ダイアログ・ボックス</primary><secondary>機能</secondary></indexterm><indexterm><primary>一般ヘルプ・ダイアログ・ボックス</primary><secondary>ダイアログ・ボタン</secondary></indexterm><indexterm><primary>ダイアログ・ボックス</primary><secondary>一般ヘルプ</secondary></indexterm></para>
  72. <figure>
  73. <title id="HRDC.CrDia.mkr.4">一般ヘルプ・ダイアログ</title>
  74. <graphic id="HRDC.CrDia.grph.1" entityref="HRDC.CrDia.fig.1"></graphic>
  75. </figure>
  76. <sect2 id="HRDC.CrDia.div.5" role="Procedure">
  77. <title id="HRDC.CrDia.mkr.5">一般ヘルプ・ダイアログを作成するには
  78. <indexterm><primary>作成</primary><secondary>一般ヘルプ・ダイアログ・ボックス</secondary></indexterm><indexterm>
  79. <primary>一般ヘルプ・ダイアログ・ボックス</primary><secondary>作成</secondary></indexterm><indexterm><primary>ダイアログ・ボックス</primary><secondary>一般ヘルプの作成</secondary></indexterm></title>
  80. <orderedlist><listitem><para>適切なヘッダ・ファイルを指定します。
  81. </para>
  82. <programlisting>#include &lt;Help.h>
  83. #include &lt;HelpDialog.h></programlisting>
  84. </listitem><listitem><para>一般ヘルプ・ダイアログ・ウィジェットのインスタンスを作成します。
  85. </para>
  86. <para><function moreinfo="RefEntry">DtCreateHelpDialog()</function> 簡易関数を使用します。
  87. </para>
  88. <para><emphasis>または</emphasis> <function moreinfo="RefEntry">XtCreateManagedWidget()</function> 関数を使用します。
  89. </para>
  90. </listitem><listitem><para>ダイアログ内で発生するハイパーリンク・イベントを処理するためのコールバックを追加します。(詳細については、<xref role="SecTitleAndPageNum" linkend="HRDC.DiaEv.mkr.3"> を参照してください。)</para>
  91. </listitem><listitem><para>[閉じる]コマンドを処理するための<emphasis>クローズ・コールバック</emphasis>を追加します。
  92. </para>
  93. </listitem></orderedlist>
  94. <sect3 id="HRDC.CrDia.div.6">
  95. <title>例</title>
  96. <para>次のコード・セグメントは、簡易関数を使用して一般ヘルプ・ダイアログを(<symbol role="Variable">parent</symbol> の子として)作成します。ダイアログは管理されていません。ヘルプが要求された時点で、アプリケーションによって管理されます。
  97. </para>
  98. <programlisting>Widget mainHelpDialog, moreButton, helpButton;
  99. ac = 0;
  100. XtSetArg (al[ac], XmNtitle, "My Application - Help"); ac++;
  101. XtSetArg (al[ac], DtNhelpVolume, "My Help Volume"); ac++;
  102. XtSetArg (al[ac], DtNlocationId, "Getting Started"); ac++;
  103. XtSetArg (al[ac], DtNhelpType, "DtHELP_TYPE_TOPIC"); ac++;
  104. mainHelpDialog =
  105. DtCreateHelpDialog (parent, "mainHelpDialog", al, ac);</programlisting>
  106. <para>次の2つの呼び出しは、ダイアログにハイパーリンクとクローズ・コールバックを追加します。関数 <function>HyperlinkCB()</function> と <function>CloseHelpCB()</function> は、ここには示されていないアプリケーションの別の場所で宣言しています。
  107. </para>
  108. <programlisting>XtAddCallback (mainHelpDialog, DtNhyperLinkCallback,
  109. HyperlinkCB, (XtPointer)NULL);
  110. XtAddCallback (mainHelpDialog, DtNcloseCallback,
  111. CloseHelpCB, (XtPointer)NULL);</programlisting>
  112. </sect3>
  113. <sect3 id="HRDC.CrDia.div.7">
  114. <title>関連項目</title>
  115. <itemizedlist><listitem><para><xref role="SecTitleAndPageNum" linkend="HRDC.H4Hlp.mkr.1"></para>
  116. </listitem><listitem><para><xref role="SecTitleAndPageNum" linkend="HRDC.DiaEv.mkr.7">
  117. </para>
  118. </listitem><listitem><para><filename moreinfo="RefEntry">DtCreateHelpDialog</filename>(3) マニュアル・ページ</para>
  119. </listitem><listitem><para><filename moreinfo="RefEntry">DtHelpDialog</filename>(3) マニュアル・ページ</para>
  120. </listitem></itemizedlist>
  121. </sect3>
  122. </sect2>
  123. </sect1>
  124. <sect1 id="HRDC.CrDia.div.8">
  125. <title id="HRDC.CrDia.mkr.6">簡易ヘルプ・ダイアログ</title>
  126. <para><indexterm><primary>簡易ヘルプ・ダイアログ・ボックス</primary><secondary>ボタン</secondary></indexterm>
  127. 簡易ヘルプ・ダイアログ・ボックスは、オンライン・ヘルプの第一目標である<emphasis>ユーザができるだけ早く、また正常に作業に戻れること</emphasis>が実現できるように設計されています。このシンプルなユーザ・インタフェースによって、ユーザは情報に集中しつづけることができます。ダイアログの情報は、ユーザが読んだ後に消してしまっても作業が続けられるように、有用なものでなければなりません。
  128. </para>
  129. <figure>
  130. <title>4つの標準ボタンを備えた簡易ヘルプ・ダイアログ</title>
  131. <graphic id="HRDC.CrDia.grph.2" entityref="HRDC.CrDia.fig.2"></graphic>
  132. </figure>
  133. <para>簡易ヘルプ・ダイアログには5つのボタンがあり、そのうち4つが管理されています。残りのダイアログ・ボタンは構成可能なので、このボタンは希望に合わせて使用することができます。しかし、その目的としては、次の2つの方法のどちらかでヘルプへのパスを提供することです。
  134. </para>
  135. <itemizedlist><listitem><para>ユーザがより詳細な情報を探せるようにします。この場合、デフォルトのボタン・ラベル ([詳細]) が適切です。これは<emphasis>段階的な表示</emphasis>と呼ばれます。
  136. </para>
  137. </listitem><listitem><para>アプリケーションのヘルプ・ボリュームを通常どおりブラウズするために、一般ヘルプ・ダイアログを開けるようにします。この場合、<literal>[ブラウズ&hellip;]</literal> がもっとも適切なボタン・ラベルになります。
  138. </para>
  139. </listitem></itemizedlist>
  140. <para>開発者用ツールキットには、簡易関数 <function>DtHelpQuickDialogGetChild()</function> が含まれています。この関数は、どの簡易ヘルプ・ダイアログ・ボタンにも対応するウィジェットIDを決定します。
  141. </para>
  142. <sect2 id="HRDC.CrDia.div.9" role="Procedure">
  143. <title id="HRDC.CrDia.mkr.7">簡易ヘルプ・ダイアログを作成するには</title>
  144. <orderedlist><listitem><para>適切なヘッダ・ファイルを指定します。</para>
  145. <programlisting>#include &lt;Help.h>
  146. #include &lt;HelpQuickD.h></programlisting>
  147. </listitem><listitem><para>簡易ヘルプ・ダイアログ・ウィジェットのインスタンスを作成します。
  148. </para>
  149. <itemizedlist><listitem><para><function moreinfo="refentry">DtCreateHelpQuickDialog()</function> 簡易関数を使用します。</para>
  150. </listitem><listitem><para><emphasis>または</emphasis> <function moreinfo="refentry">XtCreateManagedWidget()</function> 関数を使用します。</para>
  151. </listitem></itemizedlist>
  152. </listitem><listitem><para>ダイアログ内で発生するハイパーリンク・イベントを処理するためのコールバックを追加します(詳細については、<xref role="SecTitleAndPageNum" linkend="HRDC.DiaEv.mkr.3"> を参照してください)。</para>
  153. </listitem><listitem><para>[了解] ボタンを処理するための<emphasis>クローズ・コールバック</emphasis>を追加します。
  154. </para>
  155. </listitem><listitem><para>使用したいダイアログ・ボタンを構成します。
  156. </para>
  157. <itemizedlist><listitem><para>アプリケーション定義のボタンを使用するには、それを管理して起動コールバックを追加します。
  158. </para>
  159. </listitem><listitem><para>印刷を許可しないようにするには、[印刷]ボタンの管理を解除します。
  160. </para>
  161. </listitem><listitem><para>ユーザが「ヘルプの使い方」を使用できるように、[ヘルプ]ボタンを管理し、ダイアログに<emphasis>ヘルプ・コールバック</emphasis>を追加します。
  162. </para>
  163. </listitem></itemizedlist>
  164. </listitem></orderedlist>
  165. <sect3 id="HRDC.CrDia.div.10">
  166. <title>例</title>
  167. <para>次のコード・セグメントは、簡易関数を使用して簡易ヘルプ・ダイアログを(<symbol>parent</symbol> の子として)作成します。ダイアログは管理されていません。ヘルプが要求された時点で、アプリケーションの別の場所で管理されます。この例では、アプリケーション定義のボタンが使用可能になっており、ヘルプをさらに要求するために使用しています。
  168. </para>
  169. <programlisting>Widget quickHelpDialog, moreButton, helpButton;
  170. ac = 0;
  171. XtSetArg (al[ac], XmNtitle, "My Application - Help"); ac++;
  172. XtSetArg (al[ac], DtNhelpVolume, "My Help Volume"); ac++;
  173. XtSetArg (al[ac], DtNlocationId, "Getting Started"); ac++;
  174. XtSetArg (al[ac], DtNhelpType, "DtHELP;_TYPE_TOPIC"); ac++;
  175. quickHelpDialog =
  176. DtCreateHelpQuickDialog (<symbol>parent</symbol>, "quickHelpDialog", al, ac);
  177. </programlisting>
  178. <para>次の2つの呼び出しは、ダイアログにハイパーリンクとクローズ・コールバックを追加します。関数 <function>HyperlinkCB()</function> と <function>CloseHelpCB()</function> は、この例には示されていないアプリケーションの別の場所で宣言されています。
  179. </para>
  180. <programlisting>XtAddCallback (quickHelpDialog, DtNhyperLinkCallback,
  181. HyperlinkCB, (XtPointer)NULL);
  182. XtAddCallback (quickHelpDialog, DtNcloseCallback,
  183. CloseHelpCB, (XtPointer)NULL);
  184. </programlisting>
  185. <para>ここで、アプリケーション定義のボタンが管理され、アプリケーションの <function>MoreHelpCB()</function> 関数を起動する起動コールバックが割り当てられます。
  186. </para>
  187. <programlisting>moreButton = DtHelpQuickDialogGetChild (quickHelpDialog,
  188. DT_HELP_QUICK_MORE_BUTTON);
  189. XtManageChild (moreButton);
  190. XtAddCallback (moreButton, XmNactivateCallback,
  191. MoreHelpCB, (XtPointer)NULL);
  192. </programlisting>
  193. <para>「ヘルプの使い方」を提供するために、ダイアログの[ヘルプ]ボタンが管理され、ダイアログにヘルプ・コールバックが追加されます。
  194. </para>
  195. <programlisting>helpButton = DtHelpQuickDialogGetChild (quickHelpDialog,
  196. DT_HELP_QUICK_HELP_BUTTON);
  197. XtManageChild (helpButton);
  198. XtAddCallback (quickHelpDialog,DtNhelpCallback,
  199. HelpRequestCB, USING_HELP);
  200. </programlisting>
  201. <para>他の Motif ダイアログと同じように、簡易ヘルプ・ダイアログにヘルプ・コールバックを追加すると、[F1]キーと[ヘルプ]ボタンのどちらからでも簡易ヘルプ・ダイアログを使用することができます。
  202. </para>
  203. </sect3>
  204. <sect3 id="HRDC.CrDia.div.11">
  205. <title>関連項目</title>
  206. <itemizedlist><listitem><para><xref role="SecTitleAndPageNum" linkend="HRDC.DiaEv.mkr.7"></para>
  207. </listitem><listitem><para><xref role="ChapNumAndTitle" linkend="HRDC.H4Hlp.mkr.1"></para>
  208. </listitem><listitem><para><filename moreinfo="RefEntry">DtCreateHelpQuickDialog</filename>(3) マニュアル・ページ</para>
  209. </listitem><listitem><para><filename moreinfo="RefEntry">DtHelpQuickDialog</filename>(3) マニュアル・ページ</para>
  210. </listitem><listitem><para><filename moreinfo="RefEntry">DtHelpQuickDialogGetChild</filename>(3) マニュアル・ページ</para>
  211. </listitem></itemizedlist>
  212. </sect3>
  213. </sect2>
  214. </sect1>
  215. <sect1 id="HRDC.CrDia.div.12">
  216. <title id="HRDC.CrDia.mkr.8">アプリケーション・プログラム・インタフェースの要約</title>
  217. <para>ヘルプ・システムに関連するマニュアル・ページは次のとおりです。</para>
  218. <itemizedlist><listitem><para>ダイアログの作成と操作のための関数
  219. </para>
  220. <itemizedlist><listitem><para><filename>DtHelp(5)</filename></para>
  221. </listitem><listitem><para><filename>DtHelpDialog(5)</filename></para>
  222. </listitem><listitem><para><filename>DtHelpQuickD(5)</filename></para>
  223. </listitem><listitem><para><function>DtCreateHelpDialog()</function></para>
  224. </listitem><listitem><para><function>DtCreateHelpQUickDialog()</function></para>
  225. </listitem><listitem><para><function>DtHelpQuickDialogGetChild()</function></para>
  226. </listitem></itemizedlist>
  227. </listitem><listitem><para>項目ヘルプ・モードの実現のための関数</para>
  228. <itemizedlist><listitem><para><function>DtHelpReturnSelectedWidgetId()</function></para>
  229. </listitem></itemizedlist>
  230. </listitem><listitem><para>ヘルプ・ライブラリにメッセージ・カタログを指定するための関数
  231. </para>
  232. <itemizedlist><listitem><para><function>DtHelpSetCatalogName()</function></para>
  233. </listitem></itemizedlist>
  234. </listitem><listitem><para>ヘルプ・ボリュームの作成および表示のためのアプリケーションとアクション
  235. </para>
  236. <itemizedlist><listitem><para><filename>dtdocbook</filename>(1)</para>
  237. </listitem><listitem><para><filename>dthelpview</filename>(1)</para>
  238. </listitem><listitem><para><filename>dthelpgen</filename>(1)</para>
  239. </listitem><listitem><para><filename>dthelpaction(5)</filename></para>
  240. </listitem><listitem><para><filename>dtmanaction(5)</filename></para>
  241. </listitem></itemizedlist>
  242. </listitem><listitem><para>文書型定義</para>
  243. <itemizedlist><listitem><para><filename>dtdocbookdtd(4)</filename></para>
  244. </listitem><listitem><para><filename>dtsdldtd(4)</filename></para>
  245. </listitem></itemizedlist>
  246. </listitem></itemizedlist>
  247. </sect1>
  248. </chapter>
  249. <!--fickle 1.14 mif-to-docbook 1.7 01/02/96 16:48:20-->