Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Литература_1 / photon_old.doc
Скачиваний:
38
Добавлен:
02.04.2015
Размер:
7.88 Mб
Скачать
          1. Месторасположение по умолчанию

Если приложение открывает регион, не задавая братьев, менеджер Photon'а размещает этот регион, используя принимаемые по умолчанию правила месторасположения. В большинстве случаев эти правила приводят к тому, что вновь открытый регион располагается впереди своего самого переднего брата, который становится "братом сзади" для нового региона. (Чтобы использовать другие правила месторасположения, Вы можете задать флаг Ph_FORCE_FRONT).

Например, на следующем рисунке регион потомка 1 является самым передним регионом:

Когда приложение открывает регион потомка 2 с принимаемым по умолчанию месторасположением (следующий рисунок), регион 2 размещается впереди региона 1. Регион 1 становится братом сзади региона 2. Регион 2 становится братом спереди региона 1.

          1. ФлагPh_force_front

Приложение использует флаг Ph_FORCE_FRONT, когда оно хочет, чтобы регион оставался впереди всех последующих братьев, зависящих от принимаемого менеджера Photon'а по умолчанию месторасположения. Как обсуждалось ранее, когда регион открыт с принимаемым по умолчанию месторасположением, он размещается перед своим самым передним братом. Но если какой-либо брат имеет установленный флаг Ph_FORCE_FRONT, новый регион размещается позади самого заднего брата, у которого установлен флаг Ph_FORCE_FROM. Например, давайте посмотрим, что случится в следующем примере, если регион потомка 1 имеет установленный флаг Ph_FORCE_FRONT:

Когда открывается регион потомка 2 с принимаемым по умолчанию месторасположением (следующая диаграмма), он размещается позади региона 1, и регион 1 становится "братом впереди". Поскольку регион 2 был размещён с использованием принимаемых по умолчанию правил, он не наследует установку Ph_FORCE_FRONT региона 1:

Затем, если открывается регион 3 с принимаемым по умолчанию месторасположением, он размещается следующим образом:

 Приложение может установить флаг Ph_FORCE_FRONT при открытии региона (или позже), изменив флаги региона. Состояние этих флагов не оказывает влияние на то, как размещается сам регион – они влияют на то, как размещаются последующие братья, если эти братья открываются с использованием принимаемых по умолчанию правил месторасположения. То есть состояние Ph_FORCE_FRONT существующих братьев не оказывает влияние на месторасположение нового региона, если он открывается с заданными связями с братом. См. следующий раздел – "Задаваемое месторасположение".

Помните, что флаг Ph_FORCE_FRONT оказывает влияние только на местоположение регионов своих братьев – регион потомка всегда становится впереди его родителя.

          1. Задаваемое месторасположение

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

Если определяется брат позади, то новооткрытый регион автоматически размещается перед этим братом.

Если определяется брат впереди, то новооткрытый регион автоматически размещается позади этого брата.

 Установка Ph_FORCE_FRONT задаваемого брата наследуется новым регионом. Если приложение открывает регион, задавая обоих братьев, и это приводит к неоднозначным требованиям месторасположения, то открытие не выполняется.

Соседние файлы в папке Литература_1