国際化対応言語環境の利用ガイド

CTL アプリケーションの開発

レイアウトの方向

複合文字列の方向は、左から右に記述される言語 (英語、スペイン語、フランス語、ドイツ語など) の場合と同様に、右から左に記述される言語 (ヘブライ語、アラビア語など) の場合にも利用可能なデータ構造で保管されます。Motif アプリケーションでは、VendorShell または MenuShell から XmNlayoutDirection リソースを使用してレイアウト方向を設定できます。また、プリミティブウィジェット (および Gadgets) も XmNlayoutDirection リソースを持ちます。

XmText ウィジェットに関しては、垂直方向も指定する必要があります。XmRIGHT_TO_LEFTlayoutDirection を設定すると、文字列の方向は右から左に設定されますが、カーソルは真下に移動します。垂直方向が重要で、上から下を希望する場合には、XmRIGHT_TO_LEFT_TOP_TO_BOTTOM を指定します。これにより、コンポーネントは希望通りまず右から左に、続いて上から下へレイアウトされます。

さらに、XmText および TextField ウィジェットの動作は、XmRenditionXmNalignment および XmNlayoutModifier リソースにも依存します。これらのリソースおよび XmNlayoutDirection は、Text ウィジェットのレイアウト動作を制御します。このことを下図の例を用いて説明します。

図で使用する入力文字列は次の通りです。

Graphic

各図の左のカラムに、XmNlayoutModifier の文字列 @ls orientation= に設定される値を示します。

図 7-1 レイアウト方向

Graphic

図に示すとおり、XmNAlignment はレイアウト方向に関連してテキストを右フラッシュするか左フラッシュするかを指定します。一方、XmNlayoutModifier はテキストをセグメントに分割して、向きの値に従って左から右、または右から左に並べ直します。たとえば、XmlayoutDirectionXmRIGHT_TO_LEFTXmNAlignment の値が XmALIGNMENT_BEGINNING ならば、文字列は右フラッシュされます。