Функции в этом разделе описывают базовые возможности конкретного дисплея. Программы на Lisp могут использовать их для адаптации своего поведения к тому, что дисплей может делать. Например, программа, которая обычно использует всплывающее меню, может использовать минибуфер, если всплывающие меню не поддерживаются.
Необязательный аргумент display в этих функциях указывает, какой
дисплей опрашивается. Это может быть имя дисплея, кадр (который обозначает
дисплей, на котором находится этот кадр) или nil (что означает
дисплей выбранного кадра, см. Ввод фокуса).
См. Имена цветов, Цвета текстового терминала для других функций получения информации о дисплеях.
Эта функция возвращает t, если всплывающие меню поддерживаются на
display, и nil в противном случае. Поддержка всплывающих меню
требует наличия мыши, поскольку меню вызывается щелчком мыши на какой-либо
части дисплея Emacs.
Эта функция возвращает t, если display является графическим
дисплеем, способным одновременно отображать несколько кадров и несколько
различных шрифтов. Это верно для дисплеев, использующих оконную систему,
такую как X, и ложно для текстовых терминалов.
Эта функция возвращает t, если на display доступна мышь,
и nil в противном случае.
Эта функция возвращает t, если экран является цветным.
Эта функция возвращает t, если экран может отображать оттенки серого.
(Все цветные дисплеи могут это делать.)
Эта функция возвращает не nil, если все атрибуты лица в
attributes поддерживаются (см. Атрибуты лиц).
Определение «поддерживается» в некоторой степени эвристическое, но в основном означает, что лицо, содержащее все атрибуты из attributes, при объединении с лицом по умолчанию для дисплея может быть представлено способом, который
Пункт (2) подразумевает, что атрибут :weight black будет
удовлетворён любым дисплеем, который может отображать жирный шрифт, как и
:foreground "yellow" до тех пор, пока может быть отображён
какой-либо желтоватый цвет, но :slant italic не будет
удовлетворён автоматической заменой кода tty-дисплея тусклого лица на
курсив.
Эта функция возвращает t, если display поддерживает выделения.
Оконные дисплеи обычно поддерживают выделения, но они также могут
поддерживаться в некоторых других случаях.
Эта функция возвращает t, если display может отображать изображения.
Оконные дисплеи в принципе должны поддерживать изображения, но в некоторых
системах отсутствует поддержка этого. На дисплее, который не поддерживает
изображения, Emacs не может отображать панель инструментов.
Эта функция возвращает количество экранов, связанных с дисплеем.
Эта функция возвращает высоту экрана в пикселях. На символьном терминале она возвращает высоту в символах.
Для графических терминалов обратите внимание, что в конфигурациях с несколькими мониторами это относится к высоте в пикселях для всех физических мониторов, связанных с display. См. Несколько терминалов.
Эта функция возвращает ширину экрана в пикселях. На символьном терминале она возвращает ширину в символах.
Для графических терминалов обратите внимание, что в конфигурациях с несколькими мониторами это относится к ширине в пикселях для всех физических мониторов, связанных с display. См. Несколько терминалов.
Эта функция возвращает высоту экрана в миллиметрах
или nil, если Emacs не может получить эту информацию.
Для графических терминалов обратите внимание, что в конфигурациях с несколькими мониторами это относится к высоте для всех физических мониторов, связанных с display. См. Несколько терминалов.
Эта функция возвращает ширину экрана в миллиметрах
или nil, если Emacs не может получить эту информацию.
Для графических терминалов обратите внимание, что в конфигурациях с несколькими мониторами это относится к ширине для всех физических мониторов, связанных с display. См. Несколько терминалов.
Эта переменная позволяет пользователю задать размеры графических
дисплеев, возвращаемые display-mm-height и
display-mm-width, в случае, если система предоставляет
некорректные значения.
Эта функция возвращает возможность резервного хранения дисплея. Резервное хранение означает запись пикселей окон (и частей окон), которые не отображаются, чтобы при отображении они могли быть показаны очень быстро.
Значениями могут быть символы always, when-mapped или
not-useful. Функция также может возвращать nil,
когда вопрос неприменим к определённому виду дисплея.
Эта функция возвращает не nil, если дисплей поддерживает
функцию SaveUnder. Эта функция используется всплывающими окнами
для сохранения пикселей, которые они закрывают, чтобы они могли
быстро закрыться.
Эта функция возвращает количество плоскостей, поддерживаемых дисплеем. Обычно это количество бит на пиксель. Для tty-дисплея это логарифм по основанию 2 от количества поддерживаемых цветов.
Эта функция возвращает визуальный класс для экрана. Значением является
один из символов static-gray (ограниченное, неизменяемое число
оттенков серого), gray-scale (полный диапазон оттенков серого),
static-color (ограниченное, неизменяемое число цветов),
pseudo-color (ограниченное число цветов), true-color (полный
диапазон цветов) и direct-color (полный диапазон цветов).
Эта функция возвращает количество цветовых ячеек, поддерживаемых экраном.
Эти функции получают дополнительную информацию об оконной системе,
используемой в том месте, где Emacs показывает указанный display.
(Их имена начинаются с x- по историческим причинам.)
Эта функция возвращает список номеров версий графической оконной системы, работающей на display, например X-сервера в системах GNU и Unix. Значением является список из трёх целых чисел: основной и дополнительный номера версии протокола, а также номер выпуска, зависящий от распространителя, самого программного обеспечения оконной системы. В системах GNU и Unix это обычно версия протокола X и зависящий от распространителя номер выпуска программного обеспечения X-сервера. В MS-Windows это версия ОС Windows.
Эта функция возвращает поставщика, предоставившего программное обеспечение оконной системы (в виде строки). В системах GNU и Unix это на самом деле означает того, кто распространяет X-сервер. В MS-Windows это строка идентификатора поставщика ОС Windows (Microsoft).
Когда разработчики X назвали распространителей программного обеспечения «поставщиками», они показали своё ложное предположение, что никакая система не может быть разработана и распространена некоммерчески.