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


27.3 Window Sizes

以下の図は、生きたウィンドウの構造を示しています:

        ____________________________________________
       |______________ Header Line ______________|RD| ^
     ^ |LS|LF|LM|                       |RM|RF|RS|  | |
     | |  |  |  |                       |  |  |  |  | |
Window |  |  |  |       Text Area       |  |  |  |  | Window
Body | |  |  |  |     (Window Body)     |  |  |  |  | Total
Height |  |  |  |                       |  |  |  |  | Height
     | |  |  |  |<- Window Body Width ->|  |  |  |  | |
     v |__|__|__|_______________________|__|__|__|  | |
       |_______________ Mode Line _______________|__| |
       |_____________ Bottom Divider _______________| v
        <---------- Window Total Width ------------>

ウィンドウの中央はテキストエリア(text area: テキスト領域)、またはボディー(body: 本体、本文)と呼ばれる、バッファーテキストが表示される場所です。テキストエリアは、一連のオプションエリアで囲まれている可能性があります。左右には、内側から外側に向かって、図中にLMとRMで示される左右のマージン(Display Marginsを参照)、LFとRFで示される左右のフリンジ(Fringesを参照)、そしてLSとRSはスクロールバー(Scroll Barsを参照)で、常に表示されるのはいずれか一方だけです。そしてRDはディバイダー(Window Dividersを参照)を示しています。ウィンドウの上端はヘッダーライン(Header Linesを参照)、下端にはモードライン(Mode Line Formatを参照)と、その下に下端ディバイダー(Window Dividersを参照)があります。

Emacsは、ウィンドウの高さと幅を求めるために、さまざまな関数を提供します。これらの関数がリターンする値の多くは、ピクセル単位か、行単位と列単位のいずれかにより指定できます。グラフィカルなディスプレイでは、後者は実際にはframe-char-heightおよびframe-char-widthによりリターンされる、そのフレームのデフォルトフォントが指定する、“デフォルト文字”の高さと幅に対応します。したがって、あるウィンドウが異なるフォントやサイズでテキストを表示していると、そのウィンドウにたいして報告される行高さと列幅は、実際にウィンドウ内で表示されるテキスト行数と列数とは、異なるかもしれません。

ウィンドウのトータル高さ(total height)とは、そのウィンドウのボディー、ヘッダーライン、モードライン、(もしあれば)下端ディバイダーを構成する行数のことです。フレームにはエコーエリア、メニューバー、ツールバーが含まれるかもしれないので、フレームの高さはそのフレームのルートウィンドウ(Windows and Framesを参照)の高さとは異なることに注意してください(Size and Positionを参照)。

Function: window-total-height &optional window round

この関数は、ウィンドウwindowのトータル高さを、行でリターンする。windowが省略、またはnilの場合のデフォルトは、選択されたウィンドウである。windowが内部ウィンドウの場合、リターン値はそのウィンドウの子孫となるウィンドウにより占有されるトータル高さになる。

ウィンドウのピクセル高さが、そのウィンドウがあるフレームのデフォルト文字高さの整数倍でない場合は、そのウィンドウが占有する行数が内部で丸められる。これは、そのウィンドウが親ウィンドウの場合は、すべての子ウィンドウのトータル高さの合計が、親ウィンドウのトータル高さと内部的に等しくなるような方法により行われる。これは、たとえ2つのウィンドウのピクセル高さが等しくでも、内部的なトータル高さは1行分異なるかもしれないことを意味する。さらにこれは、そのウィンドウが垂直コンビネーションされていて、かつ右の兄弟をもつ場合、その兄弟の上端行は、このウィンドウの上端行とトータル高さから計算されるかもしれないことも意味する(Coordinates and Windowsを参照)。

オプション引数roundceilingの場合、この関数はwindowのピクセル高さを、そのフレームの文字高さで除した数より大であるような最小の整数、floorの場合は除した数より小であるような最大の整数、それ以外のroundにたいしては、windowsのトータル高さの内部値をリターンする。

トータル幅(total width)とは、そのウィンドウのボディーを構成する列数、マージン、フリンジ、スクロールバー、(もしあれば)右ディバイダーです。

Function: window-total-width &optional window round

この関数は、ウィンドウwindowのトータル幅を列でリターンする。windowが省略、またはnilの場合のデフォルトは、選択されたウィンドウである。windowが内部ウィンドウの場合、リターン値はその子孫のウィンドウが占有するトータル幅になる。

