この付録では、Xlib のアプリケーションプログラミングインタフェース (API) から ATOK8 を使用する際の注意点について説明します。
この付録で使用する用語は、Xlib API に関する知識があることを前提としています。 X11R5 のドキュメント『Xlib - C language X interface』などを適宜参照してください。『Xlib - C language X interface』の中では特に次の部分が重要です。
この付録の全体について
Chapter 13: Locales and Internationalized Text Functions
カラーマップ について
Chapter 6: Color Management Functions
Xlib インタフェースから入力メソッド (IM) として ATOK8 を利用する場合、明示的な指定は必ずしも必要ありません。
ATOK8 は、起動時にそのディスプレイ上のデフォルトの入力サーバーとなるような設定を行うため、明示的に入力メソッド名として ATOK8 を指定しなくても ATOK8 を利用するようになります。たとえば atok8setup コマンドを実行した場合、 ATOK8 が入力サーバーになります。
ただし、ATOK8 起動時にすでに他の入力サーバーが起動されていて、それがデフォルトの入力サーバーになっている場合には、ATOK8 がデフォルトの入力サーバーになることはできません。たとえば、入力サーバー htt が起動されている状態でコマンド行から ATOK8 を起動したような場合にこの状況になります。 この状況で ATOK8 を利用するには、環境変数 XMODIFIERS を用いて次のロケール修飾子を明示的に指定する必要があります。
カテゴリ |
im |
値 |
atok8 |
指定方法は次のとおりです。
C シェルの場合
sun% setenv XMODIFIERS @im=atok8 |
Bourne シェルまたは Korn シェルの場合
$ XMODIFIERS=@im=atok8$ export XMODIFIERS |
ATOK8 は入力メソッドとして次の値をサポートしています。
XNInputStyles
XGetIMValues() 関数を用いてこの値を取得した場合、ATOK8 は以下の入力スタイルの組み合わせを返します。
XIMPreeditCallbacks | XIMStatusArea
XIMPreeditPosition | XIMStatusArea
XIMPreeditCallbacks | XIMStatusNothing
XIMPreeditPosition | XIMStatusNothing
XIMPreeditArea | XIMStatusArea
XIMPreeditArea | XIMStatusNothing
XIMPreeditNothing | XIMStatusArea
XIMPreeditNothing | IMStatusNothing
XIMPreeditCallbacks | XIMStatusCallbacks
XIMPreeditPosition | XIMStatusCallbacks
XIMPreeditArea | XIMStatusCallbacks
XIMPreeditNothing | XIMStatusCallbacks
XIMPreeditNone と XIMStatusNone のどちらか一方または両方を含むスタイルの組み合わせはサポートしていません。
ATOK8 を使用しているとき、Xlib API で定義されている入力コンテクストの各値のサポート状況は次のとおりです。
XNClientWindow (クライアントウィンドウ)
XNFocusWindow (フォーカスウィンドウ)
XNFilterEvents (Xlib が必要とするイベント)
次の XNPreeditAttributes (前編集表示属性)
XNArea (表示領域またはクリップ領域)
XNAreaNeeded (表示領域のサイズ提示)
ただし、XNAreaNeeded は値の取得 (Get) だけ可能です。
XNSpotLocation (挿入点の位置)
XNColormap (カラーマップ)
XNFontSet (フォントセット)
XNLineSpacing (行間)
XNPreeditStartCallback (前編集表示開始コールバック)
このコールバック関数の戻り値は無視されます。
XNPreeditDrawCallback (前編集描画コールバック)
XNPreeditDoneCallback (前編集表示終了コールバック)
次の XNStatusAttributes (状態表示属性)
XNArea (表示領域)
XNAreaNeeded (表示領域のサイズ提示)
ただし、XNAreaNeeded は値の取得 (Get) だけ可能です。
XNColormap (カラーマップ)
XNFontSet (フォントセット)
XNStatusStartCallback (状態表示開始コールバック)
XNStatusDrawCallback (状態表示描画コールバック)
コールバック関数に渡される表示データは文字列に限られます。ビットマップデータは渡されません。
XNStatusDoneCallback (状態表示表示終了コールバック)
XNResourceName (リソース名)
ATOK8 は入力コンテクストごとの設定をリソースデータベースから取得しません。
XNResourceClass (リソースクラス)
ATOK8 は入力コンテクストごとの設定をリソースデータベースから取得しません。
XNGeometryCallback (ジオメトリコールバック)
ATOK8 はジオメトリコールバックを使用しません。
次の XNPreeditAttributes (前編集表示属性)
XNStdColormap (標準カラーマップ)
XNColormap を使用してください。
XNForeground (表示色)
ATOK8 は独自に色を使用して描画するため、この色指定は無視されます。
XNBackground (背景色)
ATOK8 は独自に色を使用して描画するため、この色指定は無視されます。
XNBackgroundPixmap (バックグラウンド Pixmap)
ATOK8 は独自に色を使用して描画するため、この Pixmap 指定は無視されます。
XNCursor (カーソル形状)
ATOK8 は前編集領域のカーソル形状を指定しません。
XNPreeditCaretCallback (前編集キャレット制御コールバック)
ATOK8 はキャレット制御を行いません。
次の XNStatusAttributes (状態表示属性)
XNStdColormap (標準カラーマップ)
XNColormap を使用してください。
XNForeground (表示色)
ATOK8 は独自に色を使用して描画するため、この色指定は無視されます。
XNBackground (背景色)
ATOK8 は独自に色を使用して描画するため、この色指定は無視されます。
XNBackgroundPixmap (バックグラウンド Pixmap)
ATOK8 は独自に色を使用して描画するため、この Pixmap 指定は無視されます。
XNLineSpacing (行間)
ATOK8 は状態表示文字列を複数行で表示しません。
XNCursor (カーソル形状)
ATOK8 は状態表示領域のカーソル形状を指定しません。
X ライブラリ (libX11) と ATOK8 間の通信では Ximp バージョン 4.0 と呼ばれるプロトコルが使われていますが、ATOK8 では Ximp で規定されているイベントフロータイプのうち、次の 2 種類をサポートしています。
フロントエンドタイプ 1 (XIMP_FE_TYPE1 [デフォルト])
同期式バックエンドタイプ 2 (XIMP_SYNC_BE_TYPE2)
これらのイベントフロータイプは、クライアントを起動する環境で次のように環境変数を設定しておくことで指定できます。
C シェルの場合
sun% setenv XIMP_TYPE XIMP_SYNC_BE_TYPE2 |
Bourne シェルまたは Korn シェルの場合
$ XIMP_TYPE=XIMP_SYNC_BE_TYPE2 $ export XIMP_TYPE |
ATOK8 は、接続するディスプレイが持っているどのスクリーンにでも使用することができます。
ATOK8 は次のように、使用するカラーマップをウィンドウごとに決定します。
PreeditArea ウィンドウ
PreeditPosition ウィンドウ
StatusArea ウィンドウ
これらのウィンドウはクライアントウィンドウまたはフォーカスウィンドウの子ウィンドウとして作成されます。このため、ビジュアルクラスと深さは CopyFromParent で親ウィンドウに合わせます。
カラーマップの優先順位は次のとおりです。
1. 入力コンテクストの値 XNColormap で指定されたカラーマップ
2 .親ウィンドウのカラーマップ
PreeditNothing ウィンドウ
StatusNothing ウィンドウ
ビジュアルクラスと深さはクライアントウィンドウに合わせます。
カラーマップの優先順位は次のとおりです。
1. 入力コンテクストの値 XNColormap で指定されたカラーマップ
2. クライアントウィンドウのカラーマップ
補助ウィンドウ
メッセージウィンドウ
ビジュアルクラスと深さはクライアントウィンドウに合わせます。
カラーマップの優先順位は次のとおりです。
1. 入力コンテクストの値 XNPreeditAttributes に対して XNColormap で指定されたカラーマップ
2. クライアントウィンドウのカラーマップ