瀏覽 OpenKEEPS Ver.2 便利な機能 その2
------------------------------------------------------------------------------
OpenKEEPS Ver.2 便利な機能解説 その2
独自コールバックエントリとサービス関数
2003/04/15
文責: さとー
------------------------------------------------------------------------------
■ はじめに
この文章は、OpenKEEPS Ver.2の機能のうち、ややシステム寄りの機能である独自
コールバックエントリと、使用者の利便性を考えて定義してあるサービス関数群を
説明します。
■ OpenKEEPS独自コールバックエントリ
・独自コールバック一覧
kp.callback.OnLoad
kp.callback.OnFirstBoot
kp.callback.OnBoot
kp.callback.OnGhostChanged
kp.callback.OnWindowStateRestore
kp.callback.OnShellChanged
kp.callback.OnSave(OpenKEEPSのセーブファイル保存時) *1
kp.callback.OnBackup(ネットワーク更新成功時の再起動直前) *1
kp.callback.OnUpdateComplete(ネットワーク更新完了(更新有)時の再起動後) *1
Execute.*
*1 …Ver.2.1.1から使用可能
・どんなエントリなのか
「kp.callback」で始まるエントリの場合は対応するイベントの際、「Execute」で
始まるエントリは対応するNOTIFYの際に呼ばれます。通常のエントリ呼び出しでは
なく、「System.Callback」で始まる華和梨のシステムエントリと同様、getコマンド
を使ってエントリ内の全単語を評価することが特徴です。
評価が行われるのは、kp.callback系ではトーク処理の直前です。なお、Execute系は
NOTIFY通知に伴い処理される為、トークは返せません。
・どんな目的で使うか
このエントリは、主にSAORIモジュールを便利に使う為に存在します。
SAORIモジュールによっては、NOTIFYで通知されるHWNDが必要だったり、シェルが
表示された瞬間に処理したいことがあります。また、こうした機能をSAORIモジュール
ごとに複数記述する必要もあります。これらのコールバックエントリを使うと、
こうした課題に答えることが可能です。
・どのファイルに書くのか
本来はどのファイルでも構いません。ですが、それでは似たような処理が分散しがち
です。そこで、kp.callback系はdict-keeps-setting.kisに、Execute系は
ghost-keeps-notify.kisにテンプレートが記述してあります。ここに書くことを
おすすめします。
■ サービス関数
OpenKEEPSは、dict-keeps-survicefunc.kisに、ユーザの利便性のために設置した
サービス関数を持っています。これらを使うと、ゴーストの記述でしばしば存在する
定型処理を、より簡潔に分かりやすく記述できます。
以下に各関数の説明を列挙します。
○ Referenceコマンド
第1引数 : Reference番号
戻り値 : 該当するReferenceの内容
機能 : Referenceを参照する
解説 : 華和梨はReferenceの参照が、「System.Request.Reference0」と
非常に長いです。そこで、$(Reference 0)といったように簡単に
参照できるようにしたコマンドです。
○ raisesaoriコマンド
第1引数 : 呼ぶSAORIモジュールのエイリアス名
第2引数以降 : SAORIモジュールに渡す引数(省略可能)
機能 : \![raise]タグ経由でSAORIモジュールを呼ぶ
解説 : トークの途中で演出系のSAORIモジュールを呼び出したいことが
しばしばあります。通常、このような場合は\![raise]タグを
使用し、コールバックイベントでSAORIモジュールを呼びます。
しかし、この方法は頻出する割に煩雑なので、コマンドとして
パッケージ化したものがraisesaoriコマンドです。
戻り値が無いことを除けば、callsaoriコマンドと同じ感覚で
使用できます。raisesaoriコマンドは、バルーン上のトークが
raisesaoriコマンドの場所に来た時、SAORIモジュールを呼びます。
○ Nonoverlapコマンド
第1引数 : エントリ名
戻り値 : なし
機能 : 指定したエントリを、エントリ内の単語が一巡するまで単語が重複
しない、特殊なエントリに変換する
解説 : 他の栞、例えば「美坂」では、エントリ内の単語が一巡するまで単語を
重複させないオプションが存在します。一方、華和梨にはそうした機能
が無いので、スクリプトで作った代用オプションがNonoverlapコマンド
です。「Nonoverlap npw」とすると、npwエントリが重複しないエントリ
に見えるようになります。
このコマンドを使うと、トラブル防止の為に指定したエントリが
writeprotectされます。通常はkp.callback.OnLoadで記述すると
いいでしょう。
○ Sequentialコマンド
第1引数 : エントリ名
戻り値 : なし
機能 : 指定したエントリを、エントリ内の単語が順に呼ばれる特殊なエントリ
に変換する
解説 : Nonoverlapと同じように、エントリの呼び方を変換するコマンドです。
Sequentialコマンドは、指定したエントリを呼ぶと、登録した単語順に
呼び出す特殊なエントリに変換するコマンドです。これもスクリプトに
よる代用コマンドです。
このコマンドを使うと、トラブル防止の為に指定したエントリが
writeprotectされます。通常はkp.callback.OnLoadで記述すると
いいでしょう。
○ iiコマンド
第1引数 : \![]タグのコマンド名(open,biff,raise…)
第2引数以降 : \![]タグの引数
戻り値 : 完成した\![]タグ
機能 : \![]タグを簡単に書く
解説 : \![changeghost,まゆら]など、\![]形式のタグは頻繁に使います。
しかし、華和梨では「,」がエスケープ対象のため、\![]タグの
記述は面倒です。それを簡単に記述できるようにしたのがiiコマンド
です。$(ii open browser "http://kawari.sf.net/")と書けば、
\![open,browser,http://kawari.sf.net]に置き換わります。
○ anchorコマンド
第1引数 : \_aタグ選択時のID
第2引数 : アンカーの表示文字列
戻り値 : \_a[ID]〜\_aの文字列
機能 : アンカータグの対を簡単に書く
解説 : アンカータグは、\q[]タグより汎用に使える便利なタグです。しかし、
タグの使用法が他と比べやや変則的で、タグの閉じ忘れも起き易いです。
anchorコマンドは、これを簡単に書けるようにしたコマンドです。
$(anchor MATERIA 伺か)と書けば、\_a[MATERIA]伺か\_aに置き換わり
ます。
○ 文字種判別コマンド群(isupper、islower、isdigit、isalpha、isalnum)
第1引数 : 文字種を判別する文字列
戻り値 : 対象文字列が該当文字種だけから成っていた場合true、そうでなければ
false
機能 : 文字列の文字種類を判別する
解説 : 文字列中の文字種類を判別します。isupperは英大文字、islowerは
英小文字、isdigitは整数、isalphaは英字、isalnumは英数字のみの
文字列の場合にtrueを返します。
Referenceや入力文字列の種類を判別したいケースは稀にあるので、
そういった場合に使います。
| |