Определение меню
Ключевая карта действует как меню, если она имеет общую строку подсказки, которая отображается как элемент ключевой карты. (См. Формат ключевых карт.) Строка должна описывать назначение команд меню. Emacs отображает общую строку подсказки в качестве названия меню в некоторых случаях, в зависимости от используемого инструментария (если таковой имеется) для отображения меню.17 Меню клавиатуры также отображают общую строку подсказки.
Самый простой способ создать ключевую карту с строкой подсказки — указать строку в качестве аргумента при вызове make-keymap, make-sparse-keymap (см. Создание ключевых карт) или define-prefix-command (см. Определение define-prefix-command). Если вы не хотите, чтобы ключевая карта работала как меню, не указывайте для нее строку подсказки.
- Функция: keymap-prompt keymap
Эта функция возвращает общую строку подсказки для keymap или
nil, если таковой нет.
Элементы меню — это привязки в ключевой карте. Каждая привязка связывает тип события с определением, но типы событий не имеют значения для отображения меню. (Обычно в качестве типов событий для привязок элементов меню используются псевдособытия, символы, которые клавиатура не может сгенерировать.) Меню генерируется полностью из привязок, соответствующих этим событиям в ключевой карте.
Порядок элементов в меню совпадает с порядком привязок в ключевой карте. Поскольку define-key помещает новые привязки в начало, вам следует определять элементы меню, начиная с нижней части меню и перемещаясь вверх, если вам важен порядок. При добавлении элемента в существующее меню вы можете указать его положение в меню с помощью define-key-after (см. Изменение меню).
| • Простые элементы меню | Простой вид привязки клавиш к меню. | |
| • Расширенные элементы меню | Более сложные определения элементов меню. | |
| • Разделители меню | Проведение горизонтальной линии через меню. | |
| • Псевдонимы элементов меню | Использование псевдонимов команд в элементах меню. |
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/Defining-Menus.html