Фрейм (frame) — это объект экрана, который содержит одно или несколько окон Emacs (см. Окна). Это тип объекта, который в терминологии графических сред называется «окном»; но мы не можем называть его «окном» здесь, потому что Emacs использует это слово в другом значении. В Emacs Lisp объект фрейма (frame object) — это объект Lisp, представляющий фрейм на экране. См. Тип фрейма.
Фрейм изначально содержит одно основное окно и/или окно минибуфера; вы можете разделить основное окно вертикально или горизонтально на более мелкие окна. См. Разделение окон.
Терминал (terminal) — это устройство отображения, способное отображать один или несколько фреймов Emacs. В Emacs Lisp объект терминала (terminal object) — это объект Lisp, представляющий терминал. См. Тип терминала.
Существует два класса терминалов: текстовые терминалы (text terminals) и графические терминалы (graphical terminals). Текстовые терминалы — это дисплеи без графических возможностей, включая xterm и другие эмуляторы терминала. В текстовом терминале каждый фрейм Emacs занимает весь экран терминала; хотя вы можете создавать дополнительные фреймы и переключаться между ними, терминал отображает только один фрейм за раз. Графические терминалы, с другой стороны, управляются графическими системами отображения, такими как X Window System, которые позволяют Emacs отображать несколько фреймов одновременно на одном дисплее.
В системах GNU и Unix вы можете создавать дополнительные фреймы на любом доступном терминале в рамках одной сессии Emacs, независимо от того, был ли Emacs запущен в текстовом или графическом терминале. Emacs может отображаться как в графических, так и в текстовых терминалах одновременно. Это удобно, например, когда вы подключаетесь к одной и той же сессии из нескольких удаленных мест. См. Несколько терминалов.
Этот предикат возвращает не-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. Если frame равен nil или не указан, по умолчанию используется выбранный фрейм.
Этот предикат возвращает не-nil значение, если object является терминалом, который активен (т.е. не удален), и nil в противном случае. Для активных терминалов возвращаемое значение указывает, какие типы фреймов отображаются в этом терминале; список возможных значений такой же, как для framep выше.
В графическом терминале мы различаем два типа фреймов: обычный фрейм верхнего уровня (top-level frame) — это фрейм, чье окно системы окон является дочерним окном корневого окна системы окон для этого терминала. Дочерний фрейм — это фрейм, чье окно системы окон является дочерним окном окна другого фрейма Emacs. См. Дочерние фреймы.