共通デスクトップ環境のテキスト編集システムは、次の 2 つのコンポーネントから成ります。
グラフィカル・インタフェース、アクション・インタフェース、および ToolTalk インタフェースを介して編集サービスを提供するテキスト・エディタ・クライアントの dtpad
次の編集サービスのためのプログラム・インタフェースを提供するエディタ・ウィジェットの DtEditor(3)
カット & ペースト
検索と置換
単純な書式化
スペルチェック (8 ビット・ロケール用)
以前の編集を元に戻す
ASCII テキスト、マルチバイト・テキスト、およびバッファ・データの入出力をサポートする拡張入出力処理機能
ファイルの直接読み書きのサポート
OSF/Motif テキスト・ウィジェットはプログラム・インタフェースも提供しますが、システム全体で一貫したエディタを使用するアプリケーションは、DtEditor(3) ウィジェットを使用しなければなりません。CDE のテキスト・エディタとメール・プログラムは、エディタ・ウィジェットを使用します。このウィジェットは、次のような状況のときに使用してください。
[スペルチェック]、[元に戻す]、および [検索/変更] など、DtEditor(3) ウィジェットが提供する機能を使いたい場合
ユーザがファイルからデータを読み込んだり、ファイルにデータを書き込んだりするコードを作成したくない場合
ユーザが入力した文字またはユーザが行なったカーソル移動を調べる必要がないプログラムを作成する場合
この節では、テキスト・エディタ・ウィジェット DtEditor(3) について説明します。
エディタ・ウィジェット・ライブラリは、テキスト・ファイルの作成と編集のためのサポートを提供します。デスクトップ環境で実行するアプリケーションで、一貫した方法でテキスト・データを編集できるようにします。DtEditor(3) ウィジェットは、テキスト用のスクロールする編集ウィンドウ、オプションのステータス行と、テキストの検索と置換、スペルチェック、および書式オプションの指定を行うためのダイアログから成ります。テキスト・エディタ・ウィジェットには、ウィジェットをプログラム的に制御するための簡易関数のセットが含まれています。
DtEditor ウィジェットは、libDtWidget ライブラリにあります。ヘッダ・ファイルは、Dt/Editor.h です。
DtEditor ウィジェットの使用例が入っているデモが、/usr/dt/examples/dtwidget/editor.c にあります。
DtEditor ウィジェット・クラスについては、ウィジェットのサブクラス化はサポートされません。
DtEditor は、Core、Composite、Constraints、XmManager、および XmForm クラスから動作とリソースを継承します。
エディタ・ウィジェットのクラス名は、DtEditorWidget です。
クラス・ポインタは、dtEditorWidgetClass です。
DtEditor 簡易関数を、次の表に示します。
DtEditor ライフ・サイクル関数を表 7-3 に示します。
表 7-3 DtEditor ライフ・サイクル関数
関数 |
説明 |
---|---|
DtCreateEditor |
DtEditor ウィジェットの新規インスタンスとその子を作成します。 |
DtEditorReset |
DtEditor ウィジェットを初期状態に復元します。 |
DtEditor 入出力関数を表 7-4 に示します。
表 7-4 DtEditor 入出力関数
関数 |
説明 |
---|---|
DtEditorAppend |
エディタ・ウィジェットの最後に内容データを追加します。 |
DtEditorAppendFromFile |
エディタ・ウィジェットの最後にファイルの内容を追加します。 |
DtEditorGetContents |
エディタ・ウィジェットの内容全体を検索します。 |
DtEditorInsert |
内容データを現在の挿入位置に挿入します。 |
DtEditorInsertFromFile |
ファイルの内容を現在の挿入位置に挿入します。 |
DtEditorReplace |
テキストの一部を与えられたデータと置き換えます。 |
DtEditorReplaceFromFile |
テキストの一部をファイルの内容と置き換えます。 |
DtEditorSaveContentsToFile |
現在選択されている内容を空白に置き換えます。 |
DtEditorSetContents |
内容データをエディタ・ウィジェットに読み込んで、ウィジェットの内容全体を置き換えます。 |
DtEditorSetContentsFromFile |
ファイルの内容をエディタ・ウィジェットに読み込んで、ウィジェットの内容全体を置き換えます。 |
DtEditor 選択関数を表 7-5 に示します。
表 7-5 DtEditor 選択関数
関数 |
説明 |
---|---|
DtEditorClearSelection |
現在選択されている内容を空白に置き換えます。 |
DtEditorCopyToClipboard |
現在選択されている内容をクリップボードにコピーします。 |
DtEditorCutToClipboard |
現在選択されている内容を削除して、クリップボードに入れます。 |
DtEditorDeleteSelection |
現在選択されている内容を削除します。 |
DtEditorDeselect |
選択されている内容を選択解除します。 |
DtEditorPasteFromClipboard |
クリップボードの内容をエディタ・ウィジェットにペーストして、現在選択されている内容を置き換えます。 |
DtEditorSelectAll |
エディタ・ウィジェットの内容全体を選択します。 |
DtEditor 書式化関数を表 7-6 に示します。
表 7-6 DtEditor 書式化関数
関数 |
説明 |
---|---|
DtEditorFormat |
エディタ・ウィジェットの内容の全部または一部を書式化します。 |
DtEditorInvokeFormatDialog |
[書式] ダイアログ・ボックスを表示して、マージンと位置揃えのスタイルに関する書式設定を指定し、書式操作を実行できます。 |
DtEditor検索/変更関数を表 7-7 に示します。
表 7-7 DtEditArea 検索/変更関数
関数 |
説明 |
---|---|
DtEditorChange |
文字列の 1 つまたはすべての存在箇所を置換します。 |
DtEditorFind |
文字列の次の出現箇所を検索します。 |
DtEditorInvokeFindChangeDialog |
文字列を検索 (オプションで置換も) するためのダイアログ・ボックスを表示します。 |
DtEditorInvokeSpellDialog |
現在の内容の中でスペルが間違っている単語のリストがあるダイアログ・ボックスを表示します。 |
DtEditor 補助関数を表 7-8 に示します。
表 7-8 DtEditor 補助関数
関数 |
説明 |
---|---|
DtEditorCheckForUnsavedChanges |
エディタ・ウィジェットの内容が前回の検索または保存以後に変更されているかどうかを報告します。 |
DtEditorDisableRedisplay |
ビジュアル属性が変更された場合でも、エディタ・ウィジェットの再表示をしません。 |
DtEditorEnableRedisplay |
エディタ・ウィジェットの表示の更新を強制します。 |
DtEditorGetInsertPosition |
エディタ・ウィジェットの挿入カーソル位置を返します。 |
DtEditorGetLastPosition |
編集ウィンドウの最後の文字の位置を返します。 |
DtEditorGetMessageTextFieldID |
アプリケーション・メッセージを表示するために使用されるテキスト・フィールド・ウィジェットのウィジェット ID を検索します。 |
DtEditorGetSizeHints |
エディタ・ウィジェットからサイズ情報を検索します。 |
DtEditorGoToLine |
挿入カーソルを指定された行へ移動します。 |
DtEditorSetInsertionPosition |
挿入カーソルの位置を設定します。 |
DtEditorTraverseToEditor |
エディタ・ウィジェットの編集ウィンドウへのキーボード移動を設定します。 |
DtEditorUndoEdit |
ユーザが行なった最後の編集を元に戻します。 |
DtEditor ウィジェットは、次のリソースのセットを提供します。
DtNautoShowCursorPosition に True が設定された場合は、スクロール編集ウィンドウに表示されるテキストに挿入カーソルが必ずあるようにします。挿入カーソルが変わると、エディタの内容をスクロールして、挿入ポイントがウィンドウに入るようにします。
DtNblinkRate は、テキスト・カーソルの点滅間隔をミリ秒単位で指定します。挿入カーソルの点滅に要する時間は、点滅間隔の 2 倍です。点滅間隔が 0 に設定された場合は、カーソルは点滅しません。値を負にすることはできません。
DtNbuttonFontList は、DtEditor のダイアログ・ボックスに表示されるボタンのフォント・リストを指定します。
DtNcolumns は、エディタの初期の幅を整数の文字単位で指定します。値は 0 より大きくなければなりません。
DtNcursorPosition は、エディタの中で現在の挿入カーソルが置かれる位置を指定します。位置は、テキストの先頭からの文字数によって決められます。最初の文字位置は 0 です。
DtNcursorPositionVisible は、論理値が True のときに点滅しているテキスト・カーソルで、挿入カーソルの位置をマークします。
DtNdialogTitle は、DtEditor によって表示されるすべてのダイアログのタイトルを指定します。これには、単語の検索と置換、スペルが間違っている単語、および書式設定のためのダイアログが含まれます。
DtNeditable に True が設定されている場合は、ユーザはデータを編集できます。False が設定されている場合は、ユーザはデータを編集できません。
DtNlabelFontList は、DtEditor ラベルとして使用されるフォント・リストを指定します (ラベルは、ステータス行と DtEditor ダイアログ・ボックスに表示されます)。
DtNoverstrike に False が設定されている場合、エディタ・ウィジェットに入力された文字は、カーソルの位置に挿入されます (デフォルト)。True が設定されている場合、エディタ・ウィジェットに入力された文字は、挿入カーソルの直後の文字を置き換えます。行末に達した場合は、文字は行末に追加されます。ステータス行が表示されている場合、DtNoverstrike が True のときは DtNoverstrikeIndicatorLabel が必ずステータス行に表示されます。
DtNrows は、エディタの初期の高さを文字単位で指定します。値は 0 より大きくなければなりません。
DtNscrollHorizontal は論理値が True の場合、テキストを水平方向にスクロールできるスクロール・バーを追加します。
DtNscrollLeftSide は論理値が True の場合は、スクロール編集ウィンドウの左側に垂直スクロール・バーを置きます。
DtNshowStatusLine は、True が設定された場合、テキスト・ウィンドウの下にステータス行を表示します。ステータス行のフィールドには、挿入カーソルの現在の行番号、ドキュメント内の総行数、およびエディタが上書きモードかどうかを表示します。ユーザは、行番号表示に行番号を入力することによって、直接その行を表示できます。
ステータス行は、アプリケーションによって提供されるメッセージを表示するための Motif の XmTextField(3x) ウィジェットも含んでいます。このフィールドは、アプリケーションが編集中のドキュメントについてのステータスとフィードバックを表示するのに便利です。テキスト・フィールドの ID は、DtEditorGetMessageTextFieldID(3) を使用して検索されます。メッセージは、このウィジェットの XmNvalue または XmNvalueWcs リソースを設定することによって表示されます。テキスト・フィールドが必要ない場合には、その ID で XtUnmanageWidget(3X) を呼び出すことによって管理からはずことができます。
DtNspellFilter は、スペルチェックに使用するフィルタを指定します。関数 DtEditorInvokeSpellDialog(3) は、DtNspellFilter によって指定されたフィルタを使用してエディタの内容をチェックします。指定されたフィルタは、ファイル名を受け入れて、このファイルの中のスペルが間違っている単語と認識不能の単語のリストを標準出力に出力しなければなりません。デフォルトのフィルタは、spell(1) です。
DtNtextBackground は、編集ウィンドウのバックグラウンドを指定します。
DtNtextDeselectCallback は、編集領域内でテキストが選択されていない場合に呼び出される関数を指定します。コールバックによって送られる reason は、DtEDITOR_TEXT_DESELECT です。
DtNtextFontList は、DtEditor 編集ウィンドウとテキスト・フィールドに使用されるフォント・リストを指定します。テキスト・フィールドは、ステータス行と DtEditor ダイアログ・ボックスに表示されます。
DtNtextForeground は、編集ウィンドウのフォアグラウンドを指定します。
DtNtextSelectcallback は、編集領域内でテキストが選択された場合に呼び出される関数を指定します。コールバックによって送られる reason は、DtEDITOR_TEXT_SELECT です。
DtNtextTranslations は、編集ウィンドウに追加される変換を指定します。このリソースで指定された変換は、編集ウィンドウに対して定義された重複する変換を無効にします。DtEditor によって提供される変換のリストについては、DtEditor(3) のマニュアル・ページを参照してください。
DtNtopCharacter は、スクロールした編集ウィンドウの最上部にテキストの位置がある行を表示します。行はテキストを左右に移動することなくウィジェットの最上部に表示されます。位置は、テキストの先頭からの文字数によって決められます。最初の文字位置は 0 です。
DtNtopCharacter に対する XGetValues(3X) は、ウィジェットの最上部に表示される行の最初の文字の位置を返します。
DtNwordWrap は、ウィンドウの右端に達した場合に、語の切れ目でソフト・キャリッジ・リターンによる行分割を行います。行折返しは、エディタ・ウィジェットの内容の視覚的外観だけに影響を及ぼすので注意してください。行分割 (ソフト・キャリッジ・リターン) は、テキストに物理的に挿入されるわけではありません。エディタは、ウィジェットの内容が検索される場合またはファイルに保存される場合に、ハード・キャリッジ・リターンへの置換をサポートします。詳細は、DtEditorGetContents(3) および DtEditorSaveContentsToFile(3) のマニュアル・ページを参照してください。
各リソースのクラス、型、デフォルト、およびアクセスを表 7-9 にリストします。継承クラスのリソース値を設定することによって、このウィジェットの属性を設定することもできます。.Xdefaults ファイルの中で名前またはクラスによってリソースを参照するには、DtN または DtC の接頭辞を除いて、残りの文字を使用します。.Xdefaults ファイルでリソースに対して定義済みの値の 1 つを指定するには、Dt 接頭辞を除いて、残りの文字を使用します (小文字または大文字で、単語の間に下線を入れます)。
アクセス欄のコードは、次の作業が可能かどうかを示します。
作成時にリソースを設定する (C)
XtSetvalues を使用して設定する (S)
XtGetValues を使用して検索する (G)
詳細は、DtEditor(3) のマニュアル・ページを参照してください。
表 7-9 DtEditor リソース
名前 |
クラス |
型 |
デフォルト |
アクセス |
---|---|---|---|---|
DtNautoShowCursorPosition |
DtCAutoShowCursorPosition |
Boolean |
True |
CSG |
DtNblinkRate |
DtCBlinkRate |
int |
500 |
CSG |
DtNbuttonFontList |
DtCFontList |
XmFontList |
Dynamic |
CSG |
DtNcolumns |
DtCColumns |
XmNcolumns |
Dynamic |
CSG |
DtNcursorPosition |
DtCCursorPosition |
XmTextPosition |
0 |
CSG |
DtNcursorPositionVisible |
DtCCursorPositionVisible |
Boolean |
True |
CSG |
DtNdialogTitle |
DtCDialogTitle |
XmString |
NULL |
CSG |
DtNeditable |
DtCEditable |
Boolean |
True |
CSG |
DtNlabelFontList |
DtCFontList |
XmFontList |
Dynamic |
CSG |
DtNmaxLength |
DtCMaxLength |
int |
Largest integer |
CSG |
DtNoverstrike |
DtCOverstrike |
Boolean |
False |
CSG |
DtNrows |
DtCRows |
XmNrows |
Dynamic |
CSG |
DtNscrollHorizontal |
DtCScroll |
Boolean |
True |
CG |
DtNscrollLeftSide |
DtCScrollSide |
Boolean |
Dynamic |
CG |
DtNscrollTopSide |
DtCScrollSide |
Boolean |
False |
CG |
DtNscrollVertical |
DtCScroll |
Boolean |
True |
CG |
DtNshowStatusLine |
DtCShowStatusLine |
Boolean |
False |
CSG |
DtNspellFilter |
DtCspellFilter |
char * |
Spell |
CSG |
DtNtextBackground |
DtCBackground |
Pixel |
Dynamic |
CSG |
DtNtextDeselectCallback |
DtCCallback |
XtCallbackList |
NULL |
C |
DtNtextFontList |
DtCFontList |
XmFontList |
Dynamic |
CSG |
DtNtextForeground |
DtCForeground |
Pixel |
Dynamic |
CSG |
DtNtextTranslations |
DtCTranslations |
XtTranslations |
NULL |
CS |
DtNtextSelectCallback |
DtCCallback |
XtCallbackList |
NULL |
C |
DtNtopCharacter |
DtCTextPosition |
XmTextPosition |
0 |
CSG |
DtNwordWrap |
DtCWordWrap |
Boolean |
True |
CSG |
DtEditor は、次のスーパークラスから動作とリソースを継承します。
XmForm
XmManager
Composite
Core
詳細は、該当するマニュアル・ページを参照してください。
次のリストは、DtEditor ウィジェットとそのダイアログ・ボックスのローカライズのために設計されるウィジェット・リソースのセットを示しています。これらのリソースのデフォルト値は、ロケールに依存します。
DtNcenterToggleLabel は、[書式の設定] ダイアログ・ボックスの中央に揃えるトグル・ボタンのラベルを指定します。C ロケールでのデフォルト値は、[Center] です。日本語ロケールでは [中央] です。
DtNchangeAllButtonLabel は、ドキュメントの中の検索文字列のすべての存在箇所を置換する [検索/変更] ダイアログ・ボックスにあるボタンのラベルを指定します。C ロケールでのデフォルト値は、[Change all] です。日本語ロケールでは [すべてを変更] です。
DtNchangeButtonLabel は、ドキュメントの中の検索文字列の次の存在箇所を置換する [検索/変更] ダイアログ・ボックスにあるボタンのラベルを指定します。C ロケールでのデフォルト値は、[Change] です。日本語ロケールでは [変更] です。
DtNchangeFieldLabel は、ユーザが置換文字列を指定する [検索/変更] ダイアログ・ボックスにあるフィールドのラベルを指定します。C ロケールでのデフォルト値は、[Change To] です。日本語ロケールでは [変更後の単語] です。
DtNcurrentLineLabel は、ステータス行の現在の行番号フィールドのラベルを指定します。C ロケールでのデフォルト値は、[line] です。日本語ロケールでは [行] です。
DtNfindButtonLabel は、ドキュメントの中の検索文字列の次の存在箇所を検索する [検索/変更] ダイアログ・ボックスにあるボタンのラベルを指定します。C ロケールでのデフォルト値は、[Find] です。日本語ロケールでは [検索] です。
DtNfindChangeDialogTitle は、[検索/変更] ダイアログ・ボックスのタイトルを指定します。DtNdialogTitle がヌルでない場合は、このリソースの前面に追加されてタイトルを形成します。C ロケールでのデフォルト値は、 [Change To] です。日本語ロケールでは [検索/変更] です。
DtNfindFieldLabel は、ユーザが検索文字列を指定する [検索/変更] ダイアログ・ボックスにあるフィールドのラベルを指定します。C ロケールでのデフォルト値は、[Find] です。日本語ロケールでは [検索] です。
DtNformatAllButtonLabel は、ドキュメント全体を書式化する [書式の設定] ダイアログ・ボックスにあるボタンのラベルを指定します。C ロケールでのデフォルト値は、[All] です。日本語ロケールでは [すべて] です。
DtNformatParagraphButtonLabel は、挿入カーソルを含んでいるパラグラフを書式化する [書式の設定] ダイアログ・ボックスにあるボタンのラベルを指定します。C ロケールでのデフォルト値は、[Paragraph] です。日本語ロケールでは [パラグラフ] です。
DtNformatSettingsDialogTitle は、[書式の設定] ダイアログ・ボックスのタイトルを指定します。DtNdialogTitle がヌルでない場合は、このリソースの前面に追加されてタイトルを形成します。C ロケールでのデフォルト値は、[Format Setting] です。日本語ロケールでは [書式の設定] です。
DtNinformationDialogTitle は、ユーザにフィードバックと一般情報を提示するのに使用される [インフォメーション] ダイアログ・ボックスのタイトルを指定します。DtNdialogTitle がヌルでない場合は、このリソースの前面に追加されてタイトルを形成します。C ロケールでのデフォルト値は、[Infomation] です。日本語ロケールでは [インフォメーション] です。
DtNjustifyToggleLabel は、[書式の設定] ダイアログ・ボックスにある両端揃えトグル・ボタンのラベルを指定します。C ロケールでのデフォルト値は、[Justify] です。日本語ロケールでは [両端揃え] です。
DtNleftAlignToggleLabel は、[書式の設定] ダイアログ・ボックスにある左揃えトグル・ボタンのラベルを指定します。C ロケールでのデフォルト値は、[Left Align] です。日本語ロケールでは [左揃え] です。
DtNleftMarginFieldLabel は、[書式の設定] ダイアログ・ボックスにある左マージン値フィールドのラベルを指定します。C ロケールでのデフォルト値は、[Left Margin] です。日本語ロケールでは [左マージン] です。
DtNmisspelledListLabel は、[スペルチェック] ダイアログ・ボックスにある認識できない、またはスペルが間違っている単語のリストのラベルを指定します。C ロケールでのデフォルト値は、[Misspelled Words] です。日本語ロケールでは [スペルミスの単語] です。
DtNoverstrikeLabel は、エディタが上書きモードであることを示すステータス行にあるラベルを指定します。C ロケールでのデフォルト値は、[Overstrike] です。日本語ロケールでは [上書き] です。
DtNrightAlignToggleLabel は、[書式の設定] ダイアログ・ボックスにある右揃えトグル・ボタンのラベルを指定します。C ロケールでのデフォルト値は、[Right Align] です。日本語ロケールでは [右揃え] です。
DtNrightMarginFieldLabel は、[書式の設定] ダイアログ・ボックスにある右マージン値フィールドのラベルを指定します。C ロケールでのデフォルト値は、[Right Margin] です。日本語ロケールでは [右マージン] です。
DtNspellDialogTitle は、[書式の設定] ダイアログ・ボックスのタイトルを指定します。DtNdialogTitle がヌルでない場合は、このリソースの前方に追加されてタイトルを形成します。C ロケールでのデフォルト値は、[Spell] です。日本語ロケールでは [スペルチェック] です。
DtNtotalLineCountLabel は、ドキュメントの総行数を示すステータス行にあるディスプレイのラベルを指定します。C ロケールでのデフォルト値は、[Total] です。日本語ロケールでは [合計] です。
ローカライズ・リソースのそれぞれのクラス、型、デフォルト、およびアクセスを表 7-10 にリストします。アクセス欄のコードは、次の作業が可能かどうかを示します。
作成時にリソースを設定する (C)
XtSetvalues を使用して設定する (S)
XtGetValues を使用して検索する (G)
詳細は、DtEditor(3) のマニュアル・ページを参照してください。
表 7-10 DtEditor ローカライズ・リソース
名前 |
クラス |
型 |
デフォルト |
アクセス |
---|---|---|---|---|
DtNcenterToggleLabel |
DtCCenterToggleLabel |
XmString |
Dynamic |
CSG |
DtNchangeAllButtonLabel |
DtCChangeAllButtonLabel |
XmString |
Dynamic |
CSG |
DtNchangeButtonLabel |
DtCChangeButtonLabel |
XmString |
Dynamic |
CSG |
DtNchangeFieldLabel |
DtCChangeFieldLabel |
XmString |
Dynamic |
CSG |
DtNcurrentLineLabel |
DtCCurrentLineLabel |
XmString |
Dynamic |
CSG |
DtNfindButtonLabel |
DtCFindButtonLabel |
XmString |
Dynamic |
CSG |
DtNfindChangeDialogTitle |
DtCFindChangeDialogTitle |
XmString |
Dynamic |
CSG |
DtNfindFieldLabel |
DtCFindFieldLabel |
XmString |
Dynamic |
CSG |
DtNformatAllButtonLabel |
DtCFormatAllButtonLabel |
XmString |
Dynamic |
CSG |
DtNformatParagraphButtonLabel |
DtCFormatParagraphButtonLabel |
XmString |
Dynamic |
CSG |
DtNformatSettingsDialogTitle |
DtCFormatSettingsDialogTitle |
XmString |
Dynamic |
CSG |
DtNinformationDialogTitle |
DtCInformationDialogTitle |
XmString |
Dynamic |
CSG |
DtNjustifyToggleLabel |
DtCJustifyToggleLabel |
XmString |
Dynamic |
CSG |
DtNleftAlignToggleLabel |
DtCLeftAlignToggleLabel |
XmString |
Dynamic |
CSG |
DtNleftMarginFieldLabel |
DtCLeftMarginFieldLabel |
XmString |
Dynamic |
CSG |
DtNmisspelledListLabel |
DtCMisspelledListLabel |
XmString |
Dynamic |
CSG |
DtNoverstrikeLabel |
DtCOverstrikeLabel |
XmString |
Dynamic |
CSG |
DtNrightAlignToggleLabel |
DtCRightAlignToggleLabel |
XmString |
Dynamic |
CSG |
DtNrightMarginFieldLabel |
DtCRightMarginFieldLabel |
XmString |
Dynamic |
CSG |
DtNspellDialogTitle |
DtCSpellDialogTitle |
XmString |
Dynamic |
CSG |
DtNtotalLineCountLabel |
DtCTotalLineCountLabel |
XmString |
Dynamic |
CSG |
DtEditor ウィジェットは、次の 3 つのコールバック関数をサポートします。
DtEditorNHelpCallback
DtNtextSelectCallback
DtNtextDeselectCallback
エディタ・ウィジェットとそのダイアログ・ボックスについてのヘルプ情報を表示する場合は、XmNhelpCallback リソースを設定し、DtEditorHelpCallbackStruct の一部として渡される reason フィールドを使用して、[ヘルプ] ダイアログ・ボックスの内容を設定します。次の構造体へのポインタが XmNHelpCallback に渡されます。コールバックのための構造体を次に示し、表 7-11 で説明します。
typedef struct { int reason; XEvent *event; } DtEditorHelpCallbackStruct;表 7-11 DtEditorHelp コールバックのための構造体
構造体 |
説明 |
---|---|
reason |
コールバックが呼び出された reason。reason のリストについては、DtEditor(3) のマニュアル・ページを参照してください。 |
event |
このコールバックを呼び出したイベントへのポインタ。値は、NULL になることもあります。 |
テキストが選択されているかどうかによって、メニュー項目とコマンドを有効か無効にする場合は、DtNtextSelectCallback リソースおよび DtNtextDeselectCallback リソースを使用します。DtNtextSelectCallback は、編集ウィンドウでテキストが選択されたときに呼び出される関数を指定します。DtNtextDeselectCallback は、編集ウィンドウでテキストが選択されていないときに呼び出される関数を指定します。コールバックによって送られる reason は、DtEDITOR_TEXT_SELECT と DtEDITOR_TEXT_DESELECT です。