Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
76
Добавлен:
02.04.2015
Размер:
8.79 Mб
Скачать
    1. Использование регионов

      1. Открытие региона

Чтобы открыть регион, создайте виджет PtRegion. Виджет PtRegion не включён в палитру PhAB'a; для его реализации:

  • Вызовите в Вашем приложении функцию PtCreateWidget()

или

  • Создайте модуль окна, выберите его и используйте пункт "Change Class" в меню "Edit" PhAB'а, чтобы превратить окно в PtRegion. Для более полной информации см. раздел "Изменение класса виджета" в главе "Создание виджетов в PhAB".

Более полную информацию по виджету PtRegion см. в "Справочнике виджетов".

      1. Размещение регионов

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

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

  • bro_in_front – указывает на брата непосредственно впереди.

  • bro_behind – указывает на брата непосредственно сзади.

Для получения этой информации Вы можете использовать функцию PhRegionQuery().

          1. Изменение месторасположения региона

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

  • устанавливает члены parent, bro_front и bro_behind в структуре PhRegion_t;

  • устанавливает соответствующие биты в fields для указания на то, какие члены являются действительными (только те члены, которые помечены как валидные, будут оказывать действие);

  • вызывает функцию PhRegionChande().

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

          1. Изменение родителя

Вы можете изменить родительский регион таким способом:

  • Если регион имеет родительский виджет, вызовите функцию PtReparentWidget(), чтобы сделать регион потомком другого виджета. Не переназначайте родителя региона напрямую.

  • Задайте родителя в члене parent структуры PhRegion_t потомка. Регион потомка становится самым передним среди регионов-потомков родителя.

  • Задайте потомка другого родителя как брата данного региона. Это делает регион потомком этого другого родителя, но позволяет Вам задать, где регион потомка размещается в иерархии регионов родителя.

В заголовочном файле <photon/PhT.h> определены следующие константы:

  • Ph_DEV_RID – идентификатор региона устройств

  • Ph_ROOT_RID – идентификатор корневого региона

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