дальше выше обратно Содержание
Следующий пункт: Программирование с использованием библиотеки Xt Надпункт: X Window Предыдущий пункт: X Window

Общее устройство X Window

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

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

Общая схема взаимодействия в системе X Window.

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

X окно

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

Окко имеет внутренность и край. Основными атрибутами окна являются ширина и высота внутренности, а тажке ширина (толщина) края. Эти параметры называются геометрией окна.

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

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

Управление окнами

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

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

Графические возможности X Window

Система X Window предназначена для работы на растровых дисплеях. Число бит на пиксел называют глубиной или толщиной дисплея. Биты с одинаковыми номерами (одинаковые двоичные разряды) во всех пикселах образуют как бы плоскость, как бы параллельную экрану. Её называют цветовой плоскостью. X позволяет рисовать в любой цветовой плоскости (-ях), не затрагивая остальные.

Значение пиксела не задаёт цвет точки на экране непосредственно, но задаёт номер ячейки в специальном массиве, в которой и хранится значение цвета, т.е. значение пиксела задаёт номер цвета в текущей палитре.

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

``Свойства'' и атомы

В X Window встроены средства для обеспечения информацией между программами-коиентами. Для этого используется механизм ``свойств'' (properties). ``Свойство'' -- это информационная структура, связанная с некоторым объектом, например, окном, доступная всем клиентам X. Каждое свойство имеет имя и уникальный индентификатор -- атом. Обычно, имена свойств записываются большими буквами. Атомы используются для доступа к содержимому свойств с тем, чтобы уменьшить объём информации, пересылаемой между клиентами и X сервером.

В X предусмотрен ряд процедур, позволяющих перевести имя свойства в уникальный атом, и, наоборот, по атому получить необходимые данные.

Некоторые свойства и соответствующие им атомы являются предопределёнными и создаются в момент инициализации сервера.


дальше выше обратно Содержание
Следующий пункт: Программирование с использованием библиотеки Xt Надпункт: X Window Предыдущий пункт: X Window

WebMaster at Bolizm
Sat Oct 5 20:29:45 MSD 1996
...UNIX --- Изначально - UNIX, ныне же существуют X-серверы даже для таких уродцев, как MS-Windows и MS-DOS.