次: , 前: Classifying Events, 上: Input Events


20.5.13 イベントの参照

本節では、マウスボタンイベントやモーションイベント内のデータを 参照するための便利な関数について述べます。

つぎの2つの関数は、以下の形式のリストであるマウスボタンイベントの 開始位置や終了位置を返します。

     (window buffer-position (x . y) timestamp)
— 機能: event-start event

イベントeventの開始位置を返す。

eventがクリックイベントやボタン押し下げイベントであると、 イベントの位置を返す。 eventがドラッグイベントであると、ドラッグの開始位置を返す。

— 機能: event-end event

イベントeventの終了位置を返す。

eventがドラッグイベントであると、 ユーザーがマウスボタンを離したときの位置を返す。 eventがクリックイベントかボタン押し下げイベントであると、 実際の値は開始位置であり、 その種のイベントにある唯一の位置情報である。

つぎの5つの関数は、上に述べた位置情報のリストを引数として、 そのさまざまな部分を返す。

— 機能: posn-window position

position内のウィンドウを返す。

— 機能: posn-point position

positionのバッファ内位置を返す。 これは整数である。

— 機能: posn-x-y position

position内のピクセル単位のxy座標を コンスセル(x . y)として返す。

— 機能: posn-col-row position

positionの(文字単位の)行(row)とコラム(col)の座標を コンスセル(col . row)として返す。 これらは実際にはposition内のxyの値から計算される。

— 機能: posn-timestamp position

position内の時刻情報を返す。

つぎの関数はスクロールバーでのイベントを解読するのに便利です。

— 機能: scroll-bar-event-ratio event

スクロールバー内でのイベントから、スクロールバーに対する縦方向の位置を返す。 その値は2つの整数を含むコンスセル(portion . whole)であり、 その比は位置の割合を表す。

— 機能: scroll-bar-scale ratio total

この関数は(実質的には)ratiototalを掛け、 結果を整数に丸める。 引数ratioは数ではなく(num . denom)であり、 典型的にはscroll-bar-event-ratioが返す値である。

この関数はスクロールバー内での位置を バッファ内での位置へ換算するのに便利である。 つぎのように行う。

          (+ (point-min)
             (scroll-bar-scale
                (posn-x-y (event-start event))
                (- (point-max) (point-min))))
     

スクロールバー内でのイベントには、 xy座標のかわりに比を表す2つの整数があることに注意。