ウィンドウのピクセル幅が、そのウィンドウがあるフレームのデフォルト文字幅の整数倍でない場合は、そのウィンドウが占有する列数が内部で丸められる。これは、そのウィンドウが親ウィンドウの場合は、すべての子ウィンドウのトータル幅の合計が、親ウィンドウのトータル幅と内部的に等しくなるような方法により行われる。これは、たとえ2つのウィンドウのピクセル幅が等しくでも、内部的なトータル幅は1列分異なるかもしれないことを意味する。さらにこれは、そのウィンドウが水平コンビネーションされていて、かつ右の兄弟をもつ場合、その兄弟の左端行は、このウィンドウの左端行とトータル幅から計算されるかもしれないことも意味する(Coordinates and Windowsを参照)。オプション引数roundは、window-total-heightの場合と同様に振る舞う。

Function: window-total-size &optional window horizontal round

この関数は、ウィンドウwindowのトータル高さを行で、またはトータル幅を列でリターンする。horizontalが省略、またはnilの場合はwindowにたいしてwindow-total-heightを呼び出すのと等価であり、それ以外ではwindowにたいしてwindow-total-widthを呼び出すのと等価である。オプション引数roundは、window-total-heightの場合と同様に振る舞う。

以下の2つの関数は、ウィンドウのトータルサイズをピクセル単位でリターンさせるために使用できます。

Function: window-pixel-height &optional window

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

リターン値には、(もしあれば)モードライン、ヘッダーライン、下端ディバイダーが含まれる。windowが内部ウィンドウの場合、そのピクセル高さは子ウィンドウたちによりスパンされるスクリーン領域のピクセル高さになる。

Function: window-pixel-width &optional Lisp_Object &optional window

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

リターン値には、フリンジ、windowのマージン、同様にwindowに属する垂直ディバイダーとスクロールバーが含まれる。windowが内部ウィンドウの場合、そのピクセル幅は子ウィンドウたちによりスパンされるスクリーン領域の幅になる。

以下の関数は、与えられたウィンドウに隣接するウィンドウがあるかどうかを判断するために使用できます。

Function: window-full-height-p &optional window

この関数は、フレーム内でwindowの上下に他のウィンドウがなければ非nilをリターンする(トータル高さがそのフレーム上のルートウィンドウと等しい)。windowが省略、またはnilの場合のデフォルトは、選択されたウィンドウである。

Function: window-full-width-p &optional window

この関数は、フレーム内でwindowの左右に他のウィンドウがなければ非nilをリターンする(トータル幅がそのフレーム上のルートウィンドウと等しい)。windowが省略、またはnilの場合のデフォルトは、選択されたウィンドウである。

ウィンドウのボディー高さ(body height)とは、モードライン、ヘッダーライン、下端ディバイダーを含まないテキスト領域の高さです。

Function: window-body-height &optional window pixelwise

この関数は、ウィンドウwindowのボディーの高さを、行でリターンする。windowが省略、またはnilの場合のデフォルトは選択されたウィンドウで、それ以外では生きたウィンドウでなければならない。

オプション引数pixelwiseが非nilの場合、この関数はピクセルで計算windowのボディー高さをリターンする。

pixelwisenilの場合は、必要ならリターン値はもっとも近い整数に切り下げられる。これは、テキスト領域の下端行が部分的に可視の場合、その行は計数されないこと、さらに任意のウィンドウのボディー高さは、window-total-heightによりリターンされるそのウィンドウのトータル高さ決して超過し得ないことをも意味する。

ウィンドウのボディー幅(body width)とは、スクロールバー、フリンジ、マージン、右ディバイダーを含まないテキスト領域の幅です。

Function: window-body-width &optional window pixelwise

この関数は、ウィンドウwindowのボディーの幅を、列でリターンする。windowが省略、またはnilの場合のデフォルトは選択されたウィンドウであり、それ以外では生きたウィンドウでなければならない

オプション引数pixelwiseが非nilの場合、この関数はwindowのボディーの幅をピクセル単位でリターンする。

pixelwisenilの場合、リターン値は必要ならもっとも近い整数に切り下げられる。これはテキスト領域の右端の列が部分的に可視な場合は、その列は計数されないことを意味する。さらにこれは、ウィンドウのボディーの幅が、window-total-widthによりリターンされるウィンドウのトータル幅を決して超過し得ないことをも意味する。

Function: window-body-size &optional window horizontal pixelwise

この関数は、windowのボディーの高さ、または幅をリターンする。horizontalが省略、またはnilの場合は、windowにたいしてwindow-body-height、それ以外の場合は、window-body-widthを呼び出すのと同じである。いずれの場合も、オプション引数pixelwiseは、呼び出された関数に渡される。

