42.26 Всплывающие подсказки

Всплывающие подсказки — это специальные фреймы (см. Фреймы), которые используются для отображения полезных подсказок (также известных как «подсказки») относительно текущего положения курсора мыши. Emacs использует всплывающие подсказки для отображения строк справки о активных частях текста (см. Свойства со специальным значением) и о различных элементах пользовательского интерфейса, таких как элементы меню (см. Расширенные элементы меню) и кнопки панели инструментов (см. Панели инструментов).

Функция: tooltip-mode

Режим всплывающих подсказок — это второстепенный режим, который включает отображение всплывающих подсказок. Отключение этого режима приводит к отображению всплывающих подсказок в области эхо. В фреймах текстового режима (также известных как «TTY») всплывающие подсказки всегда отображаются в области эхо.

Когда Emacs собран с использованием инструментария GTK+ или поддержки окон Haiku, по умолчанию он отображает всплывающие подсказки с использованием функций инструментария, а внешний вид всплывающих подсказок затем контролируется настройками инструментария. Всплывающие подсказки, предоставляемые инструментарием, можно отключить, изменив значение переменной use-system-tooltips на nil. Остальная часть этого подраздела описывает, как контролировать неинструментарийные всплывающие подсказки, которые представляются самим Emacs.

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

Пользовательский вариант: tooltip-frame-parameters

Этот настраиваемый вариант содержит параметры фрейма по умолчанию, используемые для отображения всплывающих подсказок. Любые параметры шрифта и цвета игнорируются, и вместо них используются соответствующие атрибуты лица tooltip. Если включены параметры left или top, они используются как абсолютные координаты относительно фрейма, в которых должна отображаться всплывающая подсказка. (Положение всплывающей подсказки относительно мыши можно настроить с помощью переменных, описанных в Всплывающие подсказки в Руководство GNU Emacs.) Обратите внимание, что параметры left и top, если они присутствуют, переопределяют значения смещений относительно мыши.

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

Переменная: tooltip-functions

Этот аномальный хук — это список функций, которые вызываются, когда Emacs нуждается в отображении всплывающей подсказки. Каждая функция вызывается с одним аргументом event, который является копией последнего события движения мыши. Если функция в этом списке фактически отображает всплывающую подсказку, она должна вернуть не-nil, и тогда остальные функции не будут вызваны. Значение по умолчанию этой переменной — одна функция tooltip-help-tips.

Если вы пишете собственную функцию для включения в список tooltip-functions, вам может потребоваться знать буфер, в котором произошло событие, вызвавшее отображение всплывающей подсказки. Следующая функция предоставляет эту информацию.

Функция: tooltip-event-buffer event

Эта функция возвращает буфер, в котором произошло событие event. Вызовите ее с аргументом функции из tooltip-functions, чтобы получить буфер, чей текст вызвал всплывающую подсказку. Обратите внимание, что событие может произойти не над буфером (например, над панелью инструментов), в этом случае эта функция вернет nil.

Другие аспекты отображения всплывающих подсказок контролируются несколькими настраиваемыми настройками; см. Всплывающие подсказки в Руководство GNU Emacs.