logo
Литература_1 / photon_old

Установка флагов анкеров в программном коде Вашего приложения

Вы можете также установить эти флаги из Вашего программного кода, используя метод, описанный в главе "Манипулирование ресурсами в программном коде приложения". Для удобства каждый набор флагов имеет объединённую маску битов:

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

PtSetArg(&arg[n], Pt_ARG_ANCHOR_FLAGS,

Pt_LEFT_ANCHORED_LEFT | Pt_RIGHT_ANCHORED_RIGHT |

Pt_TOP_ANCHORED_TOP,

Pt_LEFT_IS_ANCHORED | Pt_RIGHT_IS_ANCHORED |

Pt_TOP_IS_ANCHORED);

При установке анкерных флагов из программного кода Вашего приложения все смещения анкера задаются путём использования ресурса Pt_ARG_ANCHOR_OFFSETS. Этот ресурс берёт структуру PtRect_t (см. "Справочник по библиотеке Photon") как значение. Верхний левый угол прямоугольника используется для определения смещения анкера для верхнего и левого краёв виджета, и нижний правый угол прямоугольника указывает смещение анкера для правого и нижнего краёв.

Так, например, чтобы сделать рабочую область в 90% от ширины окна с равным размером обоих сторон, левый и правый края прикрепляются, используя следующий код:

PhRect_t offsets;

offsets.ul.x=50;

offsets.lr.x=950;

PtSetArg(&arg[n], Pt_ARG_ANCHOR_FLAGS,

Pt_LEFT_ANCHORED_RELATIVE | Pt_RIGHT_ANCHORED_RELATIVE,

Pt_LEFT_IS_ANCHORED | Pt_RIGHT_IS_ANCHORED);

PtSetArg(&arg[n+1], Pt_ARG_ANCHOR_OFFSETS, &offsets, 0);

Помните, что пропорциональность, обеспечиваемая смещением анкера, выражается в десятых долях процента.

Yandex.RTB R-A-252273-3
Yandex.RTB R-A-252273-4