Кадры
Кадр — это экранный объект, содержащий одно или несколько окон Emacs (см. Окна). Это объект того типа, который в терминологии графических сред называется «окном»; но здесь мы не можем называть его «окном», поскольку в Emacs это слово используется в другом значении. В Emacs Lisp объект кадра — это объект Lisp, представляющий кадр на экране. См. Тип кадра.
Изначально кадр содержит одно главное окно и/или окно минибуфера; главное окно можно разделить по вертикали или горизонтали на более мелкие окна. См. Разделение окон.
Терминал — это устройство отображения, способное показывать один или несколько кадров Emacs. В Emacs Lisp объект терминала — это объект Lisp, представляющий терминал. См. Тип терминала.
Существует два класса терминалов: текстовые терминалы и графические терминалы. Текстовые терминалы — это дисплеи без поддержки графики, включая xterm и другие эмуляторы терминалов. На текстовом терминале каждый кадр Emacs занимает весь экран терминала; хотя можно создавать дополнительные кадры и переключаться между ними, терминал показывает только один кадр без родителя одновременно. Этот кадр называется верхним кадром данного терминала; его можно получить с помощью описанной ниже функции tty-top-frame. У верхнего кадра могут быть дочерние кадры (см. Дочерние кадры), которые отображаются вместе с ним, но сам он не может быть дочерним кадром.
Графические терминалы, напротив, управляются графическими системами отображения, такими как X Window System, которые позволяют Emacs одновременно показывать несколько кадров на одном дисплее.
В системах GNU и Unix можно создавать дополнительные кадры на любом доступном терминале в рамках одного сеанса Emacs, независимо от того, был ли Emacs запущен на текстовом или графическом терминале. Emacs может одновременно отображать данные и на графических, и на текстовых терминалах. Это удобно, например, когда вы подключаетесь к одному сеансу из нескольких удалённых мест. См. Несколько терминалов.
- Функция: framep object
-
Этот предикат возвращает значение, отличное от
nil, если object является кадром, иnilв противном случае. Для кадра значение указывает, какой тип дисплея используется кадром:tКадр отображается на текстовом терминале.
xКадр отображается на графическом терминале X.
w32Кадр отображается на графическом терминале MS-Windows.
nsКадр отображается на графическом терминале GNUstep или Macintosh Cocoa.
pcКадр отображается на терминале MS-DOS.
haikuКадр отображается с помощью Haiku Application Kit.
pgtkКадр отображается с использованием только средств GTK.
androidКадр отображается на устройстве Android.
- Функция: frame-terminal &optional frame
Эта функция возвращает объект терминала, на котором отображается frame. Если frame равен
nilили не указан, по умолчанию используется выбранный кадр (см. Фокус ввода).
- Функция: terminal-live-p object
Этот предикат возвращает значение, отличное от
nil, если object является действующим терминалом (то есть не удалён), иnilв противном случае. Для действующих терминалов возвращаемое значение указывает, какие кадры отображаются на этом терминале; список возможных значений совпадает со списком дляframepвыше.
- Функция: frame-initial-p &optional frame
-
Этот предикат возвращает значение, отличное от
nil, если frame является начальным текстовым кадром, который внутренне используется в режиме демона (см. режим демона в Руководстве GNU Emacs), пакетном режиме (см. Пакетный режим) и на ранних этапах запуска (см. Краткое описание: последовательность действий при запуске). Интерактивные и графические программы, например, могут использовать этот предикат, чтобы не работать с начальным кадром, который никогда не отображается.Если frame является терминалом, эта функция возвращает значение, отличное от
nil, если frame содержит начальный кадр. Если аргумент frame опущен или равенnil, по умолчанию используется выбранный кадр.
На графическом терминале различают два типа кадров: обычный кадр верхнего уровня — это кадр, окно оконной системы которого является дочерним окном корневого окна оконной системы данного терминала. Дочерний кадр — это кадр, окно оконной системы которого является дочерним по отношению к окну оконной системы другого кадра Emacs. См. Дочерние кадры.
На текстовом терминале получить его верхний кадр можно с помощью следующей функции:
- Функция: tty-top-frame &optional terminal
Эта функция возвращает верхний кадр на terminal. terminal должен быть объектом терминала, кадром (то есть терминалом этого кадра) или
nil(то есть терминалом выбранного кадра). Если он не относится к текстовому терминалу, возвращаемое значение —nil. Верхний кадр должен быть корневым кадром, то есть сам не может быть дочерним кадром (см. Дочерние кадры), но от него может происходить произвольное число дочерних кадров.
- Функция: frame-id &optional frame
-
Эта функция возвращает уникальный идентификатор кадра — целое число, присвоенное frame. Если frame равен
nilили не указан, по умолчанию используется выбранный кадр (см. Фокус ввода). Это можно использовать для однозначной идентификации кадра в контексте, где вы не хотите или не можете использовать объект кадра.Восстановленный кадр сохраняет свой идентификатор, если он был удалён с помощью
undelete-frame. Кадр, клонированный с помощьюclone-frame, не сохраняет исходный идентификатор. См. Команды для работы с кадрами в Руководстве по Emacs.Идентификаторы кадров не сохраняются с помощью библиотеки desktop (см. Режим сохранения рабочего стола),
frameset-to-registerилиframeset-save, поэтому каждый восстановленный кадр получает новый уникальный идентификатор.
- Создание кадров
- Несколько терминалов
- Геометрия кадра
- Параметры кадра
- Параметры терминала
- Заголовки кадров
- Удаление кадров
- Поиск всех кадров
- Разделение и объединение кадров
- Минибуферы и кадры
- Фокус ввода
- Видимость кадров
- Поднятие, опускание и изменение порядка кадров
- Конфигурации кадров
- Дочерние кадры
- Отслеживание мыши
- Положение мыши
- Всплывающие меню
- Экранные клавиатуры
- Диалоговые окна
- Форма указателя
- Выделения оконной системы
- Доступ к выделениям
- Вставка мультимедийных данных
- Перетаскивание
- Названия цветов
- Цвета текстового терминала
- Ресурсы X
- Проверка возможностей дисплея
Copyright © 1990-1996, 1998-2026 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Frames.html