30.23 Вставка медиа

Данные, сохраненные в системных выделениях окна, не ограничиваются простым текстом. Возможно, данные выделения включают изображения или другие бинарные данные аналогичного типа, а также контент с богатым текстом, представленный HTML, и PostScript. Поскольку типы данных, связанные с этими данными, отличаются от тех, что используются для простого текста, вставка таких данных облегчается набором функций, названных обработчики вставки медиа (yank-media handlers), которые регистрируются каждым основным режимом для выполнения вставки и вызываются при необходимости при выполнении команды yank-media.

Функция: yank-media-handler types handler

Зарегистрируйте обработчик вставки медиа, который применяется к текущему буферу.

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

(yank-media-handler 'text/html #'my-html-handler)
(yank-media-handler "image/.*" #'my-image-handler)

Когда выделение предлагает тип данных, соответствующий types, вызывается функция handler для вставки его данных, с символом, обозначающим соответствующий тип данных выделения, и данными, возвращенными функцией gui-get-selection.

Команда yank-media-types представляет список типов данных выделения, которые в настоящее время доступны, что полезно при реализации обработчиков вставки медиа; поскольку программы обычно предлагают эклектичную и редко согласованную смесь типов данных.