Spec-Zone.ru › Elisp

Видимость окон

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

На текстовом терминале окно может быть только видимым или невидимым. Верхнее окно терминала (см. Окна) не может быть невидимым.

На графических дисплеях понятие видимости тесно связано с понятием отображённых и снятых с отображения окон. Окно (или, точнее, его окно оконной системы) является отображённым и становится таким, когда оно впервые отображается и каждый раз, когда его состояние видимости меняется с iconified или invisible на visible. И наоборот, окно является снятым с отображения и становится таким, когда его состояние меняется с visible на iconified или invisible.

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

Эта функция возвращает состояние видимости окна frame. Значение равно t, если frame видимо, nil, если оно невидимо, и icon, если оно свернуто в значок.

Обратите внимание: состояние видимости окна, возвращаемое этой функцией (и параметром окна visibility, см. Параметры взаимодействия с окнами), не обязательно указывает, действительно ли окно видно на дисплее. Любое такое окно может быть частично или полностью закрыто другими окнами оконного менеджера на том же графическом терминале. То, будет ли окно полностью скрыто, может зависеть от прозрачности перекрывающего его окна. Окно также может находиться на виртуальном рабочем столе, отличном от текущего, и быть видимым только после переключения на этот рабочий стол. Для дочерних окон (см. Дочерние окна) действует важное ограничение: дочернее окно видно тогда и только тогда, когда эта функция возвращает true для всех его предков, включая само окно и его корневое окно.

На текстовом терминале действительно видны только верхнее окно этого терминала и его дочерние окна. Другие корневые окна и их дочерние окна не видны, даже если эта функция считает их видимыми.

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

Эта функция сворачивает окно frame в значок. Если аргумент frame опущен, она сворачивает в значок выбранное окно. Эта функция также удаляет с экрана все дочерние окна frame (см. Дочерние окна) и их потомков. Если frame само является дочерним окном, поведение зависит от значения переменной iconify-child-frame. Если frame — верхнее окно текстового терминала (см. Окна), эта функция не оказывает эффекта.

Команда: make-frame-visible &optional frame

Эта функция делает окно frame видимым. Если аргумент frame опущен, она делает видимым выбранное окно. При этом окно не поднимается на передний план, но при желании это можно сделать с помощью raise-frame (см. Поднятие, опускание и изменение порядка окон).

Когда окно становится видимым, на экране снова появляются все его дочерние окна с видимыми предками (см. Дочерние окна).

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

Эта функция делает окно frame невидимым. Если аргумент frame опущен, она делает невидимым выбранное окно. Обычно при этом невидимыми становятся и все дочерние окна frame (а также их потомки; см. Дочерние окна).

Если force не равно nil, эта функция отказывается делать окно frame невидимым, если все остальные окна уже невидимы. На текстовом терминале окно frame станет невидимым тогда и только тогда, когда оно является дочерним окном (см. Дочерние окна). В этом случае, если выбрано окно frame, вместо него будет выбрано его ближайшее видимое окно-предок. Кроме того, с экрана будут удалены все дочерние окна, для которых frame является предком.

Состояние видимости окна также доступно как параметр окна. Его можно прочитать или изменить. См. Параметры взаимодействия с окнами. Пользователь также может сворачивать окна в значок и восстанавливать их с помощью оконного менеджера. Это происходит на уровне, на котором Emacs не может управлять такими действиями, однако Emacs предоставляет события, позволяющие отслеживать подобные изменения. См. Различные системные события.

Функция: x-double-buffered-p &optional frame

Эта функция возвращает значение, отличное от nil, если для отрисовки окна frame в данный момент используется двойная буферизация. По умолчанию frame — выбранное окно.

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/Visibility-of-Frames.html

Spec-Zone.ru

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