Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПОУК / 09 семестр / Книги и методические указания / Руководство программиста в Photon.doc
Источник:
Скачиваний:
364
Добавлен:
04.03.2014
Размер:
7.99 Mб
Скачать

Глава 22. Регионы

В Photon'е все приложения состоят из одного или более прямоугольников, называемых регионами (regions), находящихся в неком абстрактном трёхмерном пространстве событий. Регионам назначены идентификационные номера типа PhRid_t.

В этой главе обсуждается:

  • Координатное пространство Photon'а

  • Координаты региона

  • Регионы и отсечение событий

  • Месторасположение и иерархия

  • Использование регионов

  • Системная информация

 Вы можете использовать утилиту phview, чтобы посмотреть, какие регионы существуют на Вашей машине. Для более подробной информации см. "Справочник утилит".

Координатное пространствоPhoton'а

Координатное пространство Photon'а выглядит так:

Рис. 22-1. Координатное пространство Photon'а

 В отличие от обычной декартовой разметки, квадрантом (+, +) является нижний правый.

Корневой регион имеет те же размеры, что и координатное пространство в целом. Как правило, графические драйверы отображают экран дисплея в местоположение, показанное на вышеприведенном рисунке и размещают начало координат Photon'а в левом верхнем углу экрана дисплея. (Графические драйверы приравнивают единицу координаты Photon'а единице значения пикселей экрана Вашего дисплея).

Координаты региона Начало координат региона

Когда какое-то приложение задаёт координаты внутри данного региона, они являются относительными – от начала координат региона. Приложение задаёт это начало, когда оно открывает регион.

Начальные размеры и расположение

Начальные размеры региона (т.е. аргумент rect функции PhRegionOpen()) являются относительными от его начала координат. Эти размеры управляют диапазоном кординат, которые приложение может использовать внутри региона. Давайте рассмотрим несколько примеров, чтобы осознать взаимосвязь между началом координат региона и начальными координатами его прямоугольника. Эти примеры демонстрируют, как открытые регионы размещаются относительно корневого региона, имеющего начало координат в центре координатного пространства Photon'а.

Начало координат в (0,0) и начальный прямоугольник в (0,0)

По умолчанию приложение использует для регионов следующий подход (разновидности регионов описаны в разделе "Оконный менеджер Photon'а" приложения "Архитектура Photon'а").

Координаты:

Начальные = (0,0)

Верхний левый угол начального прямоугольника = (0,0)

Нижний правый угол начального прямоугольника = (100,100)

Начало координат в (0,0) и начальный прямоугольник не в (0,0)

Следующий пример показывает подход, обычно используемый для регионов, которые заполняют целиком координатное пространство, например, для региона устройств и региона рабочей области (workspace), верхний левый угол имеет координаты (-32768, -32768) и нижний правый – (32767, 32767).

Координаты:

Начальные = (0,0)

Верхний левый угол начального прямоугольника = (-50,-50)

Нижний правый угол начального прямоугольника = (50,50)

Многие виджеты создают регионы, верхние левые углы которых имеют отрицательные координаты, так что начало координат холста виджета находится в (0,0):

Начало координат не в (0,0) и начальный прямоугольник не в (0,0)

Следующий пример показывает, как начало координат потомка может отличаться от начала координат родителя.

Координаты:

Начальные: = (-50,-50)

Верхний левый угол начального прямоугольника = (0,0)

Нижний правый угол начального прямоугольника = (100,100)