XtSetLanguageProc(3) 言語手続きを設定する

書式

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 を呼び出せばよい。