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

Вы можете установить эти флаги в PhAB при редактировании флагов изменения размеров контейнера Pt_ARG_RESIZE_FLAGS, как показано ниже:

          1. Установка политики изменения размеров в программном коде приложения

Вы можете также установить флаги изменения размеров контейнера в Вашем программном коде, используя метод, описанный в главе "Управление ресурсами в программном коде приложения".

Предоставляются битовые маски, позволяющие управлять путём установки битов. Имеется по одной битовой маске для политики изменения размеров по x и по y:

  • Pt_RESIZE_X_BITS

  • Pt_RESIZE_Y_BITS

  • Pt_RESIZE_XY_BITS

Например, чтобы сделать контейнер вырастающим для размещения всех своих потомков, если его размеры при реализации виджета недостаточно велики, установите оба флага установки размеров initial (начальный) и required (требуемый) по координатам x и y:

Pt_SetResource(ABW_my_container, Pt_ARG_RESIZE_FLAGS,

(Pt_RESIZE_XY_INITIAL | Pt_RESIZE_XY_AS_REQUIRED),

Pt_RESIZE_X_BITS | Pt_RESIZE_Y_BITS);

Чтобы установить список аргументов для очистки политики изменения размеров по х:

Pt_SetResource(ABW_my_container, Pt_ARG_RESIZE_FLAGS,

Pt_FALSE, Pt_RESIZE_X_BITS);

Имеется также несколько констант, упрощающих установку этих флагов. Например, есть константа, представляющая битовую маску для установки одновременно флагов по x и по y, и есть константы для наложения изменений для каждого флага по координатам x или y. Все эти константы определены в хеадер-файле <photon/PtWidget.h>

    1. Абсолютное позиционирование

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

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

Простейшим путём позиционирования и установления размеров каждого потомка является использование мыши в PhAB.

Чтобы задать позицию каждого из потомков из программного кода Вашего приложения, Вы должны установить для каждого потомка ресурс Pt_ARG_POS. Если виджеты должны быть согласованы или быть предопределённых размеров, Вы также должны установить для каждого потомка ресурс Pt_ARG_DIM. Задаваемая Вами позиция является относительной верхнего левого угла холста родителя, так что при позиционировании потомков Вы можете не принимать во внимание границы родителя. По умолчанию все виджеты, позиционируемые абсолютно, используют политику изменения размеров Pt_AS_REQUIRED и Pt_INITIAL. Другими словами, начальные размеры контейнера выбираются при его реализации. Контейнер делается достаточно большим, чтобы разместить всех потомков в заданном местоположении и давая им возможность после реализации принять свои размеры.

Простейшим путём выполнения абсолютного позиционирования является размещение и позиционирование виджетов внутри главного виджета PtWindow приложения. Если Вам необходимо создать контейнерный виджет, выполняющий абсолютное позиционирование, как часть другого контейнера, Вы можете использовать виджет PtContainer.

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