フレームのXおよびYオフセットを記述するパラメータは、常にピクセル単位で測定されます。通常の非子フレームの場合、これらはディスプレイの原点に対するフレームの外位置(フレームジオメトリを参照)を指定します。子フレーム(子フレームを参照)の場合、これらは親フレームのネイティブ位置に対するフレームの外位置を指定します。テキスト端末では、これらのパラメータは子フレームに対してのみ意味を持ちます。
left ¶フレームの表示領域または親フレームの左端に対する、フレームの左外端のピクセル単位の位置。以下のいずれかの方法で指定できます。
正の整数は、常にフレームの左端をその表示枠または親フレームの左端に対応させます。負の整数は、フレームの右端を表示枠または親フレームの右端に対応させます。
(+ pos)これは、左フレームの端の位置を、その表示枠または親フレームの左端に対する相対位置として指定します。整数 pos は正または負の値を指定でき、負の値は画面や親フレームの外側、あるいは(マルチモニター表示の場合)プライマリモニター以外のモニター上の位置を指定します。
(- pos)これは、ディスプレイまたは親フレームの右端に対する右フレーム端の位置を指定します。整数 pos は正または負の値を取ることができ、負の値は画面や親フレームの外側、あるいは(マルチモニターディスプレイの場合)プライマリモニター以外のモニター上の位置を指定します。
0.0から1.0の範囲の浮動小数点値は、フレームの左位置比率(外側フレームの左端と、フレームの作業領域(複数端末を参照)または親フレームのネイティブフレーム(子フレームを参照)の幅との比から、外側フレームの幅を引いた値)によって、左端のオフセットを指定します。したがって、左位置比率が0.0の場合はフレームが左端に揃い、0.5の場合は中央に配置され、1.0の場合はディスプレイまたは親フレームの右端に揃います。同様に、フレームの上位置比率は、フレームの上端位置と、作業領域または親フレームの高さからフレームの高さを引いた値との比となります。
Emacsは、子フレームにnil keep-ratio以外のパラメータが設定されており(フレーム相互作用パラメータを参照)、かつその親フレームがリサイズされた場合、子フレームの位置比率を維持しようとします。
フレームの外形サイズ(フレームジオメトリを参照)は、通常、フレームが表示されるまで取得できないため、装飾付きフレームを作成する際に浮動小数点値を使用することは一般的に推奨されません。浮動小数点値は、(装飾のない)子フレームを親フレームの領域内に適切に配置する場合により適しています。
テキスト端末フレームでは、現在浮動小数点値は扱われていません。
一部のウィンドウマネージャは、プログラムで指定した位置を無視することがあります。指定した位置が無視されないことを確実にしたい場合は、以下の例のように、user-position パラメータに nil
以外の値を指定してください。
(modify-frame-parameters nil '((user-position . t) (left . (+ -4))))
一般的に、フレームをディスプレイの右端や下端に合わせて配置することは推奨されません。初期フレームや新規フレームを配置すると、精度が低下する(フレームが表示される前に外枠のサイズが完全には確定していないため)か、あるいは(表示後にフレームを再配置する必要が生じた場合に)さらなるフリッカーが発生します。
また、ディスプレイ、ワークエリア、または親フレームの右端/下端を基準として指定された位置や、浮動小数点オフセットは、内部的にはディスプレイ、ワークエリア、または親フレームの左端/上端を基準とした整数オフセットとして格納される点にも留意してください。これらは
frame-parameters
などの関数によってそのまま返され、デスクトップ保存ルーチンによっても同様に復元されます。
top ¶ディスプレイまたは親フレームの上端(または下端)を基準とした、上端(または下端)のピクセル単位の画面位置です。水平方向ではなく垂直方向である点を除けば、leftと同様に動作します。
icon-left ¶画面の左端から数えた、フレームアイコンの左端の画面上の位置(ピクセル単位)。ウィンドウマネージャがこの機能をサポートしている場合、フレームがアイコン化された際に適用されます。このパラメータに値を指定する場合は、icon-topにも値を指定する必要があり、その逆も同様です。このパラメータはテキスト端末では意味を持ちません。
icon-top ¶画面の上端から数えた、フレームアイコンの上端の画面座標(ピクセル単位)。ウィンドウマネージャがこの機能をサポートしている場合、フレームがアイコン化された際に適用されます。このパラメータはテキスト端末では意味を持ちません。
user-position ¶フレームを作成し、left および top
パラメータでその画面位置を指定する場合、このパラメータを使用して、指定した位置がユーザー指定(人間のユーザーによって何らかの方法で明示的に要求されたもの)であるか、あるいは単なるプログラム指定(プログラムによって選択されたもの)であるかを示します。nil
以外の値は、その位置がユーザー指定であることを示します。このパラメータはテキスト端末では意味を持ちません。
ウィンドウマネージャは一般的にユーザーが指定した位置に従い、中にはプログラムが指定した位置にも従うものもあります。しかし、多くはプログラム指定の位置を無視し、ウィンドウをデフォルトの位置に配置したり、ユーザーがマウスで配置できるようにしたりします。twmを含む一部のウィンドウマネージャでは、プログラム指定の位置に従うか無視するかをユーザーが指定できるようになっています。
make-frameを呼び出す際、leftおよびtopパラメータの値がユーザーの明示した意向を表している場合は、このパラメータにnil以外の値を指定してください。そうでない場合は、nilを使用してください。
z-group ¶このパラメータは、フレームの表示における積層(Z-)順での、フレームのウィンドウシステムウィンドウの相対位置を指定します。テキスト端末ではまだ実装されていません。
これが above の場合、ウィンドウシステムは、above
プロパティが設定されていない他のすべてのウィンドウシステムウィンドウよりも上に、当該フレームに対応するウィンドウを表示します。これが nil の場合、当該フレームのウィンドウは、above
プロパティが設定されているすべてのウィンドウよりも下、かつ below
プロパティが設定されているすべてのウィンドウよりも上に表示されます。これが below
の場合、当該フレームのウィンドウは、below
プロパティが設定されていないすべてのウィンドウよりも下に表示されます。
フレームを特定の別のフレームの上または下に配置するには、frame-restack
関数を使用してください(フレームの昇降と再配置を参照)。