以前のバージョンのEmacsとの互換性のため、window-heightwindow-total-heightwindow-widthwindow-body-widthにたいするエイリアスです。これらのエイリアス時代遅れと考えられております、将来的には削除されるでしょう。

ウィンドウのモードラインとヘッダーラインのピクセル高さは、以下の関数により取得できる。それらのリターン値は、そのウィンドウが以前に表示されていない場合を除き、通常は加算される。その場合、リターン値はそのウィンドウのフレームにたいして使用を予想されるフォントが元になる。

Function: window-mode-line-height &optional window

この関数は、windowモードラインの高さをピクセルでリターンする。windowは生きたウィンドウでなければならず、デフォルトは選択されたウィンドウである。windowにモードラインがない場合、リターン値は0である。

Function: window-header-line-height &optional window

この関数は、windowのヘッダーラインの高さをピクセルでリターンする。windowは生きたウィンドウでなければならず、デフォルトは選択されたウィンドウである。windowにヘッダーラインがない場合のリターン値は0である。

ウィンドウディバイダー(Window Dividersを参照)、フリンジ(Fringesを参照)、スクロールバー(Scroll Barsを参照)、ディスプレイマージン(Display Marginsを参照)を取得する関数については、対応するセクションで説明されています。

ウィンドウのサイズを変更(Resizing Windowsを参照)したり、ウィンドウを分割(split)するコマンド(Splitting Windowsを参照)は、指定できるウィンドウの最小の高さと幅を指定する変数window-min-heightおよびwindow-min-widthにしたがう。これらのコマンドは、ウィンドウのサイズがfixed(固定)になる変数window-size-fixedにもしたがう。

User Option: window-min-height

このオプションは、任意のウィンドウの最小のトータル高さを行で指定する。この値は最低でも1つのテキスト行、同様にモードライン、ヘッダーライン、(もしあれば)下端ディバイダーに対応する必要がある。

User Option: window-min-width

このオプションは、すべてのウィンドウの最小のトータル幅を列で指定する。この値は、2つのテキスト列、同様に(もしあれば)マージン、フリンジ、スクロールバー、右ディバイダーに対応する必要がある。

Variable: window-size-fixed

このバッファーローカル変数が非nilの場合、そのバッファーを表示するすべてのウィンドウのサイズが、通常は変更できなくなる。ウィンドウ削除やそのフレームのサイズ変更により、それ以外に方法がなければ、依然としてウィンドウのサイズは変更されるかもしれない。

値がheightの場合は、そのウィンドウの高さだけが固定される。値がwidthの場合は、そのウィンドウの幅だけが固定される。その他の非nil値では、幅と高さの両方が固定される。

この変数がnil場合でも、そのバッファーを表示している任意のウィンドウを任意の方向にリサイズできるとはいえない。これを決定するには、関数window-resizableを使用する。Resizing Windowsを参照のこと。

以降の関数は、ある特定の大きさのウィンドウにたいして、それのwindow-min-heightwindow-min-widthwindow-size-fixedの値と、領域のサイズを示す。

Function: window-min-size &optional window horizontal ignore pixelwise

この関数は、windowの最小のサイズをリターンする。windowは有効なウィンドウでなければならず、デフォルトは選択されたウィンドウ。オプション引数horizontalが非nilの場合は、windowの最小の列数、それ以外はwindowの最小の行数をリターンすることを意味する。

このリターン値により、windowのサイズが実際にその値にセットされた場合に、windowのすべてのコンポーネントが完全に可視にとどまることが保証される。horizontalnilの場合は、モードライン、ヘッダーライン、および下端ディバイダーが含まれる。horizontalが非nilの場合は、もしあればフリンジ、スクロールバー、右ディバイダーが含まれる。しかしこれには、マージン用に予約済みのスペースは含まれない。

オプション引数ignoreが非nilの場合は、window-min-heightまたはwindow-min-widthによりセットされる固定サイズのウィンドウに強いられる制限を無視することを意味する。ignoresafeの場合は、生きたウィンドウは可能な限り小さなwindow-safe-min-heightの行と、window-safe-min-widthの列を得る。ignoreにウィンドウが指定された場合は、そのウィンドウにたいする制限だけを無視する。その他の非nil値では、すべてのウィンドウにたいする上記制限のすべてが無視されることを意味する。

オプション引数pixelwiseが非nilの場合は、windowの最小サイズがピクセルで計数されてリターンされることを意味する。


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