Next: , Previous: , Up: Windows   [Contents][Index]


27.23 座標とウィンドウ

このセクションでは、ウィンドウの位置を報告する関数を説明します。これらの関数のほとんどは、そのウィンドウのフレームから相対的な位置を報告します。この場合の座標原点‘(0,0)’は、そのフレームの左上隅付近になります。技術的な理由から、グラフィカルなディスプレイ上では、原点はスクリーン上のグラフィカルなウィンドウの左上隅に正確には配置されません。EmacsがGTK+とともにビルドされた場合、原点は(Emacsではなくウィンドウマネージャーおよび/またはGTK+により描画される)タイトルバー、GTK+メニューバー、ツールバーの下のEmacsウィンドウ表示に使用されるフレーム領域の左上隅になります。しかし、GTK+なしでEmacsがビルドされた場合の原点は、ツールバーの左上隅になります(この場合はEmacs自身がツールバーを描画する)。どちらの場合も、X座標とY座標は、右または下に行くにつれ増加します。

注記された箇所を除き、X座標とY座標は整数の文字単位(行数と列数)で報告されます。グラフィカルなディスプレイ上では、“行”と“列”はそれぞれ、そのフレームのデフォルトフォントにより指定される、デフォルト文字の高さと幅に対応します。

Function: window-edges &optional window

この関数はwindow端の座標のリストをリターンする。windowが省略またはnilの場合のデフォルトは選択されたウィンドウ。

リターン値は(left top right bottom)という形式をもつ。リストの要素は順にそのウィンドウにより占有される最左列のX座標、最上行のY座標、最右列より1列右のX座標、最下行より1行下のY座標。

これらはヘッダーライン、モードライン、スクロールバー、ウィンドウディバイダー、ディスプレイマージンを含むウィンドウの実際の端であることに注意。テキスト端末ではそのウィンドウの右に隣接するウィンドウがあれば、ウィンドウの右端にはそのウィンドウと隣接するウィンドウの間のセパレーターラインが含まれる。

Function: window-inside-edges &optional window

この関数はwindow-edgesと似ているが、そのウィンドウのテキストエリア端の値をリターンする。これらからはヘッダーライン、モードライン、スクロールバー、フリンジ、ウィンドウディバイダー、ディスプレイマージン、垂直セパレーターは除外される。

Function: window-top-line &optional window

この関数は、windowの最上行のY座標をリターンする。これはwindow-edgesによりリターンされるリストのtopエントリーと等価である。

Function: window-left-column &optional window

この関数は、windowの最左列のX座標をリターンする。これはwindow-edgesによりリターンされるリストのleftエントリーと等価である。

以下の関数は一連のフレーム相対座標(frame-relative coordinates)からウィンドウへの関連付けに使用できます:

Function: window-at x y &optional frame

この関数は、フレームframe上の、フレーム相対座標xyにある生きたウィンドウをリターンする。その位置にウィンドウがなければ、nilをリターンする。frameが省略またはnilの場合のデフォルトは、選択されたフレームである。

Function: coordinates-in-window-p coordinates window

この関数は、ウィンドウwindowがフレーム相対座標coordinatesを占有するかどうかをチェックし、もしそうならウィンドウのどの部分かをチェックする。windowは生きたウィンドウであること。coordinates(x . y)という形式であるべきで、xyはフレーム相対座標であること。

指定された位置にウィンドウが存在しなければリターン値はnil。それ以外ではリターン値は以下のいずれか:

(relx . rely)

その座標はwindow内にある。数値relxrelyは指定された位置にたいする、ウィンドウ左上隅を原点に0から数えたウィンドウ相対座標と等価。

mode-line

その座標はwindowのモードライン内にある。

header-line

その座標はwindowのヘッダーライン内にある。

right-divider

その座標はwindowと右に隣接するウィンドウを分けるディバイダー内にある。

right-divider

その座標はwindowと下にあるウィンドウを分けるディバイダー内にある。

vertical-line

その座標はwindowと右に隣接するウィンドウを分ける垂直ライン内にある。この値はウィンドウにスクロールバーがないときのみ発生し得る。スクロールバー内の位置はこれらの目的にたいしてはウィンドウ外側と判断される。

left-fringe
right-fringe

その座標はウィンドウの左か右のフリンジ内にある。

left-margin
right-margin

その座標はウィンドウの左か右のマージン内にある。

nil

その座標はwindowのいずれの部分でもない。

関数coordinates-in-window-pwindowのあるフレームを使用するので引数としてフレームを要求しない。

以下の関数は、文字単位ではなくピクセル単位でウィンドウ位置をリターンします。主にグラフィカルなディスプレイで有用ですが、テキスト端末上でも呼び出すことができ、その場合は各文字の占めるスクリーン領域が“1ピクセル”となります。

Function: window-pixel-edges &optional window

この関数は、window端のピクセル座標のリストをリターンする。windowが省略またはnilの場合のデフォルトは、選択されたウィンドウである。

リターン値は(left top right bottom)という形式をもつ。リストの要素は順にウィンドウ左端のXピクセル座標、上端のYピクセル座標、右端のXピクセル座標+1、下端のYピクセル座標+1である。

Function: window-inside-pixel-edges &optional window

この関数はwindow-pixel-edgesと同様だが、ウィンドウ端のピクセル座標ではなく、ウィンドウのテキストエリア端のピクセル座標をリターンする。windowには生きたウィンドウを指定しなければならない。

以下の関数は、フレームではなく、ディスプレイ画面(display screen)に相対的なウィンドウ位置をピクセルでリターンする。

Function: window-absolute-pixel-edges &optional window

この関数はwindow-pixel-edgesと同様だが、ディスプレイ画面の左上隅からの相対ピクセル座標でウィンドウ端の座標をリターンする。

Function: window-inside-absolute-pixel-edges &optional window

この関数はwindow-inside-pixel-edgesと同様だが、ディスプレイ画面の左上隅からの相対ピクセル座標でウィンドウのテキストエリア端の座標をリターンする。windowには生きたウィンドウを指定しなければならない。

Function: window-pixel-left &optional window

この関数は、ウィンドウwindowの左端のピクセルをリターンする。windowは有効なウィンドウでなければならず、デフォルトは選択されたウィンドウである。

Function: window-pixel-top &optional window

この関数は、ウィンドウwindowの上端のピクセルをリターンする。windowは有効なウィンドウでなければならず、デフォルトは選択されたウィンドウである。