Scintilla/Key bindings

Last-modified: 2008-02-24 (日) 16:40:04

キーバインド

デフォルトのコマンドのキーバインドは、KeyMap.cxxファイルのKeyMap::MapDefault[]定数によってScintillaソースに定義されている。
子のテーブルは引数なしでSCI_*メッセージにキー定義をマップする(ほとんどのキーボードコマンドは前章で議論されるが、引数を持っていないScintillaコマンドでもマップできる)。
あなた自身の要件に合うようにマッピングを変更できる。

  • SCI_ASSIGNCMDKEY(int keyDefinition, int sciCommand)
  • SCI_CLEARCMDKEY(int keyDefinition)
  • SCI_CLEARALLCMDKEYS
  • SCI_NULL

keyDefinition

キー定義は、下位16ビットのキーコードと高位の16ビットの修飾キーを含む。
keyCodeとkeyModは次のように組み合わせる:

keyDefinition = keyCode + (keyMod << 16)

キーコードは表示または制御文字あるいはSCK_*列挙型からのキーであり、以下を含む:

SCK_ADD, SCK_BACK, SCK_DELETE, SCK_DIVIDE, SCK_DOWN, SCK_END, SCK_ESCAPE, SCK_HOME, SCK_INSERT, SCK_LEFT, SCK_MENU, SCK_NEXT (Page Down), SCK_PRIOR (Page Up), SCK_RETURN, SCK_RIGHT, SCK_RWIN, SCK_SUBTRACT, SCK_TAB, SCK_UP, and SCK_WIN


修飾語はゼロ、SCMOD_ALT、SCMOD_CTRLおよびSCMOD_SHIFTの組み合わせである。
もしテーブルを組み立てる場合、修飾語なしの意味である値0のSCMOD_NORMを使う。

SCI_ASSIGNCMDKEY(int keyDefinition, int sciCommand)

sciCommandによって識別されるScintillaコマンドにキー定義を割り当てる。
sciCommandは引数のないどんなSCI_*コマンドでもよい。

SCI_CLEARCMDKEY(int keyDefinition)

アクションSCI_NULLを割り当てることにより、何もしないキー定義を作ることができる。

SCI_CLEARALLCMDKEYS

このコマンドは、空のマッピングテーブルをセットすることによりすべてのキーボードコマンドマッピングを削除する。

SCI_NULL

SCI_NULLは何もしないで、何もしない動作をキーに割り当てられた値である。
SCI_NULLはフォーカスを動かすときに親ウインドウに伝播しない。
もし標準のプラットフォームの使い方をしたいなら定数0を指定しても良い。