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

ピックスマップ (アイコン)・リソース

表 2–7 はピックスマップ・リソースの一覧です。場合により、指定されたロケールに対して違うピックスマップが必要になる場合があります。

表 2–7 ピックスマップ・リソース

ウィジェット・クラス 

リソース名 

Core

*backgroundPixmap:

WMShell

*iconPixmap:

XmDragIcon

*pixmap:

XmDropSite

*animation[Mask|Pixmap]:

XmLabel[Gadget]

*labelInsensitivePixmap:

XmLabel[Gadget]

*labelPixmap:

XmMessageBox

*symbolPixmap:

XmPushButton[Gadget]

*armPixmap:

XmToggleButton[Gadget]

*selectInsensitivePixmap:

XmToggleButton[Gadget]

*selectPixmap:

ピックスマップは、必要なときに再呼び出しして表示できるようにメモリに格納された画面イメージです。デスクトップには多数のピックスマップ・リソースがあり、それによってアプリケーションは、バックグラウンド、ボーダ、影、ラベルとボタンの表面、ドラッグ・アイコンその他の用途にピックスマップを供給できます。テキストと同様、一部のピックスマップは特定の言語環境に固有のものです。それらのピックスマップはローカライズされていなければなりません。

デスクトップはピックスマップおよびイメージのキャッシュを管理します。XmGetPixmapByDepth() 関数は、要求されたピックスマップを探してそれらのキャッシュを検索します。要求されたピックスマップがピックスマップのキャッシュに存在せず、対応するイメージがイメージのキャッシュにない場合は、XmGetPixmapByDepth() 関数が、要求されたイメージ名と名前が一致する X ビットマップ・ファイルを検索します。XmGetPixmapByDepth() 関数は、ファイルを検索するために XtResolvePathname() 関数を呼び出します。要求されたイメージ名が絶対パス名の場合、そのパス名が XtResolvePathname() 関数の検索パスです。そうでない場合、XmGetPixmapByDepth() 関数は次のように検索パスを構築します。

これらのパスには %B 置換フィールドがあるかもしれません。XtResolvePathname() 関数への呼び出しのたびに、XmGetPixmapByDepth() 関数は %B を要求されたイメージ名に置き換えます。パスには、XtResolvePathname() 関数が受け取るその他の置換フィールドがあるかもしれません。特に、XtResolvePathname() 関数は %L を表示の言語文字列に置き換え、%l%t%c を表示の言語文字列のコンポーネント (ベンダ依存) に置き換えます。置換フィールド %T は常にビットマップにマップされ、%S は常にヌルにマップされます。

デフォルトでは文字列からピックスマップへのコンバータがないので、ピックスマップは通常 XmGetPixmap() への呼び出しで最初にピックスマップを取り出すことにより、アプリケーションによって作成時に設定されます。XmGetPixmap() は、現在のロケールを使用してピックスマップをどこから検索するか決定します (ピックスマップの検索とロケールの関係については、XmGetPixmap() のマニュアル・ページを参照してください)。