開發和下載開源軟體

瀏覽 OpenKEEPS Ver.2 便利な機能 その2

category(Tag) tree

file info

category(Tag)
OpenKEEPS2.x
檔案名
ok2_function_2
最後更新
2018-02-23 16:48
類型
Plain Text
editor
S.Sato
描述
OpenKEEPS Ver.2の便利な機能を解説した文章 独自コールバックエントリとサービス関数について
語言
Japanese
translate
------------------------------------------------------------------------------

                     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や入力文字列の種類を判別したいケースは稀にあるので、
              そういった場合に使います。