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


27.4 ウィンドウのリサイズ

このセクションでは、フレームのサイズを変更せずにウィンドウのサイズを変更する関数について説明します。生きたウィンドウはオーバーラップしないので、これらの関数は2つ以上のウィンドウを含む関数上でのみ意味があります(ウィンドウのリサイズにより隣接するウィンドウのサイズも変更される)。フレーム上に単一のウィンドウしか存在しなければ、フレームの変更以外にウィンドウのサイズ変更はできません(Size and Positionを参照)。

注記した場合を除き、これらの関数は引数として内部ウィンドウも許容します。内部ウィンドウのリサイズにより、同じスペースにフィットするように子ウィンドウもリサイズされます。

Function: window-resizable window delta &optional horizontal ignore pixelwise

この関数はwindowのサイズがdelta行により垂直に変更され得る場合にはdeltaをリターンする。オプション引数horizontalが非nilの場合には、windowdelta列単位に水平方向にリサイズ可能ならかわりにdeltaをリターンする。これは実際にはウィンドウのサイズを変更しない。

windownilの場合のデフォルトは選択されたウィンドウ。

deltaが正の値ならそのウィンドウが行または列の単位で拡張可能かどうかをチェックすることを意味し、deltaが負の値ならそのウィンドウが行または列の単位で縮小可能かどうかをチェックすることを意味する。deltaが非0の場合のリターン値0は、そのウィンドウがリサイズ可能であることを意味する。

変数window-min-heightwindow-min-widthには通常は許容される最小のウィンドウサイズを指定する(Window Sizesを参照)。しかしオプション引数ignoreが非nilなら、この関数はwindow-size-fixedと同様にwindow-min-heightwindow-min-widthを無視する。そのかわりに(もしあれば)ヘッダーライン、モードライン、水平スクロールバー、下端ディバイダーに加えて1行分の高さのテキストエリアから構成されるウィンドウを最小高さのウィンドウとし、(もしあれば)フリンジ、マージン、スクロールバー、右ディバイダーに加えて1列分の幅のテキストエリアから構成されるウィンドウを最小幅のウィンドウと判断する。

オプション引数pixelwiseが非nilならdeltaはピクセル単位として解釈される。

Function: window-resize window delta &optional horizontal ignore pixelwise

この関数はwindowdelta増加することによりリサイズを行う。horizontalnilなら高さをdelta行、それ以外は幅をdelta行変更する。正のdeltaはウィンドウの拡大、負のdeltaは縮小を意味する。

windownilの場合のデフォルトは選択されたウィンドウ。要求されたようにウィンドウをリサイズできなければエラーをシグナルする。

オプション引数ignoreは上述の関数window-resizableの場合と同じ意味をもつ。

オプション引数pixelwiseが非nilならdeltaはピクセル単位として解釈される。

この関数がどのウィンドウのエッジを変更するかの選択はオプションwindow-combination-resizeの値、および関連するウィンドウのコンビネーションリミット(combination limits: 組み合わせ制限)に依存し、両方のエッジを変更するような場合もいくつかある。Recombining Windowsを参照のこと。ウィンドウの下端か右端のエッジを移動することだけでリサイズするには関数adjust-window-trailing-edgeを使用すること。

Function: adjust-window-trailing-edge window delta &optional horizontal pixelwise

この関数はwindowの下端エッジをdelta行分移動する。オプション引数horizontalが非nilなら、かわりに右端エッジをdelta列分移動する。windownilの場合のデフォルトは選択されたウィンドウ。

オプション引数pixelwiseが非nilならdeltaはピクセル単位として解釈される。

正のdeltaはエッジを下方か右方へ移動し、負のdeltaはエッジを上方か左方へ移動する。deltaで指定された範囲までエッジを移動できなければ、この関数はエラーをシグナルすることなく可能な限りエッジを移動する。

この関数は移動されたエッジに隣接するウィンドウのリサイズを試みる。何らかの理由(隣接するウィンドウが固定サイズの場合等)によりそれが不可能なら、他のウィンドウをリサイズするかもしれない。

User Option: window-resize-pixelwise

このオプションの値が非nilならEmacsはウィンドウをピクセル単位でリサイズする。これは現在のところsplit-window (Splitting Windowsを参照)、maximize-windowminimize-windowfit-window-to-bufferfit-frame-to-buffershrink-window-if-larger-than-buffer (すべて以下に記述)のような関数に影響を与える。

あるフレームのピクセルサイズがそのフレームの文字サイズの整数倍でないときは、たとえこのオプションがnilであっても少なくとも1つのウィンドウがピクセル単位でリサイズされるであろうことに注意。デフォルト値はnil

以下のコマンドは、より具体的な方法でウィンドウをリサイズします。これらがインタラクティブに呼び出されたときは選択されたウィンドウにたいして作用します。

Command: fit-window-to-buffer &optional window max-height min-height max-width min-width preserve-size

このコマンドはwindowの高さか幅をウィンドウ内のテキストにフィットするように調整する。windowがリサイズできたら非nil、それ以外はnilをリターンする。windowが省略またはnilの場合のデフォルトは選択されたウィンドウ、それ以外の場合には生きたウィンドウであること。

windowが垂直コンビネーションの一部なら、この関数はwindowの高さを調整する。新たな高さはそのウィンドウのバッファーのアクセス可能な範囲の実際の高さから計算される。オプション引数max-heightが非nilなら、それはこの関数がwindowに与えることができる最大のトータル高さを指定する。オプション引数min-heightが非nilなら、それは与えることができる最小のトータル高さを指定して、それは変数window-min-heightをオーバーライドする。max-heightmin-heightはいずれも、(もしあれば)モードライン、ヘッダーライン、下端ディバイダーを含む行数で指定する。

