30 Фреймов

Фрейм (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 может отображаться как в графических, так и в текстовых терминалах одновременно. Это удобно, например, когда вы подключаетесь к одной и той же сессии из нескольких удаленных мест. См. Несколько терминалов.

Функция: 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 выше.

В графическом терминале мы различаем два типа фреймов: обычный фрейм верхнего уровня (top-level frame) — это фрейм, чье окно системы окон является дочерним окном корневого окна системы окон для этого терминала. Дочерний фрейм — это фрейм, чье окно системы окон является дочерним окном окна другого фрейма Emacs. См. Дочерние фреймы.