Spec-Zone.ru › Elisp

Удаление фреймов

Активный фрейм — это фрейм, который еще не был удален. При удалении фрейма он удаляется с его терминального дисплея, хотя может продолжать существовать как объект Lisp, пока на него не перестанут ссылаться.

Команда: delete-frame &optional frame force

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

Сначала она удаляет все дочерние фреймы frame (см. Дочерние фреймы) и любые фреймы, у которых параметр delete-before фрейма (см. Параметры взаимодействия фреймов) указывает на frame. Все такие удаления выполняются рекурсивно; таким образом, этот шаг гарантирует, что не будет существовать других фреймов с frame в качестве предка. Затем, если frame не определяет всплывающую подсказку, эта функция запускает хук delete-frame-functions (каждая функция получает один аргумент, frame) перед фактическим удалением фрейма. После фактического удаления фрейма и удаления фрейма из списка фреймов, delete-frame запускает after-delete-frame-functions.

Обратите внимание, что фрейм нельзя удалить, пока его минибуфер служит суррогатным минибуфером для другого фрейма (см. Минибуферы и фреймы). Обычно вы не можете удалить фрейм, если все остальные фреймы невидимы, но если force не равно nil, то это разрешено.

Функция: frame-live-p frame

Эта функция возвращает не-nil, если фрейм frame не был удален. Возможные значения, отличные от nil, такие же, как у framep. См. Фреймы.

Некоторые менеджеры окон предоставляют команду для удаления окна. Они работают, отправляя специальное сообщение программе, которая управляет окном. Когда Emacs получает одну из этих команд, он генерирует событие delete-frame, чье стандартное определение — команда, вызывающая функцию delete-frame. См. Разные события.

Команда: delete-other-frames &optional frame iconify

Эта команда удаляет все фреймы на терминале frame, за исключением frame. Если frame использует минибуфер другого фрейма, этот минибуфер фрейма остается нетронутым. Аргумент frame должен указывать на активный фрейм и по умолчанию равен выбранному фрейму. Внутренне эта команда работает, вызывая delete-frame с force nil для всех фреймов, которые должны быть удалены.

Эта функция не удаляет дочерние фреймы frame (см. Дочерние фреймы). Если frame является дочерним фреймом, она удаляет только братьев frame.

С префиксом-аргументом iconify фреймы сворачиваются, а не удаляются.

Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Deleting-Frames.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API