以下の関数でフレームのパラメーター値の読み取りと変更ができます。
この関数はframeのパラメーターparameter
(シンボル)の値をリターンする。frameがnil
なら選択されたフレームのパラメーターをリターンする。frameがparameterにたいするセッティングをもたなければ、この関数はnil
をリターンする。
関数frame-parameters
はframeのすべてのパラメーターとその値をリストするalistをリターンする。frameが省略またはnil
なら選択されたフレームのパラメーターをリターンする。
この関数はalistの要素にもとづきフレームframeを変更する。alist内の要素はそれぞれ(parm
. value)
という形式をもつ。ここでparmはパラメーターを名付けるシンボルである。
alist内に指定されないパラメーターの値は変更されない。frameがnil
の場合のデフォルトは選択されたフレーム。
いくつかのパラメーターは特定の種類のディスプレイ上のフレーム(フレームを参照)でのみ意味がある。frameのディスプレイで意味をもたないパラメーターがalistに含まれているようなら、この関数はそのフレームのパラメーターリスト内の値を変更するが、その他の値を変更しないパラメーターは無視するだろう。
frameの新たなサイズに影響し得る値をもつようなパラメーターがalistで複数指定されている際には、フレームの最終的なサイズは使用しているツールキットに応じて異なるかもしれない。たとえばあるフレームにたいしてメニューバーおよび/またはツールバーをもたない状態から保有するように指定して、同時に新たなフレーム高さを指定すると、必然的にフレームの高さの再計算を招くだろう。そのようなケースでは、概念的にはこの関数は明示的な高さ指定を優先するよう試みる。しかしツールキットによりその後に処理されるメニューバーやツールバーの追加(や削除)を除外することはできないので、高さ指定を優先するという意図は打ち消されてしまうだろう。
ここで概略した問題は、この関数の呼び出し前後にframe-inhibit-implied-resize
(フレームの暗黙的なリサイズを参照)を非nil
値にバインドすることで訂正できる場合がある。しかしそのようなバインディングが正に問題を引き起こす場合もある。
この関数はフレームパラメーターparmに指定されたvalueをセットする。frameがnil
の場合のデフォルトは選択されたフレーム。
この関数は
alistに応じて既存のフレームすべてのフレームパラメーターを変更してから、今後に作成されるフレームに同じパラメーター値を適用するために、default-frame-alist
(必要ならinitial-frame-alist
も)を変更する。