Spec-Zone.ru › Elisp

Создание кнопок

Кнопки связаны с областью текста, используя наложение или свойства текста для хранения информации, специфичной для кнопки, все из которых инициализируются из типа кнопки (по умолчанию встроенный тип кнопки button). Как и весь текст Emacs, внешний вид кнопки определяется свойством face; по умолчанию (через свойство face, унаследованное от типа кнопки button) это простая подчеркнутая линия, как у типичной ссылки на веб-странице.

Для удобства существует два типа функций создания кнопок: те, которые добавляют свойства кнопки к существующей области буфера, называемые make-...button, и те, которые также вставляют текст кнопки, называемые insert-...button.

Все функции создания кнопок принимают аргумент &rest properties, который должен быть последовательностью пар свойство значение, определяющих свойства, которые нужно добавить к кнопке; см. Свойства кнопок. Кроме того, можно использовать ключевой аргумент :type, чтобы указать тип кнопки, свойства которого следует унаследовать; см. Типы кнопок. Любые свойства, не указанные явно во время создания, будут унаследованы от типа кнопки (если этот тип определяет такое свойство).

Следующие функции добавляют кнопку, используя наложение (см. Наложения) для хранения свойств кнопки:

Функция: make-button beg end &rest properties

Создает кнопку от beg до end в текущем буфере и возвращает ее.

Функция: insert-button label &rest properties

Вставляет кнопку с меткой label в текущую позицию и возвращает ее.

Следующие функции аналогичны, но используют свойства текста (см. Свойства текста) для хранения свойств кнопки. Такие кнопки не добавляют метки в буфер, поэтому редактирование в буфере не замедляется, если есть очень большое количество кнопок. Однако, если для текста уже задано свойство лица (например, лицо, назначенное режимом Font Lock), лицо кнопки может быть не видно. Обе эти функции возвращают начальную позицию новой кнопки.

Функция: make-text-button beg end &rest properties

Создает кнопку от beg до end в текущем буфере, используя свойства текста.

Функция: insert-text-button label &rest properties

Вставляет кнопку с меткой label в текущую позицию, используя свойства текста.

Функция: button-buttonize string callback &optional data

Иногда удобнее преобразовать строку в кнопку, не вставляя ее сразу в буфер, например, при создании структур данных, которые могут быть вставлены в буфер позже. Эта функция преобразует string в такую строку, а callback будет вызываться при нажатии пользователем на кнопку. Необязательный параметр data будет использоваться как параметр при вызове callback. Если nil, в качестве параметра используется сама кнопка.

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/Making-Buttons.html

Spec-Zone.ru

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