每个按钮都有一组关联属性,用于定义其外观与行为, 同时也可以使用其他任意属性来实现应用专用的功能。 以下属性对按钮库具有特殊含义:
action ¶用户触发按钮时调用的函数,该函数接收唯一参数 button。
默认值为 ignore,即不执行任何操作。
mouse-action ¶与 action 类似,如果存在该属性,
则在鼠标点击触发按钮时(而非用户按下 RET)
会使用它代替 action。
如果不存在,则鼠标点击仍使用 action。
face ¶Emacs 的文本视觉样式,用于控制此类按钮的显示效果;
默认为 button 文本视觉样式。
mouse-face ¶额外的文本视觉样式,用于控制鼠标悬停时的外观
(与按钮默认的文本视觉样式叠加);
默认为 Emacs 标准的 highlight 文本视觉样式。
keymap ¶按钮的键盘映射,定义在按钮区域内生效的按键绑定。
默认使用标准按钮区域键盘映射,存储在变量 button-map 中,
该映射将 RET 和 mouse-2 绑定为触发按钮。
type ¶按钮类型。See 按钮类型。
help-echo ¶Emacs 提示帮助系统显示的字符串;默认值为
"mouse-2, RET: Push this button"。
它也可以是一个返回字符串的函数,
或一个求值后得到字符串或 nil 的表达式。
详细说明见 Text help-echo。
该函数接收三个参数:window、object 和 pos。
第二个参数 object,
对于覆盖层按钮是携带该属性的覆盖层,
对于文本属性按钮则是包含按钮的缓冲区。
其余参数的含义与特殊文本属性 help-echo 一致。
follow-link ¶follow-link 属性,用于定义 mouse-1
点击该按钮时的行为,See 定义可点击文本。
button ¶所有按钮都具有非 nil 的 button 属性,
这在查找构成按钮的文本区域时非常有用
(标准按钮函数正是这样实现的)。
按钮所在的文本区域还定义了其他属性, 但在一般使用场景下通常无需关心。