Next: , Previous: , Up: Input Events   [Contents][Index]


20.7.13 Accessing Mouse Events

このセクションではマウスボタンやモーションイベント内のデータアクセスに役に立つ関数を説明します。同じ関数を使用してキーボードイベントデータにもアクセスできますが、キーボードイベントに不適切なデータ要素は0またはnilになります。

以下の2つの関数は、マウスイベントの位置を指定するマウス位置リスト(see Click Events)をリターンします。

Function: event-start event

これはeventの開始位置をリターンする。

eventがクリックイベントまたはボタンダウンイベントの場合、この関数はそのイベントの位置をリターンする。eventがドラッグイベントの場合は、そのドラッグの開始位置をリターンする。

Function: event-end event

これはeventの終了位置をリターンする。

eventがドラッグイベントの場合、この関数はユーザーがマウスボタンをリリースした位置をリターンする。eventがクリックイベントまたはボタンダウンイベントの場合、値はそのイベント固有の開始位置となる。

Function: posnp object

この関数はobjectが(Click Eventsに記述されたいずれかのフォーマットの)マウス位置リストの場合は非nil、それ以外ではnilをリターンする。

以下の関数は、引数にマウス位置リストをとり、そのリストのさまざまな部分をリターンします:

Function: posn-window position

positionがあったウィンドウをリターンする。positionが最初イベントがあったフレーム外の位置を表す場合は、かわりにそのフレームをリターンする。

Function: posn-area position

position内に記録されたウィンドウエリアをリターンする。そのウィンドウのテキストエリアでイベントが発生したときはnil、それ以外ではイベントがどこで発生したかを識別するシンボルをリターンする。

Function: posn-point position

position内のバッファー位置をリターンする。ウィンドウのテキストエリア、マージンエリア、フリンジでイベントが発生したときは、バッファー位置を識別する整数値、それ以外では値は未定義である。

Function: posn-x-y position

position内のピクセル単位のxy座標を、コンスセル(x . y)でリターンする。これらはposn-windowにより与えられるウィンドウにたいする相対座標である。

以下は、あるウィンドウのテキストエリア内のウィンドウ相対座標をフレーム相対座標に変換する方法を示す例である:

(defun frame-relative-coordinates (position)
  "POSITIONのフレーム相対座標をリターンする。
POSITIONはウィンドウのテキストエリアにあるものとする。"
  (let* ((x-y (posn-x-y position))
         (window (posn-window position))
         (edges (window-inside-pixel-edges window)))
    (cons (+ (car x-y) (car edges))
          (+ (cdr x-y) (cadr edges)))))
Function: posn-col-row position

この関数は、position内のバッファー位置にたいして推定される列と行を含むコンスセル(col . row)をリターンする。リターン値は、positionにたいするxyの値より計算され、そのフレームのデフォルト文字幅とデフォルト行高(行間スペースを含む)の単位で与えられる(そのため、実際の文字サイズが非デフォルト値の場合には、実際の行と列は、これらの計算された値とは異なるかもしれない)。

rowは、そのテキストエリアの上端から数えられることに注意すること。positionにより与えられるウィンドウがヘッダーライン(see Header Lines)をもつ場合、そのヘッダーラインはrowの数に含まない

Function: posn-actual-col-row position

position内の実際の行と列を、コンスセル(col . row)でリターンする。値はposition与えられるウィンドウの実際の行と列である。Click Eventsを参照のこと。positionが実際のポジション値を含まない場合、この関数はnilをリターンする。この場合、おおよその値を取得するためにposn-col-rowを使用できる。

この関数は、タブ文字やイメージによるビジュアル列数のように、ディスプレイ上の文字のビジュアル幅を意味しない。標準的な文字単位の座標が必要n場合は、かわりにposn-col-rowを使用すること。

Function: posn-string position

position内の文字列オブジェクトををnil、またはコンスセル(string . string-pos)でリターンする。

Function: posn-image position

position内のイメージオブジェクトをnil、または(image ...)でリターンする。

Function: posn-object position

position内のイメージオブジェクト、または文字列オブジェクトをnil、イメージ(image ...)、またはコンスセル(string . string-pos)でリターンする。

Function: posn-object-x-y position

position内のオブジェクトの左上隅からのピクセル単位のxy座標を、コンスセル(dx . dy)でリターンする。positionがバッファーテキストの場合は、その位置にもっとも近いバッファーテキストの相対位置をリターンする。

Function: posn-object-width-height position

position内のオブジェクトのピクセル幅とピクセル高さを、コンスセル(width . height)でリターンする。positionがバッファー位置の場合は、その位置の文字のサイズをリターンする。

Function: posn-timestamp position

position内のタイムスタンプをリターンする。これはミリ秒で表されたイベント発生時刻である。

以下の関数は与えられた特定のバッファー、またはスクリーン位置により与えられる位置リストを計算します。上述の関数で、この位置リスト内のデータにアクセスできます。

Function: posn-at-point &optional pos window

この関数は位置pos in windowにたいする位置リストをリターンする。posのデフォルトはwindow内のポイントであり、windowのデフォルトは選択されたウィンドウである。

window内でposが不可視の場合、posn-at-pointnilをリターンする。

Function: posn-at-x-y x y &optional frame-or-window whole

この関数は、指定されたフレームまたはウィンドウframe-or-window(デフォルトは選択されたウィンドウ)内のピクセル座標xyに対応する位置情報をリターンする。xyは、使用されたフレームまたはウィンドウにたいする相対座標である。wholenilの場合、座標はウィンドウのテキストエリアにたいする相対座標であり、それ以外ではスクロールバー、マージン、フリンジを含むウィンドウエリア全体にたいする相対座標である。