我正在为emacs设置自己的次要模式。现在,我想向modeline添加按钮。单击此按钮必须出现弹出菜单。该菜单的项目取决于用户的操作。我知道有一种方法可以用`minor-mode-alist'向modeline添加一个功能按钮,但是我不知道如何制作动态菜单。
最佳答案
好的。解决方案已建立。:)
首先:定义一些键盘映射:
(defconst my-mode-line-map
(let ((map (make-sparse-keymap)))
(define-key map [mode-line down-mouse-1]
(make-sparse-keymap))
map))
第二:将带有适当字符串的列表追加到modeline:
(setq global-mode-string
(append global-mode-string
(list
(propertize string-name
'local-map my-mode-line-map
'mouse-face 'mode-line-highlight))))
第三:现在您可以使用添加项目
(define-key my-mode-line-map
(vconcat [mode-line down-mouse-1]
(list some_generated_id_for_future_use))
(cons name function))
...然后用
(define-key my-mode-line-map
(vconcat [mode-line down-mouse-1]
(list id_of_button_that_u_gave_when_add))
nil)
关于emacs - 将带有动态菜单的按钮添加到emacs的modeline吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9019717/