Next: Accessing Scroll, Previous: Classifying Events, Up: Input Events [Contents][Index]
このセクションではマウスボタンやモーションイベント内のデータアクセスに役に立つ関数を説明します。同じ関数を使用してキーボードイベントデータにもアクセスできますが、キーボードイベントに不適切なデータ要素は0またはnilになります。
以下の2つの関数は、マウスイベントの位置を指定するマウス位置リスト(see 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により与えられるウィンドウがヘッダーライン(see Header Lines)をもつ場合、そのヘッダーラインはrowの数に含まない。
position内の実際の行と列を、コンスセル(col
. row)でリターンする。値はposition与えられるウィンドウの実際の行と列である。Click Eventsを参照のこと。positionが実際のポジション値を含まない場合、この関数はnilをリターンする。この場合、おおよその値を取得するためにposn-col-rowを使用できる。
この関数は、タブ文字やイメージによるビジュアル列数のように、ディスプレイ上の文字のビジュアル幅を意味しない。標準的な文字単位の座標が必要n場合は、かわりに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内のタイムスタンプをリターンする。これはミリ秒で表されたイベント発生時刻である。
以下の関数は与えられた特定のバッファー、またはスクリーン位置により与えられる位置リストを計算します。上述の関数で、この位置リスト内のデータにアクセスできます。
この関数は位置pos in windowにたいする位置リストをリターンする。posのデフォルトはwindow内のポイントであり、windowのデフォルトは選択されたウィンドウである。
window内でposが不可視の場合、posn-at-pointはnilをリターンする。
この関数は、指定されたフレームまたはウィンドウframe-or-window(デフォルトは選択されたウィンドウ)内のピクセル座標xとyに対応する位置情報をリターンする。xとyは、使用されたフレームまたはウィンドウにたいする相対座標である。wholeがnilの場合、座標はウィンドウのテキストエリアにたいする相対座標であり、それ以外ではスクロールバー、マージン、フリンジを含むウィンドウエリア全体にたいする相対座標である。