共通デスクトップ環境 プログラマーズ・ガイド (国際化対応編)

Text ウィジェットおよび TextField ウィジェット

基本プロンプトおよびダイアログには、Text ウィジェットか TextField ウィジェットをお勧めします。Text[Field] ウィジェットの中にローカライズされたテキストを獲得および設定するのに、リソースの他にすべての XmTextField 関数と XmText 関数を使用できます。

ほとんどの XmText 関数は、バイト数ではなく文字数に基づいています。たとえば、すべての XmTextPosition() 関数位置は文字の位置であり、バイトの位置ではありません。XmTextGetMaxLength() 関数はバイト数を返します。疑わしい場合、位置は常に文字単位であることを思い出してください。

Text ウィジェットまたは TextField ウィジェットの幅は、XmNcolumns のリソース値によって決定します。しかし、この値はフォント・セットの最も幅の広い文字の数を表すものであり、バイト数やカラム数ではありません。たとえば、Text ウィジェットに可変幅のフォントを選択したとします。文字 i の幅は 1 ピクセルであり、文字 W の幅は 7 ピクセルです。XmNcolumns の値が 10 に設定されると、これは Text ウィジェットを 10 文字以上表示できる幅にするための要求と見なされます。したがって Text ウィジェットは、最も広い文字の幅を使って Core ウィジェットのピクセル幅を決定しなければなりません。この例では、ウィジェットに W なら 10 個、i なら 70 個表示できます。XmNcolumns のこの構造は、コード・セットがマルチバイトでマルチカラム・エンコーディングのロケールの場合、問題を起こす可能性があります。この値はローカライズされたリソースの中で設定してください。

次節は、入力メソッドの管理に使用するアプリケーションで使用可能な関数のセットを示します。Text ウィジェットおよび TextField ウィジェットを使用するアプリケーションについては、「入力メソッド (キーボード)」を参照してください。