Предписание

Предписание виджета состоит из ширины и высоты -- размеров, которых хочет быть виджет. Они представлены в структуре GtkRequisition: typedef struct _GtkRequisition GtkRequisition; struct _GtkRequisition { gint16 width; gint16 height; };

Различные виджеты различными способами выбирают размер, который надо затребовать. Например, GtkLabel требует достаточно места для показа всего текста метки. Большинство контейнеров основыают свои требования размера на требованиях своих детей. Например, если вы поместите несколько кнопок в блок, то блок будет запрашивать такой размер, чтобы уместить все кнопки.

Первая фаза раскладки начинается с виджета верхнего уровня, такого как GtkWindow. Так как это контейнер, то GtkWindow спрашивает свой дочерний виджет о требованиях к размеру; этот ребенок может спросить своих детей; и так далее, рекурсивно. Когда все дочерние виджеты были опрошены, GtkWindow наконец получит обратно GtkRequisition от своего ребенка. В зависимости от того, как он был сконфигурирован, GtkWindow может быть, а может и не быть способным к расширению, чтобы адаптироваться к требованию размера.


Linux Land
2000-09-15