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


29.4.1 フレームパラメーターへのアクセス

以下の関数でフレームのパラメーター値の読み取りと変更ができます。

Function: frame-parameter frame parameter

この関数はframeのパラメーターparameter (シンボル)の値をリターンする。framenilなら選択されたフレームのパラメーターをリターンする。frameparameterにたいするセッティングをもたなければ、この関数はnilをリターンする。

Function: frame-parameters &optional frame

関数frame-parametersframeのすべてのパラメーターとその値をリストするalistをリターンする。frameが省略またはnilなら選択されたフレームのパラメーターをリターンする。

Function: modify-frame-parameters frame alist

この関数はalistの要素にもとづきフレームframeを変更する。alist内の要素はそれぞれ(parm . value)という形式をもつ。ここでparmはパラメーターを名付けるシンボルである。 alist内に指定されないパラメーターの値は変更されない。framenilの場合のデフォルトは選択されたフレーム。

いくつかのパラメーターは特定の種類のディスプレー上のフレーム(Framesを参照)でのみ意味がある。frameのディスプレーで意味をもたないパラメーターがalistに含まれているようなら、この関数はそのフレームのパラメーターリスト内の値を変更するが、その他の値を変更しないパラメーターは無視するだろう。

frameの新たなサイズに影響し得る値をもつようなパラメーターがalistで複数指定されている際には、フレームの最終的なサイズは使用しているツールキットに応じて異なるかもしれない。たとえばあるフレームにたいしてメニューバーおよび/またはツールバーをもたない状態から保有するように指定して、同時に新たなフレーム高さを指定すると、必然的にフレームの高さの再計算を招くだろう。そのようなケースでは、概念的にはこの関数は明示的な高さ指定を優先するよう試みる。しかしツールキットによりその後に処理されるメニューバーやツールバーの追加(や削除)を除外することはできないので、高さ指定を優先するという意図は打ち消されてしまうだろう。

ここで概略した問題は、この関数の呼び出し前後にframe-inhibit-implied-resize (Implied Frame Resizingを参照)を非nil値にバインドすることで訂正できる場合がある。しかしそのようなバインディングが正に問題を引き起こす場合もある。

Function: set-frame-parameter frame parm value

この関数はフレームパラメーターparmに指定されたvalueをセットする。framenilの場合のデフォルトは選択されたフレーム。

Function: modify-all-frames-parameters alist

この関数は alistに応じて既存のフレームすべてのフレームパラメーターを変更してから、今後に作成されるフレームに同じパラメーター値を適用するために、default-frame-alist (必要ならinitial-frame-alistも)を変更する。