人気ブログランキング | 話題のタグを見る
補完中のキー入力

補完中のキー入力について。補完リストがアクティブになっている間は、キー入力に対応する通常のイベント(onKey なんとかとか)は発生しないようになります。そのかわり、onKeyCompletion イベントが発生します。


このイベントに、打たれたキーの名前と修飾キーの状態が渡されます。そいで、どのキーを押されたら~という判断をして、適当な値を返す。


適当な値というのは







var
COMPLETION_NOP = 0,
COMPLETION_CANCEL = 1,
COMPLETION_OK = 2,
COMPLETION_LIST_HOME = 3,
COMPLETION_LIST_END = 4,
COMPLETION_LIST_UP = 5,
COMPLETION_LIST_DOWN = 6,
COMPLETION_LIST_PGUP = 7,
COMPLETION_LIST_PGDN = 8,
COMPLETION_CARET_LEFT = 9,
COMPLETION_CARET_RIGHT = 10,
COMPLETION_CARET_DEL = 11,
COMPLETION_CARET_BS = 12;

というふうに定義してみました。



//補完中に表示不可能なキーが入力されるごとに呼ばれる
f.onKeyCompletion = function (arg, classname, methodname) {
var key = arg('key');
var modifier = arg('modifier');

// Ctrl+P で 1 つ上の項目を選択
if ((key == 'P') && (modifier & KEYMASK_CTRL))
return COMPLETION_LIST_UP;

// Ctrl+N で 1 つ下の項目を選択
if ((key == 'N') && (modifier & KEYMASK_CTRL))
return COMPLETION_LIST_DOWN;

return COMPLETION_NOP;
};

こんなふうにイベント内で使います。どちらかというと C-p、C-n より、古き良きダイヤモンドカーソルのほうが使いやすいかも。




昨日出てきた補完対象範囲の境界を何を以って決めるの? というのを考え中なのですが、ぜんぜんおもいつかなかったりするわけですよ。


by knife37 | 2004-11-23 00:57 | 妄想を申そう  | Top  | 
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
検索
最新のコメント
Hi! Good stu..
by lacedkl at 10:19
i think abou..
by MaybridabanTy at 06:31
Thank you!
by Roy at 20:27
Thank you!
by Patrick at 20:26
Great work!
by Andy at 20:25
Thank you!
by Rex at 20:23
Great work!
by Maggie at 20:23
I love it: ..
by siljb at 15:51
Keep up t..
by reizomo at 15:40
http://0buyp..
by affomfobe at 02:56
最新のトラックバック
フォロー中のブログ
ファン
記事ランキング
ブログジャンル
画像一覧