30.4.1 框架参数访问

以下函数用于读取和修改框架的参数值。

Function: frame-parameter frame parameter

该函数返回 frame 的参数 parameter(一个符号)的值。 如果 framenil,返回当前选中框架的参数。 如果 frame 未设置该参数,函数返回 nil

Function: frame-parameters &optional frame

函数 frame-parameters 返回一个关联列表, 列出 frame 的所有参数及其值。 如果 framenil 或省略,返回当前选中框架的参数。

Function: modify-frame-parameters frame alist

该函数根据 alist 中的元素修改框架 framealist 中每个元素格式为 (parm . value), 其中 parm 是表示参数名的符号。 未在 alist 中出现的参数,其值保持不变。 如果 framenil,默认为当前选中框架。

部分参数仅对特定类型显示的框架有效(see 框架)。 如果 alist 包含对该框架显示无效的参数, 函数会在框架参数列表中修改其值,但在其他方面忽略它。

alist 同时指定多个会影响框架新尺寸的参数时, 框架最终大小可能因所用工具包而异。 例如,同时指定框架从无菜单/工具栏改为显示菜单/工具栏、 并设置新高度,必然会导致框架高度重新计算。 理论上,此函数会尽量让显式指定的高度优先生效。 但不能排除工具包最终添加/移除菜单或工具栏时, 会违背这一意图。

有时,在调用此函数时将 frame-inhibit-implied-resize (see 框架隐式调整大小)绑定为非 nil 可以解决上述问题; 但有时,恰恰是这种绑定会引发问题。

Function: set-frame-parameter frame parm value

该函数将框架参数 parm 设置为指定的 value。 如果 framenil,默认为当前选中框架。

Function: modify-all-frames-parameters alist

该函数根据 alist 修改所有现有框架的参数, 然后修改 default-frame-alist(必要时还会修改 initial-frame-alist), 使后续创建的框架也应用相同参数值。