書式
Widget XtSetLanguageProc(app_context, proc, client_data)XtAppContext app_context;
XtLanguageProc proc;
XtPointer client_data;
引き数
- app_context
- 言語手続きが使われるアプリケーションコンテクスト(application context)または NULL を指定する。
- proc
- 言語手続きまたは NULL を指定する。
- client_data
- 言語手続きが呼び出されたときに、この手続きに引き渡す追加のクライアント データを指定。
説明
XtSetLanguageProc は言語手続きを設定する。 設定以降は、指定されたアプリケーションコンテクストでディスプレイを 初期化する際に、 XtDisplayInitialize からこの言語手続きが呼び出される。 もし app_context が NULL であれば、指定された言語手続きは、 呼び出しを行ったプロセスが生成する全てのアプリケーションコンテクストに 登録される。 これには、将来作られるかもしれないアプリケーションコンテクストも全て含 まれる。 proc が NULL の場合には、デフォルトの言語手続きが登録される。 XtSetLanguageProc は前に登録された言語手続きを返す。 言語手続きがまだ登録されていなければ返り値は不定であるが、 この返り値がその後の XtSetLanguageProc の呼び出しで用いられた場合には、デフォルトの言語手続きが登録される。デフォルトの言語手続きは以下の処理を行う:
- 環境に従ってロケールを設定する。ANSI C ベースのシステムでは、これは setlocale( LC_ALL, 言語 ) の呼び出しによって行う。エラーが起きた場合は、警告メッセージが XtWarning を使って発行される。
- XSupportsLocale を呼び出して、現在のロケールがサポートされているかどうか検査する。もし ロケールがサポートされていなければ、警告メッセージが XtWarning を使って発行され、ロケールは ``C'' に設定される。
- 空の文字列を引き数にして XSetLocaleModifiers を呼び出す。
- 現在のロケールの値を返す。ANSI C ベースのシステムでは、これは最後に setlocale( LC_ALL, NULL ) を呼び出して得た返り値である。
この機構を使ってロケールを確立しようとしているクライアントは、 XtDisplayInitialize の前に XtSetLanguageProc を呼び出せばよい。