windowが水平コンビネーションの一部で、かつオプションfit-window-to-buffer-horizontally (以下参照)の値が非nilなら、この関数はwindowの幅を調整する。新たな幅はwindowのカレントのスタート位置以降のバッファーの最長の行から計算される。オプション引数max-widthは最大幅を指定し、デフォルトはwindowのフレーム幅。オプション引数min-widthは最小幅を指定し、デフォルトはwindow-min-widthmax-widthmin-widthはいずれも、(もしあれば)フリンジ、マージン、スクロールバーを含む列数で指定する。

オプション引数preserve-sizeが非nilなら、将来のリサイズ操作の間のwindowのサイズを予約するパラメーターをインストールする(Preserving Window Sizesを参照)。

オプションfit-frame-to-buffer (以下参照)が非nilなら、この関数はfit-frame-to-buffer (以下参照)を呼び出すことにより、windowのコンテンツにフィットするようにwindowのフレームのリサイズを試みるだろう。

User Option: fit-window-to-buffer-horizontally

これが非nilなら、fit-window-to-bufferはウィンドウを水平方向にリサイズできる。これがnil (デフォルト)ならfit-window-to-bufferはウィンドウ決して水平方向にリサイズしない。これがonlyならウィンドウを水平方向だけにリサイズできる。その他の値ではfit-window-to-bufferがウィンドウをどちらの方向にもリサイズできることを意味する。

User Option: fit-frame-to-buffer

このオプションが非nilなら、fit-window-to-bufferはフレームをフレームのコンテンツにフィットさせることができる。フレームは、フレームのルートウィンドウが生きたウィンドウで、かつこのオプションが非nilの場合のみフィットされる。horizontallyならフレームは水平方向にのみフィットされる。verticallyならフレームは垂直方向にのみフィットされる。その他の非nil値はフレームがどちらの方向にもフィットできることを意味する。

単一のウィンドウだけを表示するフレームではコマンドfit-frame-to-bufferを使用してそのバッファーにフレームをフィットできます。

Command: fit-frame-to-buffer &optional frame max-height min-height max-width min-width only

このコマンドはframeのサイズを、表示しているバッファーのコテンツに正確に調整する。frameには任意の生きたフレームを指定できデフォルトは選択されたフレーム。frameのルートウィンドウが生きている場合のみフィットが行われる。引数max-heightmin-heightmax-widthmin-widthframeのルートウィンドウの新たなトータルサイズの境界を指定する。min-heightmin-widthのデフォルトはそれぞれwindow-min-heightwindow-min-width

この関数はオプション引数onlyverticallyなら垂直方向のみ、onlyhorizontallyなら水平方向のみフレームをリサイズする。

fit-frame-to-bufferの振る舞いは次にリストする2つのオプションで制御可能です。

User Option: fit-frame-to-buffer-margins

このオプションはfit-frame-to-bufferによりフィットされるフレーム周囲のマージンの指定に使用できる。このようなマージンは、たとえばフレームとタスクバーが重なることを回避するために有用。

これはフィットされるフレームの左右上下にフリーとして残されるピクセル数を指定する。デフォルトのnilはそれぞれにたいしてマージンを使用しないことを指定する。ここで指定した値は、特定のフレームにたいしてもしそのフレームのfit-frame-to-buffer-marginsが与えられればオーバーライドされ得る。

User Option: fit-frame-to-buffer-sizes

このオプションはfit-frame-to-bufferにたいしてサイズ境界を指定する。これは自身のバッファーにフィットされる任意のフレームのルートウィンドウの最大行と最小行、最大列と最小列のトータルを指定する。これらの値のいずれかが非nilなら、fit-frame-to-bufferの対応する引数をオーバーライドする。

Command: shrink-window-if-larger-than-buffer &optional window

このコマンドはwindowにたいしてそのバッファーを完全に表示できるが、window-min-height以上の行を表示できるまで可能な限りwindowの高さを縮小する。リターン値はそのウィンドウがリサイズされれば非nil、それ以外なら非nilwindowが省略またはnilの場合のデフォルトは選択されたウィンドウ。それ以外では生きたウィンドウであること。

このコマンドはそのウィンドウがバッファーのすべてを表示するにはすでに高さが低すぎる場合、バッファーのどこかがスクリーンからスクロールオフされている場合、またはそのウィンドウがフレーム内で唯一の生きたウィンドウの場合は何も行わない。

このコマンドは自身の処理を行うためにfit-window-to-buffer (上記参照)を呼び出す。

Command: balance-windows &optional window-or-frame

この関数は各ウィンドウにたいして完全な幅、および/または完全な高さを与えるような方法によって各ウィンドウのバランスをとる。window-or-frameにフレームを指定すると、そのフレーム上のすべてのウィンドウのバランスをとる。window-or-frameにウィンドウを指定すると、そのウィンドウとウィンドウのsiblings(兄弟)にたいしてのみのバランスをとる(Windows and Framesを参照)。

Command: balance-windows-area

この関数は選択されたフレーム上のすべてのウィンドウにたいして、おおよそ同じスクリーンエリアを与えようと試みる。完全な幅か高さをもつウィンドウにたいしては、他のウィンドウと比較してより多くのスペースは与えられない。

Command: maximize-window &optional window

この関数は、windowにたいして、そのフレームをリサイズしたり他のウィンドウを削除することなく、水平垂直の両方向で可能な限り大きくなるように試みる。windowが省略またはnilの場合のデフォルトは選択されたウィンドウ。

Command: minimize-window &optional window

この関数はwindowにたいして、そのフレームをリサイズしたりそのウィンドウを削除することなく、水平垂直の両方向で可能な限り小さくなるように試みる。windowが省略またはnilの場合のデフォルトは選択されたウィンドウ。