Окно (информатика)


Окно — основное понятие оконного интерфейса, интерфейсный контейнер. Кроме дочерних элементов интерфейса, окно также может содержать элементы управления самим окном. Важная особенность окон — возможность перекрываться, то есть располагаться поверх друг друга, полностью или частично закрывая нижнее окно.

Впервые концепцию перекрывающихся окон, как и многие другие концепции пользовательских интерфейсов, разработали в исследовательском центре Xerox PARC для системы Xerox Alto, а точнее для среды разработки языка smalltalk в 1974 году[1][2]. В этой среде у окон уже были границы и заголовки, но ещё не появилось кнопок управления окнами. Дальнейшее развитие оконный интерфейс получил в среде Xerox Star, но первым коммерчески успешным компьютером, использующим окна стал вышедший в 1984 году Apple Macintosh.

В некоторых системах, например в OS X, кнопки управления окном располагаются слева. Кроме того, в OS X до версии 10.7 отсутствовала кнопка полноэкранного режима.

При использовании оконного интерфейса, большинство окон может свободно перемещаться по экрану. Обычно перемещение окон производится при захвате заголовка окна, однако при необходимости можно задать для перемещения также произвольную область, либо всё окно, кроме располагающихся на нём элементов интерфейса. Также перемещать окна можно, выбрав пункт в меню окна — в этом случае возможность перемещать окно доступна также с клавиатуры.

Появление новых окон обычно не регламентируется системой, и они занимают место посередине экрана, либо заданное при разработке программы. Некоторые оконные менеджеры, например входящие в состав среды KDE, располагают вновь открывающиеся диалоговые окна и окна предупреждений так, чтобы они не перекрывали уже открытые. Другой способ — располагать вновь открытые диалоговые окна «каскадом», то есть с небольшим смещением от предыдущего, чтобы оставался виден заголовок окна.

При перемещении окон может использоваться эффект «прилипания». Возле границы такого окна появляется область, и если в этой области находится граница другого окна, перемещаемое окно становится вплотную к другому, и остаётся неподвижным до тех пор, пока пользователь, перемещая курсор, не попытается вывести окно за пределы этой области. Примером такого подхода может служить проигрыватель Winamp, в котором эффект прилипания реализует ещё одну функцию: дочерние окна программы после прилипания к главному окну могут перемещаться вместе с ним как одно окно. Слипшиеся друг с другом дочерние окна того же плеера такого эффекта не имеют.