Spec-Zone.ru › Elisp

Простое меню

Следующая макрокоманда предоставляет удобный способ определения всплывающих меню и/или меню панели меню.

Макрокоманда: easy-menu-define символ карты меню документа

Эта макрокоманда определяет всплывающее меню и/или подменю панели меню, содержимое которых задается параметром меню.

Если символ не nil, он должен быть символом; тогда эта макрокоманда определяет символ как функцию для отображения меню (см. Всплывающие меню), со строкой документации документ. Символ не должен быть заключён в кавычки.

Независимо от значения символ, если карты — это карта-ключ, меню добавляется в эту карту-ключ в качестве верхнего уровня меню для панели меню (см. Панель меню). Это также может быть список карт-ключей, в этом случае меню добавляется отдельно в каждую из этих карт-ключей.

Первый элемент меню должен быть строкой, которая служит меткой меню. За ней может следовать любое количество пар ключевых аргументов:

:filter function

функция должна быть функцией, которая, если вызвана с одним аргументом — списком других элементов меню, возвращает фактические элементы, которые будут отображаться в меню.

:visible include

включить — это выражение; если оно вычисляется как nil, меню делается невидимым. :included — это псевдоним для :visible.

:active enable

включить — это выражение; если оно вычисляется как nil, меню не выбирается. :enable — это псевдоним для :active.

Остальные элементы в меню — это элементы меню.

Элемент меню может быть вектором из трёх элементов, [name callback enable]. название — это имя элемента меню (строка). обработчик_события — это команда для выполнения или выражение для вычисления, когда элемент выбран. включить — это выражение; если оно вычисляется как nil, элемент отключён для выбора.

В качестве альтернативы, элемент меню может иметь вид:

   [ name callback [ keyword arg ]... ]

где название и обработчик_события имеют те же значения, что и выше, и каждая необязательная пара ключевое_слово и аргумент должна быть одной из следующих:

:keys keys

ключи — это строка, отображаемая в качестве эквивалента клавиш для элемента меню. Это обычно не требуется, так как эквиваленты клавиш вычисляются автоматически. ключи расширяются с помощью substitute-command-keys перед отображением (см. Клавиши в документации).

:key-sequence keys

ключи — это подсказка, указывающая, какую последовательность клавиш отображать в качестве эквивалента клавиш, в случае, если команда связана с несколькими последовательностями клавиш. Она не имеет эффекта, если ключи не связаны с той же командой, что и этот элемент меню.

:active enable

включить — это выражение; если оно вычисляется как nil, элемент делается невыбираемым. :enable — это псевдоним для :active.

:visible include

включить — это выражение; если оно вычисляется как nil, элемент делается невидимым. :included — это псевдоним для :visible.

:label form

форма — это выражение, которое вычисляется для получения значения, используемого в качестве метки элемента меню (по умолчанию — название).

:suffix form

форма — это выражение, которое динамически вычисляется, а его значение конкатенируется с меткой записи меню.

:style style

стиль — это символ, описывающий тип элемента меню; он должен быть toggle (флажок), или radio (кнопка радио), или что-либо еще (означающее обычный элемент меню).

:selected selected

выбран — это выражение; флажок или кнопка радио выбрана, когда значение выражения не nil.

:help help

справка — это строка, описывающая элемент меню.

В качестве альтернативы, элемент меню может быть строкой. Тогда эта строка появляется в меню как невыбираемый текст. Строка, состоящая из дефисов, отображается как разделитель (см. Разделители меню).

В качестве альтернативы, элемент меню может быть списком с тем же форматом, что и меню. Это подменю.

Вот пример использования easy-menu-define для определения меню, аналогичного тому, которое определено в примере в Панель меню:

(easy-menu-define words-menu global-map
  "Menu for word navigation commands."
  '("Words"
     ["Forward word" forward-word]
     ["Backward word" backward-word]))

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/Easy-Menu.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API