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


21.7.13 マウスイベントへのアクセス

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

以下の2つの関数は、マウスイベントの位置を指定するマウス位置リスト(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により与えられるウィンドウがヘッダーライン(Header Linesを参照)をもつなら、そのヘッダーラインはrowの数に含まれない

Function: posn-actual-col-row position

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

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

Function: posn-string position

positionに記述された文字列オブジェクトをリターンする。nil (positionがバッファーテキストを記述することを意味する)、またはコンスセル(string . string-pos)のいずれか。

Function: posn-image position

positionにあるイメージオブジェクトをリターンする。nil (positionにイメージがない)、またはイメージspec (image …)のいずれか。

Function: posn-object position

positionにより記述されるイメージオブジェクトか文字列オブジェクトをリターンする。nil (positionがバッファーテキストを記述することを意味する)、イメージ(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

この関数はwindow内の位置posにたいする位置リストをリターンする。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なら、座標はウィンドウのテキストエリアにたいする相対座標、それ以外ではスクロールバー、マージン、フリンジを含むウィンドウエリア全体にたいする相対座標。