本書は,ユーザが漢字変換のキー定義をできるようにするライブラリである IMLIB についての解説書です。
改訂/更新情報: | 日本語 OpenVMS V6.2『IMLIB/OpenVMS ライブラリ・リファレンス・マニュアル』の改訂版です。 |
ソフトウェア・バージョン: | 日本語OpenVMS Alpha V7.2 |
日本語OpenVMS VAX V7.2 |
本書の著作権はコンパックコンピュータ株式会社が保有しており,本書中の解説および図,表はコンパックの文書による許可なしに,その全体または一部を,いかなる場合にも再版あるいは複製することを禁じます。
また,本書に記載されている事項は,予告なく変更されることがありますので,あらかじめご承知おきください。万一,本書の記述に誤りがあった場合でも,コンパックは一切その責任を負いかねます。
本書で解説するソフトウェア(対象ソフトウェア)は,所定のライセンス契約が締結された場合に限り,その使用あるいは複製が許可されます。
次へ | 目次 | 索引 | DOC HOME |
本書は,ユーザ・キー定義ライブラリ,IMLIB/KEYBIND を使用したアプリケーションの開発者のためのマニュアルです。IMLIB/KEYBIND は,ユーザが漢字変換のキー定義をできるようにするライブラリです。IMLIB を使用してアプリケーションを開発すると,ユーザによるキー定義で各種のプログラムを動作することができます。ユーザによるキー定義の方法については,『ユーザ・キー定義 利用者の手引き』を参照してください。
本書は6つの章と2つの付録から構成されています。
第 1 章 | IMLIBの機能について説明します。 |
第 2 章 | アプリケーションを作成するための具体的な方法について説明します。 |
第 3 章 | ACTIONを実行するモジュールの作成方法について説明します。 |
第 4 章 | アプリケーションの作成について説明します。 |
第 5 章 | IMLIBルーチンの一覧です。 |
第 6 章 | IMLIBを使ったプログラムの開発について説明します。 |
付録 A | KEYSYM TO KEYCODE がサポートする KEYSYM の一覧です。 |
付録 B | IMLIBで定義済みのシンボルについて説明します。 |
本書では,以下の表記法を使用しています。
表記法 | 意味 |
---|---|
[Return] | 四角形で囲まれたこの記号は,キーボードのキーを押すことを示します。たとえば,[Return]は Returnキーを押すことを示します。 |
[Ctrl/x] | [Ctrl/x] の記号は,Ctrl キーを押しながら,同時にあるキーを押すことを示します。たとえば,[Ctrl/c] は Ctrl キーと c 文字キーを同時に押します。 |
[ ] | 大括弧は,項目が省略可能であることを示します。 |
英大文字 | 英大文字は,コマンド,修飾子,パラメータ,ルーチン名,ファイル名,ファイル保護コード名,システム特権の短縮形を示します。 |
この章は,ユーザ・キー定義ライブラリ IMLIB を使うことで実現できる機能について書かれています。
1.1 ユーザによるかな漢字変換のキー定義
IMLIBは,かな漢字変換のキーをユーザが定義することができる機能を提供します。IMLIBが定める規則に従ってアプリケーションを作成すると,ユーザはKEYBINDファイルを書き換えることで,アプリケーションの中でのかな漢字変換入力を自分の好みのキー定義で行うことができるようになります。KEYBINDファイルについての詳細は,『ユーザ・キー定義 利用者の手引き』を参照してください。
IMLIBを使ったユーザ・キー定義をサポートすることには,次のような利点があります。
アプリケーションを作るときに必要な規則は,本書に書かれています。ユーザによるかな漢字変換キー定義の方法については,『ユーザ・キー定義 利用者の手引き』を参照してください。
1.2 ユーザによるかな漢字変換の付加情報の指定
IMLIBは,KEYBINDファイルによるかな漢字変換キー定義に加えて,かな漢字変換に関連する環境の指定を行う機能を,提供しています。このような付加情報の指定は,PROFILEファイルで行います。PROFILEファイルについての詳細は,『ユーザ・キー定義 利用者の手引き』を参照してください。
ユーザの指示どおりにアプリケーションが動作するためには,アプリケーションは PROFILEファイルに書かれている情報を検索し,その指示に従った動作をするように作成されなければなりません。
PROFILEに書かれた情報を獲得するにはGET PROFILE DATAを使います。
PROFILEには,複数のアプリケーションで共通に使われる情報と,個々のアプリケーションで使われる情報の両方を書くことができます。共通に使われる情報のINDEXは,『ユーザ・キー定義 利用者の手引き』を参照してください。アプリケーションの動作環境によっては,共通のINDEXが意味をなさない場合もありますので,アプリケーションには共通のINDEXをすべてサポートする義務はありません。しかし,できるだけ多くの共通のINDEXをサポートすることが望まれます。
アプリケーションごとのINDEXはアプリケーションが独自に決めることができます。INDEXは次のような形式に従ってください。
facility-name.any-string |
たとえば, XYZというプロダクトが,エラーのときにベルを鳴らすかどうかをPROFILE の中で指定するようなときには,INDEXは
XYZ.ERROR.bell |
のようになります。そのVALUEには,文字列 "enable" または "disable" をとるということをアプリケーションが独自に決めることができます。この場合は,PROFILEの中に
XYZ.ERROR.bell : enable |
と書けば,そのアプリケーションでエラーが発生したときにはベルが鳴ることになります。
PROFILEのINDEXは大文字と小文字を区別しません。したがって
XYZ.ERROR.bellとxyz.error.bellは同じINDEX とみなされます。
これに対してGET PROFILE DATAが返すVALUEは,PROFILEに書かれたとおりですので,大文字と小文字を区別して扱います。
この章には,アプリケーションを作成するための具体的な方法が書かれています。
IMLIB の機能は,アプリケーションの中で使われる状況によって,次のように分類できます。
以下の節では,分類されたそれぞれの機能について説明します。
2.1 IMLIBの初期化
IMLIB の初期化は以下の手順に従って行われます。
OPEN PROFILE によって PROFILE をオープンします。OPEN PROFILE が返す UNIT ID は,これ以降 IMLIB のライブラリを呼び出すときに使われます。複数のかな漢字変換コンテキストを使うアプリケーションは,必要なコンテキストの数だけ OPEN PROFILE を呼びます。
GET PROFILE DATA によって,PROFILE に書かれた情報を読み込みます。PROFILE の情報に,キー定義以外のかな漢字変換の環境を定義するものが含まれています。アプリケーションは,できる限り PROFILE に書かれた情報に従って動作することが望まれます。
SET KEYBIND によって,バイナリ形式の KEYBIND ファイルを読み込みます。
以上で IMLIB の初期設定は完了します。次はキー入力処理に移ります。
2.2 IMLIBの終了
IMLIB の使用を終了するときに使われる機能について,以下に示します。
CLOSE PROFILE は,PROFILE ファイルをクローズして IMLIB の使用を終了します。CLOSE PROFILE は,IMLIB を使った機能をすべて終了した後に呼ばれます。
SET PROFILE DATA によって,PROFILE のデータを変更することができます。SET PROFILE DATA は,メモリ上のデータを変更します。変更された内容をファイルに書き込むには WRITE PROFILE を使います。
WRITE PROFILE は,SET PROFILE DATA で変更された PROFILE の内容をファイルに書き込むときに使われます。
2.3 キー入力処理
キー入力処理はIMLIBを使う上での核となる部分です。この節は,キー入力処理を行うアプリケーションの作成方法について書かれています。
2.3.1 アプリケーションとの関係
アプリケーションが,IMLIB を使ってキー入力を処理する概念を示す図を,
図 2-1 に示します。
図 2-1 IMLIBとアプリケーションの関係
2.3.2 かな漢字変換入力インターフェイスの範囲
かな漢字変換入力を行うには,いくつかのレベルがあります。IMLIB は,パーソナル・コンピュータ用に市販されているワードプロセッサ・プログラムの 1 つである「一太郎」 1 と同程度のかな漢字変換入力インターフェイスの実現を前提に,設計されています。
市販されているパーソナル・コンピュータ上のワードプロセッサ・プログラムは一般に,日本語 OpenVMS 独自のかな漢字変換インターフェイス (JEDI, EVEJなどのインターフェイス) よりも,複雑なインターフェイスを持っています。最も典型的な例はスペース・キーの機能です。スペース・キーは,キーが押されたときの状態によって通常のスペース・キーとして動作したり,かな漢字変換キーとして動作したりします。また,自動ローマ字かな変換の機能なども,ワードプロセッサのインターフェイスの実現を複雑にしているものの 1 つです。
1 一太郎は株式会社ジャスト・システムの登録商標です。 |
アプリケーションは,KEYBINDによって提供されるキー定義の情報やPROFILEによって指定される付加情報以外のものを,すべて用意しなければなりません。たとえば,以下に示すものはアプリケーションが用意するものです。
2.3.4 処理の流れ
IMLIB を使ったプログラムの中で実行される処理の流れを,図 2-2 に示します。これはIMLIBのCバインディング・インターフェイスで記述した例です。VMSバインディングの場合は,GET KEY ACTIONが2つの呼び出し(SET KEYとGET ACTION) に分かれます。これによって処理の流れも変わります。
図 2-2 処理の流れ
キー入力モジュールは,ユーザのキー入力を受け取ります。IMLIB を使うためには,入力は 1 つのキーごとに行わなければなりません。キー入力のメカニズムは,オペレーティング・システムや使用しているユーザ環境によって異なります。IMLIB は,OpenVMS オペレーティング・システム,ULTRIX オペレーティング・システム,Digital UNIX オペレーティング・システム,およびそれらの上に構築されている DECwindows のインターフェイスを考慮して作られています。
2.3.5.1 OpenVMS
OpenVMS でのキー入力には,QIO が使われます。QIO は入力のターミネータとしてエスケープ・シーケンスを指定することができますので,キーボード上のファンクション・キー数字キーパッドや編集キーを,1 回の QIO で読み込むことができます。読み込まれたキーは,エスケープ・シーケンス,文字キーともに ENCODE KEY を呼び出すことで IMLIB の KEYCODE に変換することができます。
2.3.5.2 DECwindows
DECwindows では,XLookupString によってキー入力を読み込みます。XLookupString は,X Window System で定義されているKEYSYMの値を返しますので,アプリケーションは,IMLIB が提供するルーチン KEYSYM TO KEYCODE を使って,KEYCODE の値を得ます。
2.3.6 ローマ字かな変換
ワードプロセッサなどでよく見られる,キー入力時の自動ローマ字かな変換のサポートは,アプリケーションが行う必要があります。自動ローマ字かな変換をサポートするかどうかは,アプリケーション開発者の任意です。
2.3.7 文字列バッファ
ワードプロセッサで見られるのと同等なユーザ・インターフェイスを提供するには,文字列バッファが 3 個必要です。それぞれのバッファの役割を以下に示します。
ユーザが入力した文字キーを,そのまま保持しておくバッファです。このバッファの内容は,変換対象や入力文字列編集の対象となる文字列に対応します。変換が確定すると,このバッファの内容は消去されます。
自動ローマ字かな変換を行った結果を保持するバッファです。自動ローマ字かな変換を行わない場合や,かなキー入力を行った場合には,キー入力バッファの内容と同じになります。このバッファの内容は,変換対象や入力文字列編集の対象となります。変換が確定するとこのバッファの内容は消去されます。
スクリーン上と同じイメージを保持します。かな漢字変換の結果はこのバッファに反映されます。
2.3.8 入力文字列編集
ユーザにとって使いやすい入力インターフェイスを提供するためには,入力文字列を編集できる機能を提供することは不可欠です。入力文字列編集とは,たとえばユーザが "日本語" と入力しようとしたのに,間違えて "nijongo" というようなローマ字を入力してしまったときに,カーソルを "j" まで移動して,"h" と置き換えるような作業のことを言います。正しい文字と置きかわった時点で「変換キー」を押すと,かな漢字変換を行うことができるということになります。
入力文字列編集において問題となる点のうち,自動ローマ字かな変換を行っているときに限定される点については,
第 2.3.9 項 で説明します。この節では,入力文字列編集について一般的な説明を行います。
2.3.8.1 入力文字列編集の条件
入力文字列編集を行うのは,内部状態が「入力状態」にあるときです。次のような条件の場合に内部状態が「入力状態」になります。
次へ | 目次 | 索引 |