Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТИПиС конспект лекций.doc
Скачиваний:
5
Добавлен:
01.03.2025
Размер:
2 Мб
Скачать

2.3.7.Программное обеспечение интерфейсов аис

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

  • активное использование “мыши”;

  • ориентированность на объекты;

  • графика и имитация процессов и явлений;

  • возможность использования алгоритмов, знакомых человеку из его опыта.

Следовательно, необходимо вспомогательное программное обеспечение, предназначенное для создания стандартных интерфейсов. Однако разнообразие аппаратных и системных платформ, на которых будет работать это программное обеспечение, требует его переносимости на уровне исходного кода.. Рассмотрим пример такой реализации - широко известную X Window.

X Window (далее Х) - это система для создания графического пользовательского интерфейса, изначально - на компьютерах, работающих под управлением ОС UNIX. Она построена по схеме клиент-сервер. Взаимодействие X-клиента и X-сервера происходит в рамках соответствующего протокола прикладного уровня. В качестве транспортного протокола может служить как локальный, так и любой сетевой, например, TCP. Это означает, что различия в архитектуре X - клиента и X -сервера не играют никакой роли и их совместимость обеспечивается стандартом X - протокола.

Система обеспечивает графический вывод на экран, воспринимает сигналы от устройств ввода (клавиатура и мышь), и передает их программам. Устройство вывода может иметь более одного экрана и X обеспечивает вывод на любой из них. Все это: экран (экраны), устройства ввода называется в терминах X Window - дисплей.

Благодаря своей архитектуре X Window свободно используется в распределенных вычислительных системах, например, в сетях TCP/IP (Internet) и позволяет пользователю общаться со многими программами одновременно. Система создаёт на экране дисплея “виртуальные подэкраны” - окна. Каждое приложение (как правило) рисует только в своём окне (или своих окнах). X предоставляет набор средств для создания окон и работы с ними.

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

X Window представляет собой совокупность программ и библиотек. Ядром ее является специальная программа - X-сервер. Именно сервер знает особенности конкретной аппаратуры, знает, что надо предпринять, чтобы вывести какой-либо графический объект на экран. Он умеет воспринимать и обрабатывать сигналы, приходящие от клавиатуры и мыши. Сервер общается с программами-клиентами, посылая им или принимая от них пакеты данных.

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

Чтобы программировать для X, не нужно знать детали реализации сервера и X - протокола. Система предоставляет стандартную библиотеку процедур, осуществляющих доступ программ к услугам X на высоком уровне. Так, для того, чтобы вывести на экран точку, достаточно вызвать соответствующую стандартную процедуру, передав ей требуемые параметры. Эта процедура выполнит всю работу по формированию пакетов данных и передаче их серверу.

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

С каждым окном связывается система координат, начало которой находится в левом верхнем углу окна (точнее - его внутренности). Ось Х направлена вправо, а ось Y - вниз. Единица измерения по обеим осям - пиксел.

X Window позволяет программе создавать несколько окон одновременно. Они связаны в иерархию, в которой одни являются “родителями”, а другие - “потомками”. Сам сервер на каждом экране создает одно основное окно, являющееся самым верхним “родителем” всех остальных окон. Это окно называется “корневым” (root).

Окна могут располагаться на экране произвольным образом, перекрывая друг друга. X Window имеет набор средств, пользуясь которыми, программа-клиент может изменять размеры окон и их положение на экране. Особенностью системы является то, что она не имеет встроенной возможности управлять окнами с помощью мыши или клавиатуры. Чтобы это можно было осуществить, нужен специальный клиент - менеджер окон. Однако менеджер не может корректно управлять окнами, ничего о них не зная. Окна могут обладать различными свойствами, которые должен обеспечивать именно менеджер окон. Например, во многих случаях удобно иметь заголовки окон, в других - желательно, чтобы окно нельзя было сделать меньше, или наоборот - больше определённого размера. Окно может быть “схлопнуто” в пиктограмму (“иконку”) - в этом случае менеджер должен знать, какую пиктограмму использовать и как её назвать. Клиенты могут сообщать менеджеру свои пожелания относительно окон двумя способами:

  • при создании окна X могут быть переданы “рекомендации” о начальном положении окна, его геометрии, размерах и т.д.;

  • можно использовать встроенный в X способ общения между программами - механизм “свойств”.