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


28.3.3 Size and Position

フレームパラメーターlefttop (Position Parametersを参照)を使用してフレームの位置、およびパラメーターheightwidth (Size Parametersを参照)を使用してフレームのサイズの読み取りや変更ができます。サイズと位置を処理するために特別な機能があります。これらの関数すべてにたいして、引数frameは生きたフレームでなければならず、デフォルトは選択されたフレームです。

Function: frame-position &optional Lisp_Object &optional frame

この関数はframeのアウター位置(Frame Layoutを参照)のピクセル単位でリターンする。値はframeのアウターフレームの左上隅にたいして、フレームのディスプレーの位置(0, 0)から相対的な座標を与えるコンス。テキスト端末フレームではいずれも0。

Function: set-frame-position frame X Y

この関数はframeのアウターフレームの位置をXYにセットする。後者の引数はピクセル単位で、通常はframeのディスプレーの位置(0, 0)にある原点から計測される。

負のパラメーター値はスクリーン右エッジから-xピクセルのアウターフレームの右エッジ、またはスクリーン下エッジから-yピクセルのアウターフレームの下エッジを指す。

この関数はテキスト端末フレームでは効果がない。

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

これらの関数はframeのインナー高さやインナー幅(ディスプレーエリアの高さと幅。Frame Layoutを参照)をピクセル単位でリターンする。テキスト端末では結果はピクセル単位ではなく文字単位。

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

これらの関数はピクセルで測ったframeのテキストエリア(Frame Layoutを参照)の高さや幅をリターンする。テキスト端末では結果はピクセルではなく文字単位。

frame-text-heightがリターンする値はすべてのインターナルなツールバーとメニューバーの高さ、水平スクロールバーの高さやインターナルボーダーの幅を含まないので、frame-pixel-heightのリターン値とは異なる。

frame-text-width垂直スクロールバーの幅や左右フリンジの幅、およびインターナルボーダーの幅を含まないので、frame-pixel-widthのリターン値とは異なる。

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

これらの関数はframeのテキストエリアの高さと幅を、frameのデフォルトフォントの高さと幅を単位に計測してリターンする。これらの関数は単に(frame-parameter frame 'height)(frame-parameter frame 'width)を略記したもの。

ピクセルで計測した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 &optional pixelwise

この関数はframeのテキストエリアのサイズを、frameの文字の正準高さと正準幅で計測した単位でセトする(Frame Fontを参照)。

オプション引数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のテキストエリアの幅をセットする。引数pretendset-frame-heightのときと同じ意味をもつ。

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

これら3つの関数のうち、すべてのウィンドウとともにスクロールバー、フリンジ、マージン、ディバイダー、モードライン、ヘッダーラインを表示するために必要なサイズよりフレームを小さくする関数はありません。これはたとえばマウスによるフレームのエクスターナルボーダーのドラッグのようなウィンドウマネージャーのリクエストとは対照的です。フレーム右下隅にある表示できない部分は必要に応じてクリッピングするとにより、そのようなリクエストは常に尊重されます。