|
фиксированным:
его геометрия (местоположение на экране и размер) задается
при запуске клиента и сохраняется в течение всего сеанса работы
с этим клиентом. Это вполне соответствует цели создания специализированных
систем с графическим интерфейсом пользователя (таких,
как мультимедийные киооски и т.п.), но совершенно недостаточно
для универсального "настольного" применения.
При
универсальном применении компьютера характерна поочередная
работа с различными программами (иногда достаточно большим
их количеством), причем пользователь может отрываться, допустим,
от редактирования текста, чтобы поработать другой программой
с иллюстрацией, прочитать почту или заглянуть на WWW-страницу,
затем возвращаться к редактированию текста и т.д. Графическая
операционная среда должна быть достаточно гибкой, чтобы допускать
и поддерживать такой, "субъектно-ориентированный", а
не ориентированный на строго последовательное выполнение предзаданных
процедур, стиль работы.
В
частности, должно поддерживаться управление (с помощью
клавиатуры или "мыши") окнами, т.е. возможность изменять
"на лету" их геометрию (положение и размеры), а также
(обычно не относимое к геометрии) положение в воображаемой "стопке"
окон, т.е. определение того, какое из окон будет "верхним"
(видимым полностью), если окна перекрывают друг друга
на плоскости экрана.
Управление
окнами и составляет базовую функциональность
оконного менеджера (устоявшийся термин window manager,
относящийся к этому классу программ, будет передаваться далее
словосочетанием-калькой "оконный менеджер", которое,
впрочем, не представляется особенно удачным, так же, как и встречающиеся
в литературе "менеджер окон" и "администратор
окон").
Технически
ограничение на изменение геометрии раз выделенного
окна преодолевается оконным менеджером за счет того, что ему
в качестве окна выделяется весь экран.
Прикладным
программам, таким образом, выделяются далее
уже не окна собственно X, а окна оконного менеджера. Для них это
совершенно прозрачно, хотя желательно, чтобы программа была достаточно
"сообразительной", чтобы изменить свое поведение
при изменении размеров выделенного ей окна "на лету" (изменение
положения окна в подавляющем большинстве случаев ничего от клиента
не требуют), это справедливо для большинства, но не для всех программ
(в частности, этого не "умеют" многие старые программы
и некоторые компьютерные игры).
В
свою очередь, и оконный менеджер может быть достаточно
"умен", чтобы понять, что программа не реагирует
на изменение геометрии, и заблокировать возможность изменения
размеров окна пользователем (чтобы он не оказался в ситуации,
когда ему видна лишь часть области вывода программы или наоборот,
часть окна прикладной программы пуста). Однако такое решение
может привести к весьма дискомфортным ситуациям (например, если
при запуске программы ее окно оказывается больше экрана)9. |