Next: Accessing Scroll, Previous: Classifying Events, Up: Input Events [Contents][Index]
このセクションではマウスボタンやモーションイベント内のデータアクセスに役立つ関数を説明します。同じ関数を使用してキーボードイベントデータにもアクセスできますが、キーボードイベントに不適切なデータ要素は0かnil
になります。
以下の2つの関数は、マウスイベントの位置を指定するマウス位置リスト(Click Eventsを参照)をリターンします。
これはeventの開始位置をリターンする。
eventがクリックイベントかボタンダウンイベントなら、この関数はそのイベントの位置をリターンする。eventがドラッグイベントなら、そのドラッグの開始位置をリターンする。
これはeventの終了位置をリターンする。
eventがドラッグイベントなら、この関数はユーザーがマウスボタンをリリースした位置をリターンする。eventがクリックイベントかボタンダウンイベントなら、値はそのイベント固有の開始位置となる。
この関数はobjectがClick Eventsに記述されたいずれかのフォーマットのマウス位置リストなら非nil
、それ以外ではnil
をリターンする。
以下の関数は引数にマウス位置リストを受け取り、そのリストのさまざまな部分をリターンします:
positionがあったウィンドウをリターンする。positionが最初にイベントがあったフレームの外部の位置を表す場合には、かわりにそのフレームをリターンする。
position内に記録されたウィンドウエリアをリターンする。そのウィンドウのテキストエリアでイベントが発生したときはnil
、それ以外ではイベントがどこで発生したかを識別するシンボルをリターンする。
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)))))
この関数はposition内のバッファー位置にたいして推定される列と行を含んだコンスセル(col
.
row)
をリターンする。リターン値はpositionにたいするxとyの値より計算され、そのフレームのデフォルト文字幅とデフォルト行高(行間スペースを含む)の単位で与えられる(そのため実際の文字サイズが非デフォルト値なら、実際の行と列はこれらの計算された値とは異なるかもしれない)。
rowはそのテキストエリアの上端から数えられることに注意。positionにより与えられるウィンドウがヘッダーライン(Header Linesを参照)をもつなら、そのヘッダーラインはrowの数に含まれない。
position内の実際の行と列をコンスセル(col
. row)
でリターンする。値はpositionで与えられるウィンドウの実際の行と列。Click Eventsを参照のこと。positionが実際のポジション値を含まなければ、この関数はnil
をリターンする。この場合にはおおよその値を取得するためにposn-col-row
を使用できる。
この関数はタブ文字やイメージによるビジュアル列数のように、ディスプレイ上の文字のビジュアル幅を意味しない。標準的な文字単位の座標が必要なら、かわりにposn-col-row
を使用すること。
position内の文字列オブジェクトをnil
、またはコンスセル(string
. string-pos)
でリターンする。
position内のイメージオブジェクトをnil
、または(image ...)
でリターンする。
position内のイメージオブジェクト、または文字列オブジェクトをnil
、イメージ(image
...)
、またはコンスセル(string . string-pos)
でリターンする。
position内のオブジェクトの左上隅からのピクセル単位のxy座標をコンスセル(dx
.
dy)
でリターンする。positionがバッファーテキストなら、その位置にもっとも近いバッファーテキストの相対位置をリターンする。
position内のオブジェクトのピクセル幅とピクセル高さをコンスセル(width
. height)
でリターンする。positionがバッファー位置なら、その位置の文字のサイズをリターンする。
position内のタイムスタンプをリターンする。これはミリ秒で表されたイベント発生時刻である。
以下の関数は与えられた特定のバッファー、またはスクリーン位置によって位置リストを計算します。上述の関数でこの位置リスト内のデータにアクセスできます。
この関数はwindow内の位置posにたいする位置リストをリターンする。posのデフォルトはwindow内のポイント、windowのデフォルトは選択されたウィンドウ。
window内でposが不可視なら、posn-at-point
はnil
をリターンする。
この関数は指定されたフレームかウィンドウframe-or-window(デフォルトは選択されたウィンドウ)内のピクセル座標xとyに対応する位置情報をリターンする。xとyは、使用されたフレームかウィンドウにたいする相対座標である。wholeがnil
なら、座標はウィンドウのテキストエリアにたいする相対座標、それ以外ではスクロールバー、マージン、フリンジを含むウィンドウエリア全体にたいする相対座標。