Next: Window Sizes, Previous: Basic Windows, Up: Windows [Contents][Index]
ウィンドウはそれぞれ、正確に1つのフレームに属します(Framesを参照)。
この関数は、ウィンドウwindowが属するフレームをリターンする。windowがnil
の場合のデフォルトは、選択されたウィンドウである。
この関数は、フレームframeに属する、生きたウィンドウのリストをリターンする。frameが省略、またはnil
の場合のデフォルトは、選択されたフレームである。
オプション引数minibufferは、リターンされるリストにミニバッファーウィンドウを含めるべきかどうかを指定する。minibufferがt
の場合は、ミニバッファーウィンドウが含まれる。minibufferがnil
、または省略された場合は、ミニバッファーウィンドウがアクティブのときだけ含まれる。minibufferがnil
とt
以外の場合、ミニバッファーウィンドウは含まれない。
オプション引数windowが非nil
の場合、それは指定されたフレーム上の生きたウィンドウであること。その場合は、windowがリターンされるリストの最初の要素になる。windowが省略、またはnil
の場合は、そのフレームの選択されたウィンドウが最初の要素になる。
同一フレーム内のウィンドウは、リーフノード(leaf nodes)が生きたウィンドウであるような、ウィンドウツリー(window tree)内に組織化されます。ウィンドウツリーの内部ノード(internal nodes)は生きたウィンドウではありません。これらのウィンドウは、生きたウィンドウ間の関係を組織化するという目的のために存在します。ウィンドウツリーのルートノード(root node)は、ルートウィンドウ(root window)と呼ばれます。ルートノードは生きたウィンドウ(そのフレームにウィンドウが1つだけの場合)、または内部ウィンドウのいずれかです。
ミニバッファーウィンドウ(Minibuffer Windowsを参照)は、そのフレームがミニバッファーだけのフレームでない限り、そのフレームのウィンドウツリーの一部にはなりません。にもかかわらず、このセクションのほとんどの関数は、引数としてミニバッファーウィンドウを受け付けます。さらにこのセクションの最後に説明する関数window-tree
は、実際のウィンドウツリーと並列してミニバッファーウィンドウをリストします。
この関数は、frame-or-windowにたいするルートウィンドウをリターンする。引数frame-or-windowは、ウィンドウかフレームのいずれかであること。これが省略、またはnil
の場合のデフォルトは、選択されたフレームである。frame-or-windowがウィンドウの場合、リターン値はそのウィンドウのフレームのルートウィンドウである。
ウィンドウが分割(split)されているときは、以前は1つだった2つの生きたウィンドウが存在します。これらのうちの一方は、元のウィンドウと同じLispウィンドウオブジェクトとして表され、もう一方は新たに作成されたLispウィンドウオブジェクトとして表されます。これらの生きたウィンドウは両方とも、単一の内部ウィンドウの子ウィンドウ(child windows)として、ウィンドウツリーのリーフノードになります。もし必要なら、Emacsはこの内部ウィンドウを自動的に作成します。この内部ウィンドウは親ウィンドウ(parent window)とも呼ばれ、ウィンドウツリー内の適切な位置に配置されます。同じ親を共有するウィンドウセットは、兄弟(sibling)と呼ばれます。
この関数は、windowの親ウィンドウ(parent
window)をリターンする。windowが省略、またはnil
の場合のデフォルトは、選択されたウィンドウである。windowが親をもたない(ミニバッファーウィンドウやそのフレームのルートウィンドウ)場合、リターン値はnil
である。
内部ウィンドウはそれぞれ、常に最低でも2つの子ウィンドウをもちます。ウィンドウ削除によりこの数値が1になった場合、Emacsは自動的に内部ウィンドウを削除して、その残った単一の子ウィンドウがウィンドウツリー内のその位置に配置されます。
子ウィンドウはそれぞれ生きたウィンドウ、または(次に自身の子ウィンドウをもつであろう)内部ウィンドウのいずれかです。したがって、各内部ウィンドウは、最終的にはその内部ウィンドウの子孫であるような生きたウィンドウにより占有される領域を結合した、特定の矩形スクリーン領域(screen area)を占有すると考えることができます。
内部ウィンドウそれぞれにたいして、近接する子たちのスクリーン領域は、垂直(vertically)または水平(horizontally)のいずれかにより整列されます(両方で整列されることはない)。子ウィンドウが他の子ウィンドウと上下に整列される場合、それらは垂直コンビネーション(vertical combination)、左右に整列される場合は水平コンビネーション(horizontal combination)を形成すると表現されます。以下の例で考えてみましょう:
______________________________________ | ______ ____________________________ | || || __________________________ || || ||| ||| || ||| ||| || ||| ||| || |||____________W4____________||| || || __________________________ || || ||| ||| || ||| ||| || |||____________W5____________||| ||__W2__||_____________W3_____________ | |__________________W1__________________|
このフレームのルートウィンドウは、内部ウィンドウW1です。これの子ウィンドウは、生きたウィンドウW2と内部ウィンドウW3からなる水平コンビネーションを形成します。W3の子ウィンドウは、生きたウィンドウW4とW5からなる垂直コンビネーションを形成します。したがって、このウィンドウツリー内の生きたウィンドウはW2、W4、およびW5です。
以下の関数は、内部ウィンドウの子ウィンドウ、および子ウィンドウの兄弟を取得するのに使用できます。
この関数は、内部ウィンドウwindowの子ウィンドウが垂直コンビネーションを形成する場合は、windowの一番上の子ウィンドウをリターンする。他のタイプのウィンドウにたいするリターン値はnil
である。
この関数は、内部ウィンドウwindowの子ウィンドウが水平コンビネーションを形成する場合は、windowの一番左の子ウィンドウをリターンする。他のタイプのウィンドウにたいするリターン値はnil
である。
この関数は、内部ウィンドウwindowの最初の子ウィンドウをリターンする。これは、垂直コンビネーションにたいしては一番上、水平コンビネーションにたいしては一番左の子ウィンドウである。windowが生きたウィンドウの場合、リターン値はnil
である。
この関数は、windowが垂直コンビネーションの一部である場合のみ、非nil
をリターンする。windowが省略、またはnil
の場合のデフォルトは、選択されたウィンドウである。
オプション引数horizontalが非nil
ならば、windowが水平コンビネーションの一部である場合のみ非nil
をリターンすることを意味する。
この関数は、ウィンドウwindowの次の兄弟をリターンする。省略またはnil
の場合、windowのデフォルトは選択されたウィンドウになる。windowが、その親の最後の子の場合、リターン値はnil
である。
この関数は、ウィンドウwindowの前の兄弟をリターンする。省略またはnil
の場合、windowのデフォルトは選択されたウィンドウになる。windowが、その親の最初の子の場合、リターン値はnil
である。
関数window-next-sibling
およびwindow-prev-sibling
を、ウィンドウのサイクル順(Cyclic Window Orderingを参照)において次、または前のウィンドウをリターンする関数next-window
およびprevious-window
と混同しないでください。
任意のフレーム上の最初の生きたウィンドウや、与えられたウィンドウにもっとも近いウィンドウを探すために、以下の関数を使用できます。
この関数は、frame-or-windowにより指定されたフレームの、左上隅の生きたウィンドウをリターンする。引数frame-or-windowでは、ウィンドウか生きたフレームを示さなければならず、デフォルトは選択されたフレームである。frame-or-windowがウィンドウを指定する場合、この関数はそのウィンドウのフレームの最初のウィンドウをリターンする。前の例のフレームが(frame-first-window)
に指定されたとするならば、W2がリターンされる。
この関数は、ウィンドウwindow内の位置window-point
から、方向directionにあるもっとも近い生きたウィンドウをリターンする。引数directionはabove
、below
、left
、right
のいずれかでなければならない。オプション引数windowは生きたウィンドウを示さなければならず、デフォルトは選択されたウィンドウである。
この関数は、パラメーターno-other-window
が非nil
のウィンドウをリターンしない(Window Parametersを参照)。もっとも近いウィンドウのno-other-window
パラメーターが非nil
の場合、この関数は指定された方向でno-other-window
パラメーターがnil
の、他のウィンドウを探す。オプション引数ignoreが非nil
の場合は、たとえno-other-window
パラメーターが非nil
のウィンドウでも、リターンされ得る。
オプション引数signが負の数値の場合、それは参照位置としてwindow-point
のかわりに、windowの右端、または下端を使用することを意味する。signが正の数値の場合、それは参照位置としてwindowの左端、または上端を使用することを意味する。
オプション引数wrapが非nil
の場合、それはフレームのボーダー(borders:
枠線)をdirectionがラップアラウンド(wrap around:
最後に達したら最初に戻る)することを意味する。たとえば、windowはフレームの最上にあり、directionがabove
の場合、フレームにミニバッファーがあればミニバッファーウィンドウ、それ以外はフレーム最下のウィンドウウィンドウリターンする。
オプション引数miniがnil
の場合、それはミニバッファーがカレントでアクティブな場合のみ、ミニバッファーウィンドウをリターンすることを意味する。miniが非nil
ならば、たとえ非アクティブなときでもミニバッファーウィンドウをリターンする。しかし、wrapが非nil
の場合は、常にminiがnil
であるかのように動作する。
適切なウィンドウが見つからない場合、この関数はnil
をリターンする。
以下の関数により、任意のフレームのウィンドウツリー全体を取得できます:
この関数は、フレームframeにたいするウィンドウツリーを表すリストをリターンする。frameが省略、またはnil
の場合のデフォルトは、選択されたフレームである。
リターン値は、(root
mini)
という形式のリストである。ここでrootはそのフレームのウィンドウツリーのルートウィンドウ、miniはそのフレームのミニバッファーウィンドウを表す。
ルートウィンドウが生きている場合、rootはそのウィンドウ自身である。それ以外では、rootはリスト(dir
edges w1 w2
...)
である。ここでdirは水平コンビネーションならnil
、垂直コンビネーションならt
となり、edgesはそのコンビネーションのサイズと位置を与え、残りの要素は子ウィンドウである。子ウィンドウはそれぞれ、同じようにウィンドウオブジェクト(生きたウィンドウにたいして)、または上記フォーマットと同じ形式のリスト(内部ウィンドウにたいして)かもしれない。edges要素はwindow-edges
がリターンする値のような、リスト(left
top right bottom)
である(Coordinates and Windowsを参照)。