書式
String XtResolvePathname(display, type, filename, suffix, path, substitutions, num_substitutions, predicate)Display *display;
String type, filename, suffix, path;
Substitution substitutions;
Cardinal num_substitutions;
XtFilePredicate predicate;
引き数
- display
- Specifies the display to use to find the language for language substitutions.
- type
-
- filename
-
- suffix
- パスで置き換える値を指定。
- path
- ファイル指定のリスト、あるいは NULL を指定。
- substitutions
- パスに行う追加的な置き換えのリスト、あるいは NULL を指定。
- num_substitutions
- substitutions のエントリー数を指定。
- predicate
- ファイル名の各候補を判定するために呼ぶ手続き、あるいは NULL を指定。
説明
XtResolvePathname で指定した置き換えは、 指定したディスプレイに対する XtDisplayInitialize で取得した言語文字列の値から決められる。 どのアプリケーションに対しても、リソースデータベースにおいて ``*xnlLanguage: lang'' を指定することで言語を設定することができ る。 言語文字列のフォーマットと内容は実装定義である。記法の例を挙げると、言 語文字列は3つのパートを組み合わせて作ることができる。これは「言語パー ト」「地域パート」「コードセットパート」である。この組み合わせを行う方 法は実装定義であり、以下で説明する置き換えに使う以外にはイントリンシク スはパートの解釈は行わない。XtResolvePathname は、呼び出し側が渡したものに加えて以下の置き換えを使って XtFindFile を呼び出し、 XtFindFile が返した値を返す。
- %N
- filename パラメータの値。 filename が NULL ならばアプリケーションのクラス名。
- %T
- type パラメータの値。
- %S
- suffix パラメータの値。
- %L
- 指定したディスプレイに関連づけられた言語文字列。
- %l
- ディスプレイの言語文字列の言語パート。
- %t
- ディスプレイの言語文字列の地域パート。
- %c
- ディスプレイの言語文字列のコードセットパート。
- %C
- display に対応づけられたリソースデータベースから取得したカスタマ イズ文字列。
- %D
- 実装固有であるデフォルトのパスの値。
パスが XtResolvePathname に渡される場合、これは XtFindFile に渡される。 引き数 path が NULL ならば、環境変数 XFILESEARCHPATH の値が XtFindFile に渡される。 XFILESEARCHPATH が定義されていない場合、少なくとも6つのエントリーを持つ実装固有のデフォ ルトのパスが使われる。このエントリーは以下の置き換えを含まなければなら ない:
1. %C, %N, %S, %T, %L または%C, %N, %S, %T, %l, %t, %c 2. %C, %N, %S, %T, %l 3. %C, %N, %S, %T 4. %N, %S, %T, %L または%N, %S, %T, %l, %t, %c 5. %N, %S, %T, %l 6. %N, %S, %T
パスにおける6つのエントリーの順序は上記のままでなければならない。 与えられたエントリーにおける置き換えの順序と使用は実装依存である。 パスがコロンで始まる場合、その前には %N%S が置かれる。パス中でコロンが 2つ続いている場合には、その間に %N%S が挿入される。
type パラメータはファイルのカテゴリーを示すためのものであり、通 常はパス名内でディレクトリに置換される。これは ``app-defaults'', ``help'', ``bitmap'' 等の値を持つ。
suffix パラメータはファイル名に追加されるものである。 これは ``.txt'', ``.dat'', ``.bm'' 等の値を持つ。
POSIX 準拠のシステムにおけるデフォルトのパスの値の例を挙げる。
-
<XRoot>/lib/X11/%L/%T/%N%C%S:<XRoot>/lib/X11/%l/%T/%N%C%S:\
<XRoot>/lib/X11/%T/%N%C%S:<XRoot>/lib/X11/%L/%T/%N%S:\
<XRoot>/lib/X11/%l/%T/%N%S:<XRoot>/lib/X11/%T/%N%S
ここで <XRoot> は X11 のインストールツリーのルート(例えば /usr/X11R6) に置き換えられる。
この例を使ってユーザが言語を指定した場合には、これは他のファイルを探す ための <XRoot>/lib/X11 のサブディレクトリとして使われる。求めるサイズ がそこで見つからない場合、指定の言語パートだけを使って次の検索が行われ る。それでも見つからない場合には、<XRoot>/lib/X11 が検索される。 type パラメータは言語ディレクトリのサブディレクトリまたは <XRoot>/lib/X11 のサブディレクトリとして使われ、suffix がファイ ル名に追加される。
%D による置き換えを使うと、実行固有のデフォルトパスにパス要素の追加を 行うことができる。特に、システムディレクトリにおけるリソース発見を妨げ ることなく追加のディレクトリを検索することができる。例えば、ユーザがディ レクトリ ``ourdir'' にリソースファイルをインストールした場合、 XFILESEARCHPATH は %D:ourdir/%T/%N%C:ourdir/%T/%N のようにセットされる。
カスタマイズ文字列は、ディスプレイに現在関連づけられているリソースデー タベース( XrmGetDatabase が返すデータベース)に対してリソース application_name.customization やクラス application_class.Customization を問い合わせることで取得できる。 ここで application_name と application_class は XtGetApplicationNameAndClass が返す値である。 データベース中に値が指定されていない場合には、空文字列が使われる。
返された文字列が不要になったとき、 XtFree を使ってこの文字列を解放するのは呼び出し側の責任である。