Око́нный интерфе́йс — способ организации полноэкранного интерфейса программы (разновидность графического интерфейса), в котором каждая интегральная часть располагается в графическом окне — собственном субэкранном пространстве, находящемся в произвольном месте «над» основным экраном. Несколько окон, одновременно располагающихся на экране, могут перекрываться, виртуально находясь «выше» или «ниже» друг относительно друга.
Оконный интерфейс реализуется как в графическом, так и в текстовом режиме (наиболее известной (неполной) реализацией оконного интерфейса в текстовом режиме является программа-оболочка Питера Нортона «Norton Commander» и её многочисленные модификации[1]).
Однако наибольшую популярность он завоевал благодаря операционным системам с графическими оконными оболочками (ОС Mac, ОС Windows) и в настоящее время является самым популярным видом пользовательского интерфейса.
Окно обычно имеет прямоугольную форму, обычно с обрамлением рамкой и/или цветом фона, отличным от цвета основного экрана. При необходимости окно имеет заголовок (с пояснением функции) и органы управления. Иногда используются различные эффекты для придания ощущения объемности интерфейса, в том числе:
«тени» — затемнение под окном со сдвигом (как правило, вправо-вниз, предполагая наличие света слева-сверху). В графическом режиме тени также могут отбрасывать другие элементы интерфейса, например курсор мыши;
создание иллюзии выпуклых и вдавленных структур — линий, надписей, пониженных или повышенных областей (например, кнопок), рамок и т. п., линиями повышенной и пониженной яркости и полутоновыми переходами (для имитации криволинейных поверхностей);
полная или частичная (полу-)прозрачность окна — просвечивание сквозь «подложки» или других окон (возможно только в графическом режиме).
Оконный интерфейс имеют оболочки большинства операционных систем, и, в этом случае, окно может представлять собой отдельную запущенную программу (задачу).
Процедуры поддержки оконного интерфейса призваны отрисовывать экран с располагающимися «поверх него» окнами и распределять ввод пользователя между ними (при существовании нескольких равноправных окон ввод пользователя осуществляется в то, которое в данный момент является активным).
Разновидности
Программы с классической (полноэкранной) организацией экрана могут использовать элементы оконного интерфейса (субокна) для: организации меню, окон сообщений и диалогов.
Программы с полной реализацией оконного интерфейса раздельно работают с отдельными подзадачами в разных окнах. Такая программа может одновременно открывать/работать с несколькими документами, помещая их в отдельные субокна (например, многооконный редактор с документом в каждом окне). Организацию этих субокон в подобных программах реализуют несколькими способами:
(некоторые программы поддерживают несколько таких режимов, с возможностью переключения между ними, напр. Kate, gedit, AkelPad).
Также однооконный режим может поддерживать систему фреймов, при которой общее окно разбито на несколько функционально независимых областей, фреймов (форточек)[источник не указан 4079 дней].
При полной реализации основной экран «под окнами» разгружается и может быть использован для каких-нибудь глобальных (фоновых) задач.
Полная реализация, как правило, предполагает наличие мыши, для простого переключения между окнами и управления ими (перемещение, изменения размеров, скрытие, закрытие и тому подобное).
Также существует разновидность окон (называемых модальными), которые «монополизируют» фокус пользовательского внимания, и продолжить работу с программой можно лишь после закрытия (выполнения запроса) такого «модального» окна.
Оконная операционная система позволяет пользователю одновременно работать с различными программами. Каждая программа работает в отдельном окне, занимающем отдельное пространство на экране, обычно в форме прямоугольника. Большинство операционных систем предоставляют пользователю основные функции работы с окнами: перенос, изменение размера окна, фокуса окна и так далее.
Некоторые оконные системы, например X Window System, обладают также сетевой структурой, позволяющей пользователю работать с графическими программами на удалённых узлах-клиентах.