各イベントにはイベント型(event type)があって、 キーバインディング処理のためにイベントを分類します。 キーボードイベントでは、イベント型はイベントの値に等しいです。 したがって、文字に対するイベント型は文字であり、 ファンクションキーに対するイベント型はシンボルそのものです。 リストであるイベントでは、イベント型はリストのcarにあるシンボルです。 したがって、イベント型はつねにシンボルか文字です。
イベント型が同じであるイベントは、キーバインディングに関する限り同じです。 つまり、それらは同じコマンドを実行します。 しかし、これは、それらが必ずしも同じことを行うという意味ではありません。 イベント全体を調べてなにを行うかを決定するコマンドもあります。 たとえば、マウスイベントの生起位置を使って、 バッファのどの部分を処理するかを決めるコマンドもあります。
イベントをおおまかに分類すると有用な場合もあります。 たとえば、他の修飾キーやマウスボタンには関係なしに、 <META>キーが使われているイベントかどうか調べたいことがあるでしょう。
関数event-modifiers
やevent-basic-type
は、
そのような情報を便利に与えるためのものです。
この関数は、eventにある修飾子のリストを返す。 修飾子はシンボルであり、
shift
、control
、meta
、alt
、hyper
、super
である。 さらに、マウスイベントシンボルの修飾子リストには、 必ず、click
、drag
、down
の1つが含まれる。引数eventは、イベントオブジェクト全体であるか、単なるイベント型である。
例を示す。
(event-modifiers ?a) ⇒ nil (event-modifiers ?\C-a) ⇒ (control) (event-modifiers ?\C-%) ⇒ (control) (event-modifiers ?\C-\S-a) ⇒ (control shift) (event-modifiers 'f5) ⇒ nil (event-modifiers 's-f5) ⇒ (super) (event-modifiers 'M-S-f5) ⇒ (meta shift) (event-modifiers 'mouse-1) ⇒ (click) (event-modifiers 'down-mouse-1) ⇒ (down)クリックイベントに対する修飾子リストには
click
が明示的に含まれるが、 イベントシンボルの名前自体には‘click’は含まれない。
この関数は、eventにあるキーやマウスボタンを返す。 たとえばつぎのとおり。
(event-basic-type ?a) ⇒ 97 (event-basic-type ?A) ⇒ 97 (event-basic-type ?\C-a) ⇒ 97 (event-basic-type ?\C-\S-a) ⇒ 97 (event-basic-type 'f5) ⇒ f5 (event-basic-type 's-f5) ⇒ f5 (event-basic-type 'M-S-f5) ⇒ f5 (event-basic-type 'down-mouse-1) ⇒ mouse-1