Простые пункты меню
Простейший (и исходный) способ определения пункта меню — привязать к нему какой-либо тип события (тип события значения не имеет) так:
(item-string . real-binding)
Значение CAR, item-string, — это строка, отображаемая в меню. Она должна быть короткой — предпочтительно от одного до трёх слов. Она должна описывать действие соответствующей команды. Обратите внимание, что не все графические наборы инструментов могут отображать текст, не являющийся ASCII, в меню (это будет работать для меню клавиатуры и в значительной степени будет работать с набором инструментов GTK+).
Вы также можете указать вторую строку, называемую строкой справки, следующим образом:
(item-string help . real-binding)
help определяет строку отображения справки, которая отображается, когда курсор мыши находится над этим пунктом, точно так же, как help-echo свойства текста (см. Отображение справки).
Что касается define-key, item-string и help-string являются частью привязки события. Однако, lookup-key возвращает только real-binding, и только real-binding используется для выполнения ключа.
Если real-binding — nil, тогда item-string отображается в меню, но не может быть выбран.
Если real-binding является символом и имеет свойство, отличное от nil menu-enable, это свойство является выражением, которое управляет тем, включен ли пункт меню. Каждый раз, когда используется раскладка для отображения меню, Emacs оценивает выражение, и пункт меню включается только в том случае, если значение выражения не nil. Когда пункт меню отключен, он отображается размыто и не может быть выбран.
Панель меню не пересчитывает, какие пункты включены каждый раз, когда вы просматриваете меню. Это связано с тем, что набору инструментов X требуется весь дерево меню заранее. Чтобы принудительно пересчитать панель меню, вызовите force-mode-line-update (см. Формат строки режима).
Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Simple-Menu-Items.html