30.28 Проверка возможностей дисплея

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

Необязательный аргумент display в этих функциях указывает, какой дисплей опрашивается. Это может быть имя дисплея, кадр (который обозначает дисплей, на котором находится этот кадр) или nil (что означает дисплей выбранного кадра, см. Ввод фокуса).

См. Имена цветов, Цвета текстового терминала для других функций получения информации о дисплеях.

Функция: display-popup-menus-p &optional display

Эта функция возвращает t, если всплывающие меню поддерживаются на display, и nil в противном случае. Поддержка всплывающих меню требует наличия мыши, поскольку меню вызывается щелчком мыши на какой-либо части дисплея Emacs.

Функция: display-graphic-p &optional display

Эта функция возвращает t, если display является графическим дисплеем, способным одновременно отображать несколько кадров и несколько различных шрифтов. Это верно для дисплеев, использующих оконную систему, такую как X, и ложно для текстовых терминалов.

Функция: display-mouse-p &optional display

Эта функция возвращает t, если на display доступна мышь, и nil в противном случае.

Функция: display-color-p &optional display

Эта функция возвращает t, если экран является цветным.

Функция: display-grayscale-p &optional display

Эта функция возвращает t, если экран может отображать оттенки серого. (Все цветные дисплеи могут это делать.)

Функция: display-supports-face-attributes-p attributes &optional display

Эта функция возвращает не nil, если все атрибуты лица в attributes поддерживаются (см. Атрибуты лиц).

Определение «поддерживается» в некоторой степени эвристическое, но в основном означает, что лицо, содержащее все атрибуты из attributes, при объединении с лицом по умолчанию для дисплея может быть представлено способом, который

  1. отличается по внешнему виду от лица по умолчанию, и
  2. близок по духу к заданным атрибутам, если не точно.

Пункт (2) подразумевает, что атрибут :weight black будет удовлетворён любым дисплеем, который может отображать жирный шрифт, как и :foreground "yellow" до тех пор, пока может быть отображён какой-либо желтоватый цвет, но :slant italic не будет удовлетворён автоматической заменой кода tty-дисплея тусклого лица на курсив.

Функция: display-selections-p &optional display

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

Функция: display-images-p &optional display

Эта функция возвращает t, если display может отображать изображения. Оконные дисплеи в принципе должны поддерживать изображения, но в некоторых системах отсутствует поддержка этого. На дисплее, который не поддерживает изображения, Emacs не может отображать панель инструментов.

Функция: display-screens &optional display

Эта функция возвращает количество экранов, связанных с дисплеем.

Функция: display-pixel-height &optional display

Эта функция возвращает высоту экрана в пикселях. На символьном терминале она возвращает высоту в символах.

Для графических терминалов обратите внимание, что в конфигурациях с несколькими мониторами это относится к высоте в пикселях для всех физических мониторов, связанных с display. См. Несколько терминалов.

Функция: display-pixel-width &optional display

Эта функция возвращает ширину экрана в пикселях. На символьном терминале она возвращает ширину в символах.

Для графических терминалов обратите внимание, что в конфигурациях с несколькими мониторами это относится к ширине в пикселях для всех физических мониторов, связанных с display. См. Несколько терминалов.

Функция: display-mm-height &optional display

Эта функция возвращает высоту экрана в миллиметрах или nil, если Emacs не может получить эту информацию.

Для графических терминалов обратите внимание, что в конфигурациях с несколькими мониторами это относится к высоте для всех физических мониторов, связанных с display. См. Несколько терминалов.

Функция: display-mm-width &optional display

Эта функция возвращает ширину экрана в миллиметрах или nil, если Emacs не может получить эту информацию.

Для графических терминалов обратите внимание, что в конфигурациях с несколькими мониторами это относится к ширине для всех физических мониторов, связанных с display. См. Несколько терминалов.

Пользовательская опция: display-mm-dimensions-alist

Эта переменная позволяет пользователю задать размеры графических дисплеев, возвращаемые display-mm-height и display-mm-width, в случае, если система предоставляет некорректные значения.

Функция: display-backing-store &optional display

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

Значениями могут быть символы always, when-mapped или not-useful. Функция также может возвращать nil, когда вопрос неприменим к определённому виду дисплея.

Функция: display-save-under &optional display

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

Функция: display-planes &optional display

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

Функция: display-visual-class &optional display

Эта функция возвращает визуальный класс для экрана. Значением является один из символов static-gray (ограниченное, неизменяемое число оттенков серого), gray-scale (полный диапазон оттенков серого), static-color (ограниченное, неизменяемое число цветов), pseudo-color (ограниченное число цветов), true-color (полный диапазон цветов) и direct-color (полный диапазон цветов).

Функция: display-color-cells &optional display

Эта функция возвращает количество цветовых ячеек, поддерживаемых экраном.

Эти функции получают дополнительную информацию об оконной системе, используемой в том месте, где Emacs показывает указанный display. (Их имена начинаются с x- по историческим причинам.)

Функция: x-server-version &optional display

Эта функция возвращает список номеров версий графической оконной системы, работающей на display, например X-сервера в системах GNU и Unix. Значением является список из трёх целых чисел: основной и дополнительный номера версии протокола, а также номер выпуска, зависящий от распространителя, самого программного обеспечения оконной системы. В системах GNU и Unix это обычно версия протокола X и зависящий от распространителя номер выпуска программного обеспечения X-сервера. В MS-Windows это версия ОС Windows.

Функция: x-server-vendor &optional display

Эта функция возвращает поставщика, предоставившего программное обеспечение оконной системы (в виде строки). В системах GNU и Unix это на самом деле означает того, кто распространяет X-сервер. В MS-Windows это строка идентификатора поставщика ОС Windows (Microsoft).

Когда разработчики X назвали распространителей программного обеспечения «поставщиками», они показали своё ложное предположение, что никакая система не может быть разработана и распространена некоммерчески.