Next: , Previous: , Up: Frame Parameters   [Contents][Index]


28.3.4 Frame Size And Position

フレームパラメーターlefttopheightwidthを使用することにより、フレームのサイズと位置の読み取りや変更ができます。未指定のジオメトリーパラメーターは、それが何であれウィンドウマネージャーの通常の方法により選択されます。

以下はサイズやポジションの特別な機能にたいして動作します(正確には、これらの関数により使用される“選択されたフレーム”にたいして動作するという意味。Input Focusを参照のこと)。

Function: set-frame-position frame left top

この関数は、frameの左上隅をlefttopにセットする。これらの引数はピクセル単位で、通常はスクリーンの左上隅から測られる。

負のパラメーター値は、スクリーン下端から上方向にウィンドウ下端、またはスクリーン右端から左方向にウィンドウ右端の位置である。この値が常に左上隅から数えるようにして、負の引数ならフレームの一部をスクリーン左上隅の外側に配置するようにしたほうがよいのだろうが、今更これを変更するのは賢明と思えない。

Function: frame-height &optional frame
Function: frame-width &optional frame

これらの関数は、行または列で測ったframeの高さまたは幅をリターンする。frameを指定しないと選択されたフレームを使用する。

Function: frame-pixel-height &optional frame
Function: frame-pixel-width &optional frame

これらの関数は、ピクセルで測ったframeの主要表示領域の高さまたは幅をリターンする。frameを指定しないと選択されたフレームを使用する。テキスト端末では、結果はピクセルではなく文字単位となる。

これらの値には各ウィンドウの内枠ボーダー(internal borders)、スクロールバー、フリンジ(これらはフレーム自体ではなく個別のウィンドウに属す)が含まれる。高さの正確な値は、そのウィンドウシステムと使用するツールキットに依存する。GTK+では、高さにツールバーやメニューバーは含まれない。MotifとLucidのツールキットでは、ツールバーは含まれるが、メニューバーは含まれない。ツールキットなしのグラフィカルなバージョンでは、ツールバーとメニューバーの両方が含まれる。テキスト端末の場合は、結果にメニューバーが含まれる。

Function: frame-char-height &optional frame
Function: frame-char-width &optional frame

これらの関数は、ピクセルで測ったframeの高さまたは幅をリターンする。値は選択されたフォントに依存する。frameを指定しないと選択されたフレームを使用する。

User Option: frame-resize-pixelwise

このオプションがnilなら、フレームのサイズは、通常はそのフレームのframe-char-heightframe-char-widthのカレント値の倍数に丸められる。非nilの場合、丸めは行われずフレームのサイズはピクセル単位で増加/減少が可能になる。

これをセットすることにより、次回のリサイズ処理では、ウィンドウマネージャーにこれに相当するサイズのヒントを渡す。これは、ユーザーの初期ファイル内でのみこの変数をセットすべきで、アプリケーションが一時的にこれをバインドすべきではないことを意味する。

このオプションにたいしてnil値がもつ正確な意味は、使用されるツールキットに依存する。マウスによるフレームボーダーのドラッグは、通常は文字単位で行われる。文字サイズの整数倍ではないフレームサイズを引数としてset-frame-size(以下参照)を呼び出すと、もしかしたら丸められたり(GTK+)、あるいは受容される(Lucid、Motif、MS-Windows)かもしれない。

いくつかのウィンドウマネージャーでは、フレームを本当に“最大化”あるいは“全画面”で表示させるためには、これを非nilにセットする必要があるかもしれない。

Function: set-frame-size frame width height pixelwise

この関数は、文字単位でframeのサイズをセットする。widthは列数で新たな幅を指定し、heightは行数で新たな高さを指定する。

オプション引数pixelwiseが非nilの場合は、かわりにピクセル単位で新たな幅と高さを測ることを意味する。frame-resize-pixelwisenilの場合、それが文字の整数倍でフレームサイズを増加あるいは減少させないなら、この要求を完全には尊重せずに拒絶するツールキットがいくつかあることに注意されたい。

Function: set-frame-height frame height &optional pretend pixelwise

この関数は、frameを高さheight行にリサイズする。frame内の既存ウィンドウのサイズは、フレームにフィットするよう比例して変更される。

pretendが非nilの場合、Emacsはframe内でheight行の出力を表示するが、そのフレームの実際の高さにたいする値は変更しない。これはテキスト端末上でのみ有用である。端末が実際に実装するより小さい高さの使用は、より小さいスクリーン上での振る舞いの再現したり、スクリーン全体を使用時の端末の誤動作を観察するとき有用かもしれない。フレームの高さを“実際”のようにセットするのは、常に機能するとは限らない。なぜなら、テキスト端末上でのカーソルを正しく配置するために、正確な実サイズを知る必要があるかもしれないからである。

オプションの第4引数pixelwiseが非nilなら、それはframeの高さがheightピクセル高くなることを意味する。frame-resize-pixelwisenilの場合、それが文字の整数倍でフレームサイズを増加あるいは減少させないなら、この要求を完全には尊重せずに拒絶するツールキットがいくつかあることに注意されたい。

Function: set-frame-width frame width &optional pretend pixelwise

この関数は、文字単位でframeの幅をセットする。引数pretendは、set-frame-heightのときと同じ意味をもつ。

オプションの第4引数pixelwiseが非nilなら、それはframeの幅がheightピクセル広くなることを意味する。frame-resize-pixelwisenilの場合、それが文字の整数倍でフレームサイズを増加あるいは減少させないなら、この要求を完全には尊重せずに拒絶するツールキットがいくつかあることに注意されたい。

ウィンドウ1つだけを表示するフレームの場合は、コマンドfit-frame-to-bufferを使用してそのフレームをウィンドウのバッファーにフィットさせることができます。

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

このコマンドは、frame内のバッファーのコンテンツを正確に表示するために、frameのサイズを調整する。frameには任意の生きたフレームを指定でき、デフォルトは選択されたフレームである。この調整は、frameのルートウィンドウが生きている場合のみ行われる。引数max-heightmin-heightmax-widthmin-widthframeのルートウィンドウの新たなトータルサイズの境界を指定する。min-heightmin-widthのデフォルトは、window-min-heightおよびwindow-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の相当する引数をオーバーライドする。