次: , 前: Click Events, 上: Input Events


20.5.5 ドラッグイベント

Emacsには、ドラッグイベントがあります。 ユーザーがマウスボタンを押し下げてから、 ボタンを離すまえに別の文字位置へマウスを動かすと ドラッグ(drag)イベントが発生します。 マウスのすべてのイベントのように、Lispではドラッグイベントは リストとして表現されます。 つぎのように、リストは開始マウス位置と終了位置を記録しています。

     (event-type
      (window1 buffer-pos1 (x1 . y1) timestamp1)
      (window2 buffer-pos2 (x2 . y2) timestamp2)
      click-count)

ドラッグイベントでは、シンボルevent-typeの名前には 接頭辞`drag-'が付きます。 たとえば、ボタン2を押し下げてマウスをドラッグすると イベントdrag-mouse-2が生成されます。 イベントの2番目と3番目の要素は、ドラッグの開始位置と終了位置を与えます。 なお、データにはクリックイベントと同じ意味があります(see Click Events)。 ドラッグイベントかどうかを区別せずに、 マウスの任意のイベントの2番目の要素は同じ方法で参照できます。

接頭辞`drag-'は、 `C-'や`M-'のような修飾キー接頭辞に続きます。

read-key-sequenceが、 キーバインディングを持たないドラッグイベントを受け取り、かつ、 それに対応するクリックイベントにはバインディングがある場合、 ドラッグイベントの開始位置をクリック位置とするクリックイベントに変換します。 つまり、望まなければ、読者はクリックイベントとドラッグイベントを区別する 必要がありません。