Вторая фаза раскладки начинается с этого места. GtkWindow
принимает решение о том, сколько места действительно доступно для ребенка, и
передает свое решение ребенку. Это называется распределением ребенка,
представленное следующей структурой:
Элементы width и height идентичны
GtkRequisition; они представляют размер виджета.
GtkAllocation также включает координаты ребенка
относительно его родителя. Структуры GtkAllocation
присваиваются детям их родительским контейнером.
От виджетов требуется, чтобы они обращали внимание на
GtkAllocation, передаваемый им.
GtkRequisition всего лиш запрос; виджеты должны быть
способными справляться с любым размером.
В приведенном описании процесса раскладки легко увидеть роль, которую играют
контейнеры. Их работа состоит в том, чтобы собрать требование размера каждого
ребенка в одно требование, передаваемое выше по дереву виджетов; затем
разделить полученное распределение между своими детьми. Как это точно
происходит -- зависит от конкретного контейнера.
Журнал "Linux Format" (Линукс Формат)- Единственный в России и странах СНГ журнал на русском языке,
посвящённый Linux и свободному ПО. Журнал для IT-директоров, IT-менеджеров, программистов, системных
администраторов, учителей школ и преподавателей ВУЗов и всех пользователей ПК. В каждом выпуске: Новости
индустрии OpenSource, обзоры новинок свободного ПО, обучающие и методические статьи.
Каждый, кто оформит подписку, получает бонус- объёмные наклейки на системный блок и подарки: с одним из
первых выпусков журнала в 2012 году- диск с архивом номеров за 2005-2011 г.г. и ежемесячно электронную
версию журнала в pdf-формате.
Подробнее о проведении акции вы можете прочитать на
странице сайта.