Next: Mouse Position, Previous: Frame Configurations, Up: Frames
マウスを追跡(track)できると有用なことがあります。 つまり、マウスがどこにあるかを表す指示子を表示して マウスの移動に従って指示子を動かすのです。 効率よくマウスを追跡するには、マウスが実際に移動するまで待つ手段が必要です。
マウスを追跡する便利な方法は、マウスの移動を表すイベントを待つことです。 そうすれば、そのようなイベントを待てばマウスの移動を待てます。 さらに、発生しうるそれ以外の種類のイベントを扱うのも簡単です。 普通はマウスを永遠に追跡し続けたいのではなく ボタンを離すなどの別のイベントを待ちたいのでしょうから、 これは有用です。
このスペシャルフォームは、マウスモーションイベントを生成するようにして bodyを実行する。 典型的にはbodyでは
read-event
を使って モーションイベントを読み、それに従って表示を変更する。 マウスモーションイベントの形式については、 see Motion Events。
track-mouse
の値はbodyの最後のフォームの値である。 bodyは、ボタンを離したことを表すイベントや 追跡を終えるべきイベントに出会うと戻るように設計すること。
マウスの移動を追跡する普通の目的は、 現在の位置でボタンを押したり離すとなにが起こるかを スクリーン上に示すことです。
多くの場面では、テキスト属性mouse-face
(see Special Properties)
を使えば、マウスを追跡する必要はなくなります。
これはとても低いレベルで動作し、
Lispレベルでマウスを追跡するより滑らかに動作します。