日本語OpenVMS
IMLIB/OpenVMS ライブラリ・
リファレンス・マニュアル


前へ 次へ 目次 索引


表 4-1 に,現在の状態とACTIONによる状態遷移をまとめています。表の中の数字は 図 4-1 の状態遷移を示す矢印に付けられた数字と一致しています。表の中で使われている表記は以下のとおりです。

表 4-1 状態間の遷移
ACTION 初期状態 入力状態 かな変換状態 漢字変換状態
START 入力状態 (1) error error error
START_SELECTED 入力状態 (1) error error error
ECHO error 入力状態 (2) error error
カーソル error 入力状態 (2) error error
かな変換 error かな変換状態 (3) かな変換状態 (6) かな変換状態 (13)
CONVERT error 漢字変換状態 (4) 漢字変換状態 (7) no action
DONE no action 初期状態 (5) 初期状態 (8) 初期状態 (11)
文節操作 error error error 漢字変換状態 (10)
RESTORE_STRING error no action 入力状態 (9) 入力状態 (12)
RESTORE_ECHO error かな変換状態 (3) かな変換状態 (6) かな変換状態 (13)


第 5 章
IMLIBライブラリ・ルーチン

この章では,IMLIB ルーチンについて説明します。

5.1 IMLIBルーチンとは?

IMLIBルーチンとは,ユーザが,かな漢字変換のキー定義をできるようなアプリケーションを作成するためのルーチンです。

5.1.1 プログラミング言語

IMLIBルーチンは,C言語用のインターフェイス(Cバインディング) と,C以外の言語のためのインターフェイス(VMSバインディング)の2つのインターフェイスを提供します。

5.2 PROFILEに関連するルーチン

5.2.1 PROFILEのオープン

IMLIBを使うアプリケーションは,まず最初にPROFILEをオープンします(OPEN PROFILE)。 OPEN PROFILEをしなければ,IMLIBの機能を使うことはできません。通常はアプリケーションの起動時にOPEN PROFILEが実行されます。OPEN PROFILEによってPROFILEの情報は,すべてメモリ中に読み込まれます。OPEN PROFILEが返す整数値UNIT IDは,IMLIBの他のルーチンを呼ぶときに使われます。UNIT IDによって複数のコンテキストをコントロールします。

5.2.2 PROFILEのクローズ

アプリケーションは,IMLIBを使い終った後でPROFILEをクローズします (CLOSE PROFILE)。CLOSE PROFILEを行った後は,IMLIBの機能を使うことはできません。通常はアプリケーションの終了時に CLOSE PROFILEを実行します。

5.2.3 PROFILEデータの検索

PROFILEに書かれたデータを検索するには,GET PROFILE DATAを使います。GET PROFILE DATAは,OPEN PROFILEによってメモリ中に読み込まれたデータを検索して,値を返します。

5.2.4 PROFILEデータの変更

アプリケーションがPROFILEに書かれたデータを書き換えるには,SET PROFILE DATAを使います。SET PROFILE DATAは,メモリ中に読み込まれたPROFILEのデータを変更しますので,その後の GET PROFILE DATAは変更の影響を受けます。 WRITE PROFILEによって変更されたメモリ中のデータが,ファイルに書き込まれます。

5.2.5 PROFILEデータの書き込み

SET PROFILE DATAによって変更されたメモリ中の内容をファイルに反映させるには, WRITE PROFILEを使います。WRITE PROFILEを行わなければ,メモリ中の変更は CLOSE PROFILE によって失われます。

5.3 KEYBINDに関連するルーチン

5.3.1 KEYBIND情報の設定

アプリケーションは,SET KEYBINDによってバイナリ形式のKEYBINDファイルの内容をメモリ中に読み込みます。キーに対応するACTIONを得るためには,SET KEYBIND を実行しておかなければなりません。 KEYBIND情報は1つのUNIT IDにつき1つだけ設定できます。すでに,指定したUNIT IDによってKEYBIND情報が読み込まれていた場合には,古い情報は消えて新しいものと置き換わります。

5.3.2 ACTIONを得るルーチン (C バインディング)

Cバインディングでは,GET KEY ACTIONによってキーに定義されたACTION の情報を得ます。GET KEY ACTIONは1度に複数のACTIONを返しますので,アプリケーションは得られたACTIONを1つずつ実行します。

5.3.3 ACTIONを得るルーチン(VMSバインディング)

VMSバインディングでは,ACTIONを得るために2つのルーチンを使います。まず, SET KEYによってキーを通知して,GET ACTIONによってACTIONを得ます。GET ACTIONは1度に1つのACTIONだけしか返さないので,キーに複数のACTIONが定義されているときには,GET ACTIONを繰り返し呼んで,得られたACTIONを1つずつ実行します。

5.3.4 STATEを初期化するルーチン

KEYBINDの内部状態を初期化するには,INIT KEY STATEを使います。INIT KEY STATE によって,STATEは強制的に "initial" に移ります。GET KEY ACTION (Cバインディング) またはGET ACTION(VMSバインディング) によって,KEYBIND情報の中にそのキーが定義されていないというステータスが返されると,アプリケーションが「初期状態」にない場合には,INIT KEY STATEを呼んで KEYBINDの内部状態を初期化します。

5.3.5 直前のSTATEに戻すルーチン

最近のキーまたは最近の複数キーによるACTIONが不正な場合,またはその ACTIONの結果が不正の場合に, RECOVER KEY STATEによって,そのキーまたは複数キーが押される直前のSTATEに戻すことができます。アプリケーションがその時点の状態を保存していれば,その状態から実行を再開できます。

5.4 KEYCODEに関連するルーチン

5.4.1 キー名文字列からKEYCODEへの変換

GET KEYCODEは,キーの名前を示す文字列を,IMLIBが定義するKEYCODEに変換します。個々のキーのキー名については,『ユーザ・キー定義 利用者の手引き』を参照してください。

5.4.2 KEYCODEに対応する文字を返すルーチン

キーの中には,画面に表示される文字に対応するキーがあります。GET CHARACTERは, KEYCODEに対応する文字を得るのに使われます。指定された KEYCODEが,表示される文字に対応しない場合には,GET CHARACTERはそのことを示すステータスを返します。

5.4.3 半角カナのKEYCODE に対応する文字を返すルーチン

半角カナは文字コードセットによって若干コードが変わりますので,GET CHARACTER にコードセット指定のパラメータを加えた MC GET CHARACTER を使って文字を得ます。 MC GET CHARACTER は半角カナの KEY CODE 以外の入力に対しては GET CHARACTER と同じ動作を行います。

5.4.4 キーが発生するコードからKEYCODEへの変換

キーが発生するコードは,ENCODE KEYによってそのキーに対応するKEYCODEに変換されます。ENCODE KEYには数字キーパッド,編集キーパッド,ファンクション・キーが発生するエスケープ・シーケンスも正しく処理します。

5.4.5 KEYSYMからKEYCODEへの変換

DECwindowsのキー入力ルーチンXLookupString (3X11)が返すKEYSYMの値を KEYSYM TO KEYCODEに渡すと,KEYSYMはIMLIBのKEYCODEに変換されます。

5.4.6 半角カナからKEYCODEへの変換

半角カナは文字コードセットによって若干コードが変わりますので, ENCODE KEY にコードセット指定のためのパラメータを加えた MC ENCODE KEY を使って KEYCODE に変換します。 MC ENCODE KEY は半角カナ以外の入力に対しては ENCODE KEY と同じ動作を行います。


前へ 次へ 目次 索引