XLC(3X11) — NEWS-OS Programmer’s Manual
名称
XlcOpen, XlcClose, XlcBCKey, XlcMessage, XlcProperty, XlcOffTheSpot, XlcGetString, XlcConversionEnd, XlcOnTheSpot, XlcFrame, XlcOffset, XlcSendKey, XlcConversionStatus
− X Language Conversion ライブラリ
形式
char ∗XlcOpen (display, window, conversion, status)
Display∗display;
Windowwindow;
char∗conversion;
int∗status;
XlcClose (display, window, conversion)
Display∗display;
Windowwindow;
char∗conversion;
XlcBCKey (event)
XKeyEvent∗event;
XlcMessage (event)
XClientMessageEvent∗event;
XlcProperty (event)
XPropertyEvent∗event;
Window XlcOffTheSpot (display, window, conversion)
Display∗display;
Windowwindow;
char∗conversion;
XlcGetString (display, prop_return, event)
Display∗display;
unsigned char∗∗prop_return;
XPropertyEvent∗event;
XlcConversionEnd (display, window, conversion, discard)
Display∗display;
Windowwindow;
char∗conversion;
Booldiscard;
Window XlcOnTheSpot (display, window, conversion,
foreground, background,
border, border_width,
font8, font16, efont16,
frame_x, frame_y,
frame_width, frame_height,
x_offset, y_offset,
line_height, auto_offset)
Display∗display;
Windowwindow;
char∗conversion;
unsigned longforeground, background, border;
intborder_width, frame_x, frame_y;
int frame_width, frame_height;
intx_offset, y_offset, line_height;
Fontfont8, font16, efont16;
Boolauto_offset;
XlcFrame (display, frame_x, frame_y,
frame_width, frame_height,
x_offset, y_offset)
Display∗display;
intframe_x, frame_y,
intframe_width, frame_height,
intx_offset, y_offset;
XlcOffset (display, x_offset, y_offset)
Display∗display;
intx_offset, y_offset;
XlcConversionStatus ()
解説
X Language Conversion (XLC) ライブラリを使うことで、 アプリケーションは Language Conversion サーバに接続して 変換結果を得ることができます。
sjx 仮名漢字変換サーバを使って、日本語入力を得ることができます。
skx 韓国語変換サーバを使って、韓国語入力を得ることができます。
scx 中国語(台湾)変換サーバを使って、中国語入力を得ることができます。
Xlc ライブラリには、変換サーバのウィンドウを使うインターフェースと、 アプリケーションのウィンドウを使った "その場変換" のインターフェースがあります。
変換サーバのウィンドウを使うインターフェース
XlcOpen で変換言語名を取得します。 lcOffTheSpot で変換サーバに接続し、変換開始要求をだします。 XlcClose で接続を切ります。 XlcOffTheSpot は変換サーバのウィンドウ ID を返します。 変換サーバがすでに走っていれば、アプリケーションにたいして 変換開始通知を Client Message で送ります。 ClientMessage Event をアプリケーションが受け取った場合は、 XlcMessage を呼んで同期を取ります。 変換結果が確定したときは、PropertyNotify Event がアプリケーションにきます。 したがって、変換結果を受け取りたいウィンドウは、PropertyChangeMask を XSelectInput をするときに加えなければなりません。 PropertyNotify Event がきたときは、 XlcProperty を使って Xlc 用の Property かを判定できます。 Xlc 用の Property の場合は、 XlcGetString を使って、変換結果を取り出すことができます。 COMPOUND TEXT で返されます。
char ∗ XlcOpen (display, window, conversion, status)
Display∗display;
Windowwindow;
char∗conversion;
int∗status;
displayX サーバへのコネクションを指定します。
window変換を要求するウィンドウを指定します。
conversion要求する変換名を指定します。
sjx の場合は、"JAPANESE_CONVERSION" を指定します。
skx の場合は、"KOREAN_CONVERSION" を指定します。
scx の場合は、"CHINESE_CONVERSION" を指定します。
conversion に 0 を指定した場合、 現在設定されている locale (3) にしたがって 変換言語名を決定します。
"ja_JP"(日本)なら "JAPANESE_CONVERSION" になります。
"ko_KR"(韓国)なら "KOREAN_CONVERSION" になります。
"zh_TW"(台湾)なら "CHINESE_CONVERSION" になります。
status現在の変換サーバの状態が返ります。 0 なら無変換状態、0 以外なら変換状態です。
XlcClose (display, window, conversion)
Display∗display;
Windowwindow;
char∗conversion;
displayX サーバへのコネクションを指定します。
window変換を終了するウィンドウを指定します。
conversion終了する変換名を指定します。
Window XlcOffTheSpot (display, window, conversion)
Display∗display;
Windowwindow;
char∗conversion;
displayX サーバへのコネクションを指定します。
window変換を要求するウィンドウを指定します。
conversion要求する変換名を指定します。
XlcProperty (event)
XPropertyEvent∗event;
event受け取った PropertyNotify Event 構造体を指定します。
Xlc 用の Property なら 0 以外を、 そうでなければ 0 を返します。
XlcBCKey (event)
XKeyEvent∗event;
event受け取った KeyPress Event 構造体を指定します。
変換開始キーであるかどうかを判定します。 変換開始用のキーなら 0 以外を、 そうでなければ 0 を返します。
XlcGetString (display, prop_return, event)
Display∗display;
unsigned char∗∗prop_return;
XPropertyEvent∗event;
displayX サーバへのコネクションを指定します。
prop_returnデータを指すポインタを返します。 この結果のデータを解放するには、XFree を使用します。
event受け取った PropertyNotify Event 構造体を指定します。
XlcMessage (event)
XClientMessageEvent∗event;
event受け取った ClientMessage Event 構造体を指定します。
XlcConversionEnd (display, window, conversion)
Display∗display;
Windowwindow;
char∗conversion;
displayX サーバへのコネクションを指定します。
window変換を終了するウィンドウを指定します。
conversion終了する変換名を指定します。
XlcConversionStatus ()
変換サーバの状態を返します。 変換状態なら 0 以外を、 そうでなければ 0 を返します。
アプリケーションのウィンドウを使うインターフェース
XlcOnTheSpot で変換サーバに接続し、変換開始要求をだします。 このとき "その場変換" 用のパラメータを指定します。 XlcOffTheSpot は変換サーバのウィンドウ ID を返します。 この要求がくると、sjx, skx, and scx は要求されたウィンドウ上に 表示用のウィンドウを作り、このウィンドウに 指定されたフォアグラウンド、バックグラウンド、フォントを使って 変換中の表示を行います。
Window XlcOnTheSpot (display, window, conversion,
foreground, background,
border, border_width,
font8, font16, efont16,
frame_x, frame_y,
frame_width, frame_height,
x_offset, y_offset,
line_height, auto_offset)
Display∗display;
Windowwindow;
char∗conversion;
unsigned longforeground, background, border;
intborder_width, frame_x, frame_y;
intframe_width, frame_height;
intx_offset, y_offset, line_height;
Fontfont8, font16, efont16;
Boolauto_offset;
displayX サーバへのコネクションを指定します。
window変換を要求するウィンドウを指定します。
conversion要求する変換名を指定します。
sjx の場合は、"JAPANESE_CONVERSION" を指定します。
skx の場合は、"KOREAN_CONVERSION" を指定します。
scx の場合は、"CHINESE_CONVERSION" を指定します。
foreground表示用のフォアグラウンドを指定します。
background表示用のバックグラウンドを指定します。
border表示用のボーダ・カラーを指定します。
border_width表示用のボーダ幅を指定します。
font8表示用の半角フォントを指定します。
font16sjx 仮名漢字変換サーバと接続する場合は、日本語表示用の全角フォントを指定します。
skx 韓国語サーバと接続する場合は、韓国語表示用の全角フォントを指定します。
scx 中国語(台湾)変換サーバと接続する場合は、中国語表示用の全角フォントを指定します。
efont16sjx 仮名漢字変換サーバと接続する場合は、日本語外字表示用の全角フォントを指定します。
scx 中国語(台湾)変換サーバと接続する場合には、中国語外字表示用の全角フォントを指定します。
frame_x変換用フレームの X 座標を 変換要求ウィンドウの原点からの相対座標で指定します。
frame_y変換用フレームの Y 座標を 変換要求ウィンドウの原点からの相対座標で指定します。
frame_width変換用フレームの幅を指定します。
frame_height変換用フレームの高さを指定します。
x_offset表示用ウィンドウの現在位置の X 座標を 変換要求ウィンドウの原点からの相対座標で指定します。
y_offset表示用ウィンドウの現在位置の Y 座標を 変換要求ウィンドウの原点からの相対座標で指定します。
line_height表示用ウィンドウが 2 行以上になったときのために 1 行の高さを指定します。
auto_offsetTrue ならば、変換が確定したとき、表示用のウィンドウを自動的に移動します。
変換用フレームの概念を以下に示します。
+----------------------------------------------------------------+
| ^ ^ conversion requested window |
| | | |
| |frame_y | |
| | | |
| v | conversion frame |
|<------>+------------|-------------------------+ ^ |
|frame_x | | | | |
| | |y_offset | | |
| | v | | |
|<------------------->+-------+ | |frame_height |
| | x_offset | | | | |
| | +-------+ | | |
| | display window | | |
| +--------------------------------------+ v |
| <-------------- frame_width -----------> |
| |
+----------------------------------------------------------------+
変換用フレームとは、変換サーバの作る表示用ウィンドウの表示指定領域であり、 アプリケーションは変換サーバにこの領域を指定することができます。 frame_x, frame_y, frame_width, frame_height に 0 を指定すると変換要求ウィンドウすべての領域が変換用フレームに選ばれます。 さらにアプリケーションは、x_offset, y_offset で 表示用ウィンドウの現在値を指定することができます。 sjx, skx, and scx は指定された位置から表示用ウィンドウに変換中の表示を行います。 入力されていくにつれ表示用ウィンドウは右に伸びていきますが、 指定されたフレームの右端まできたら、表示用ウィンドウは左に移動し始めます。 さらに左端まできて 1 行がいっぱいになったら、 表示用ウィンドウは 2 行になります。 もし指定されたフレームの下までいっぱいになったら、 それ以上入力することはできません。 確定した場合、auto_offset に True が指定されているならば、 自動的に確定した長さ分だけ表示用ウィンドウを移動します。 (改行が入力された場合の特別な処理などは行いません。)
アプリケーションウィンドウのリサイズがおこった場合などに 変換用フレームの変更が必要な場合は、XlcFrame で サーバに通知します。
XlcFrame (display, frame_x, frame_y,
frame_width, frame_height,
x_offset, y_offset)
Display∗display;
intframe_x, frame_y, frame_width,
frame_height, x_offset, y_offset;
アプリケーションで、表示用ウィンドウの移動が必要な場合は、 XlcOffset でサーバに通知します。
XlcOffset (display, x_offset, y_offset)
Display∗display;
intx_offset, y_offset;
ClientMessage Event をアプリケーションが受け取った場合は、 XlcMessage を呼んで同期を取ります。 変換結果が確定したときは、PropertyNotify Event がアプリケーションにきます。 したがって、変換結果を受け取りたいウィンドウは、PropertyChangeMask を SelectInput をするときに加えなければなりません。 PropertyNotify Event がきたときは、 XlcGetString を使って、変換結果を取り出すことができます。 sjx, skx, scx の場合、COMPOUND TEXT で返されます。
関連事項
NEWS プログラマーズマニュアル 日本語入力の章 NEWS ユーザーズマニュアル 日本語入力の章
NEWS ソフトウェア取扱説明書 skx (韓国 大宇電子(株)より提供)
NEWS ソフトウェア取扱説明書 scx (台湾 Syntra Inforamtion System Inc. より提供)
Compound Text Encoding
/usr/lib/libXlc.a
その他
skx 韓国語変換サーバは、韓国の現地販売代理店より提供します。 scx 中国語(台湾)変換サーバは、台湾の現地販売代理店より提供します。
著作権
(c) 1989 1990 Sony Corporation
NEWS-OSRelease 4.2.1R