GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/elisp/Mouse-Position.html ・ emacs-doc.conao3.com

30.17 マウス位置

関数 mouse-position と set-mouse-position を使用すると、マウスの現在位置を取得できます。

関数: mouse-position

この関数は、マウスの位置に関する説明を返します。値は (frame x . y) のような形式で、x と y は整数であり、frame の本来の位置(フレームジオメトリ を参照)に対する、frame のデフォルト文字サイズ(フレームフォント を参照)の倍数としての(場合によっては丸められた)位置を示します。

変数: mouse-position-function

nil 以外の場合、この変数の値は mouse-position が呼び出す関数となります。mouse-position は復帰直前に、通常の戻り値を唯一の引数としてこの関数を呼び出し、この関数が返した値をそのまま返します。

この特殊なフックは、Lispレベルでマウス操作を行う必要があるxt-mouse.elのようなパッケージ向けに用意されています。

変数: tty-menu-calls-mouse-position-function

nil 以外の場合、TTYメニューは前述の通り mouse-position-function を呼び出します。これは、再表示を誘発する可能性があるなど、TTYメニューから mouse-position-function を呼び出すのが安全ではない場合に備えて用意されています。

関数: set-mouse-position frame x y

この関数は、フレーム frame 内の位置 x、y にマウスをワープさせます。引数 x と y は整数で、frame の本来の位置(フレームジオメトリ を参照)に対する、frame のデフォルト文字サイズ(フレームフォント を参照)の倍数としての位置を指定します。

算出されるマウス位置は、frameのネイティブフレーム内に制限されます。frameが表示されていない場合、この関数は何も行いません。戻り値は意味を持ちません。

関数: mouse-pixel-position

この関数は mouse-position と同様ですが、文字単位ではなくピクセル単位で座標を返します。

関数: set-mouse-pixel-position frame x y

この関数は、set-mouse-positionと同様にマウスをワープさせますが、xとyは文字単位ではなくピクセル単位となります。

算出されるマウス位置は、frame のネイティブフレームに制約されません。frame が表示されていない場合、この関数は何も行いません。戻り値は意味を持ちません。

グラフィカル端末では、以下の2つの関数を用いてマウスカーソルの絶対位置を取得および設定できます。

関数: mouse-absolute-pixel-position

この関数は、選択されたフレームの表示領域の原点 (0, 0) を基準とした、マウスカーソル位置のピクセル単位の座標を表すコンスセル (x . y) を返します。

関数: set-mouse-absolute-pixel-position x y

この関数は、マウスカーソルを位置 (x, y) に移動します。座標 x および y は、選択されたフレームの表示領域の位置 (0, 0) を基準としたピクセル単位で解釈されます。

以下の関数で、マウスカーソルが現在フレーム上に表示されているかどうかを判定できます。

関数: frame-pointer-visible-p &optional frame

この述語関数は、frame に表示されているマウスポインタが可視であれば non-nil を、そうでなければ nil を返します。frame は省略され、nil は選択中のフレームを意味します。これは make-pointer-invisible が t に設定されている場合に有用で、ポインタが非表示になったかどうかを知ることができます。The Emacs Manual の Mouse Avoidance を参照してください。