次: , 前: Mouse Events, 上: Input Events


20.5.4 クリックイベント

ユーザーがマウスのボタンを同じ場所で押し下げてから離すと、 クリック(click)イベントが生成されます。 マウスクリックイベントはつぎの形式です。

     (event-type
      (window buffer-pos (x . y) timestamp)
      click-count)

通常の各要素の意味はつぎのとおりです。

event-type
どのマウスボタンが使われたかを表すシンボル。 ボタンを左から右へ番号を付けて、 シンボルmouse-1mouse-2...の1つである。

ファンクションキーの場合と同様に、 アルト、コントロール、ハイパー、メタ、シフト、スーパーの 修飾キーを表す接頭辞`A-'、`C-'、`H-'、`M-'、 `S-'、`s-'も使える。

このシンボルはイベントのイベント型としての役割も果たす。 キーバインディングはイベント型でイベントを指定する。 したがって、mouse-1に対するキーバインディングは、 イベント型event-typemouse-1であるすべてのイベントに適用される。

window
クリックを行ったウィンドウ。
x, y
ウィンドウwindowの左上端を(0 . 0)とした クリック位置のピクセル単位の座標。
buffer-pos
クリックした文字のバッファ内位置。
timestamp
イベントが発生したときのミリ秒単位の時刻。 (この値は、Emacs Lispの整数の範囲では約5時間で一周するので、 時間的に近傍のイベントを関連付ける場合にのみ有用である。)
click-count
同じマウスボタンを素早く押し下げた繰り返し回数。 see Repeat Events

モード行やスクロールバーなどのスクリーンの特別な部分で発生したイベントでは、 buffer-posxyの意味は少々異なります。

スクロールバーの内側でのクリックでは、 buffer-posはシンボルvertical-scroll-barhorizontal-scroll-barであり、 (x . y)(portion . whole)に 置き換えられます。 ここで、portionはスクロールバーの先頭や左端からのクリック位置、 wholeはスクロールバー全体の長さです。

モード行やウィンドウwindowを右隣のものと区切る 縦方向の区切り行の内側では、 buffer-posはシンボルmode-linevertical-lineです。 モード行では、yは意味のあるデータではありません。 縦方向の区切り行では、xは意味のあるデータではありません。

1つの特別な場面では、 buffer-posは単一のシンボルではなく(上に述べた1つの)シンボルを 含んだリストになります。 イベントに対する仮想的なプレフィックスキーを入力ストリームに挿入すると このようになります。 See Key Sequence Input