gtkbox
gtkbox — базовый класс для контейнеров
|
|
краткое описание
#include <gtk/gtk.h>
gtkbox;
gtkboxchild;
void gtk_box_pack_start (gtkbox *box,
gtkwidget *child,
gboolean expand,
gboolean fill,
guint padding);
void gtk_box_pack_end (gtkbox *box,
gtkwidget *child,
gboolean expand,
gboolean fill,
guint padding);
void gtk_box_pack_start_defaults (gtkbox *box,
gtkwidget *widget);
void gtk_box_pack_end_defaults (gtkbox *box,
gtkwidget *widget);
gboolean gtk_box_get_homogeneous (gtkbox *box);
void gtk_box_set_homogeneous (gtkbox *box,
gboolean homogeneous);
gint gtk_box_get_spacing (gtkbox *box);
void gtk_box_set_spacing (gtkbox *box,
gint spacing);
void gtk_box_reorder_child (gtkbox *box,
gtkwidget *child,
gint position);
void gtk_box_query_child_packing (gtkbox *box,
gtkwidget *child,
gboolean *expand,
gboolean *fill,
guint *padding,
gtkpacktype *pack_type);
void gtk_box_set_child_packing (gtkbox *box,
gtkwidget *child,
gboolean expand,
gboolean fill,
guint padding,
gtkpacktype pack_type);
иерархия объектов
gobject
+----ginitiallyunowned
+----gtkobject
+----gtkwidget
+----gtkcontainer
+----gtkbox
+----gtkbuttonbox
+----gtkvbox
+----gtkhbox
реализуемые интерфейсы
gtkbox реализует atkimplementoriface.
свойства
"homogeneous" gboolean : read / write
"spacing" gint : read / write
дочерние свойства
"expand" gboolean : read / write
"fill" gboolean : read / write
"pack-type" gtkpacktype : read / write
"padding" guint : read / write
"position" gint : read / write
описание
gtkbox это абстрактный виджет включающий
функциональность для специального вида
контейнера, который организует переменное
количество виджетов в прямоугольной
области. gtkbox в настоящее время имеет
два производных класса, gtkhbox
и gtkvbox.
прямоугольная область gtkbox организует
содержимое или в единственную строку
или в единственный столбец, в зависимости
от типа контейнера, gtkhbox
или gtkvbox соответственно.
таким образом, все дочерние виджеты
gtkbox имеют с одной строны одинаковый
размер, который определяется либо по
высоте строки, либо по ширине столбца.
gtkbox использует понятие упаковка
(packing). упаковка обращается к
дополнительным виджетам с информацией
для определённой позиции в gtkcontainer.
для gtkbox, есть две относительные позиции:
start и end контейнера. для gtkvbox,
начало определяется как верх контейнера,
а конец как его низ. для gtkhbox
начало определяется как левая сторона,
а конец определяется как правая сторона.
используйте многократные вызовы
gtk_box_pack_start()
для упаковки виджетов в gtkbox от начала
до конца. используйте gtk_box_pack_end()
для добавления виджетов от конца в
начало. вы можете перемешивая эти вызовы
вставлять виджеты с обоих концов одного
и того же gtkbox.
используйте gtk_box_pack_start_defaults()
или gtk_box_pack_end_defaults()
для упаковки виджетов в gtkbox, если вам
не нужно определять атрибуты expand ,
fill , или padding .
поскольку gtkbox - это gtkcontainer,
вы можете так же использовать
gtk_container_add()
для вставки виджетов в контейнер, и они
будут упакованы как если бы использовалась
gtk_box_pack_start_defaults() .
используйте gtk_container_remove()
для удаления виджетов из gtkbox.
используйте gtk_box_set_homogeneous()
для определения должны ли все дочерние
виджеты gtkbox занимать одинаковое
пространство.
используйте gtk_box_set_spacing()
для определения минимального интервала
между всеми дочерними виджетами в
gtkbox.
используйте gtk_box_reorder_child()
для перемещения дочерних виджетов
внутри контейнера gtkbox.
используйте gtk_box_set_child_packing()
для сброса атрибутов expand ,
fill и padding любого
дочернего виджета gtkbox. используйте
gtk_box_query_child_packing()
для запроса этих полей.
детали
gtkbox
typedef struct {
glist *children;
gint16 spacing;
guint homogeneous : 1;
} gtkbox;
gtkbox описывает образец
gtkbox и содержит следующие поля. (эти поля
должны рассматриваться только для
чтения. они не должны устанавливаться
приложением.)
glist
* children ;
|
список дочерних виджетов gtkbox. данные
представлены в виде списка структур
типа gtkboxchild.
|
gint16
spacing ;
|
количество пикселей между дочерними
виджетами gtkbox, по умолчанию ноль.
используйте gtk_box_set_spacing()
для установки этого поля.
|
guint
homogeneous ;
|
значение true
в данном поле заставит дочерние виджеты
в gtkbox иметь одинаковый размер; false
по умолчанию. используйте
gtk_box_set_homogeneous()
для установки этого поля.
|
gtkboxchild
typedef struct {
gtkwidget *widget;
guint16 padding;
guint expand : 1;
guint fill : 1;
guint pack : 1;
guint is_secondary : 1;
} gtkboxchild;
gtkboxchild содержит дочерние виджеты gtkbox
и описывает как они упакованы в gtkbox.
используйте gtk_box_query_child_packing()
и gtk_box_set_child_packing()
для запроса и установки полей padding ,
expand , fill и pack .
gtkboxchild содержит следующие поля. (это
поля только для чтения. они не должны
изменяться приложением.)
gtkwidget * widget ;
|
дочерний виджет упакованный в gtkbox.
|
guint16
padding ;
|
количество дополнительных пикселей
между соседними дочерними виджетами,
устанавливается при упаковке, по
умолчанию ноль.
|
guint expand ;
|
флаг указывающий должен ли данный
виджет получить дополнительное
пространство. любое дополнительное
пространство в родительском gtkbox
распределяется между дочерними
виджетами, если это атрибут установлен
в значение true ;
устанавливается при упаковке, true
по умолчанию.
|
guint fill ;
|
флаг указывает заполнено ли
дополнительное пространство этим
виджетом, согласно атрибуту expand ,
фактически, или используется как
дополнение вокруг виджета; устанавливается
при упаковке, true
по умолчанию.
|
guint pack ;
|
gtkpacktype
указывающий упаковывается ли дочерний
виджет с начала (верх/лево) или с конца
(низ/право) gtkbox.
|
gtk_box_pack_start ()
void gtk_box_pack_start (gtkbox *box,
gtkwidget *child,
gboolean expand,
gboolean fill,
guint padding);
добавляет child в box ,
упаковывает относительно начала
контейнера box . виджет child
упаковывается после любого другого
дочернего виджета упакованного с начала
в контейнер box .
box :
|
gtkbox.
|
child :
|
gtkwidget для добавления
в box .
|
expand :
|
true
если новый виджет занимает всё
дополнительное пространство контейнера
box . дополнительное
пространство распределяется между
всеми дочерними виджетами контейнера
box которые используют эту
опцию.
|
fill :
|
true
если пространство полученное для
child с опцией expand
фактически распределено для child ,
вместо простого дополнения. этот
параметр не имеет эффекта если expand
установлен в false .
дочерний виджет всегда заполняет всю
высоту контейнера gtkhbox
и всю ширину контейнера gtkvbox.
эта опция влияет на противоположные
измерения.
|
padding :
|
интервал в пикселах между соседними,
дочерними виджетами, помимо общего
количества определенного параметром
spacing в gtkbox.
если child это виджет в одном
из относительных концов контейнера
box , то padding
пикселы также помещаются между child
и относительной границей контейнера
box .
|
gtk_box_pack_end ()
void gtk_box_pack_end (gtkbox *box,
gtkwidget *child,
gboolean expand,
gboolean fill,
guint padding);
добавляет child в box ,
упаковывая относительно конца контейнера
box . виджет child
упаковывается после (начиная с конца)
любого другого виджета упакованного
относительно конца контейнера box .
box :
|
gtkbox.
|
child :
|
gtkwidget для добавления
в box .
|
expand :
|
true
если новый виджет занимает всё
дополнительное пространство контейнера
box. дополнительное пространство
распределяется между всеми дочерними
виджетами контейнера box которые
используют эту опцию.
|
fill :
|
true
если пространство полученное для
child с опцией expand фактически
распределено для child, вместо
простого дополнения. этот параметр
не имеет эффекта если expand
установлен в false .
дочерний виджет всегда заполняет всю
высоту контейнера gtkhbox
и всю ширину контейнера gtkvbox.
эта опция влияет на противоположные
измерения.
|
padding :
|
интервал в пикселах между соседними,
дочерними виджетами, помимо общего
количества определенного параметром
spacing в gtkbox. если
child это виджет в одном из
относительных концов контейнера box,
то padding пикселы также помещаются
между child и относительной
границей контейнера box .
|
gtk_box_pack_start_defaults ()
void gtk_box_pack_start_defaults (gtkbox *box,
gtkwidget *widget);
добавляет widget в box ,
упаковывая относительно начала контейнера
box . виджет упаковывается
после любого другого виджета относительно
начала контейнера box .
параметры упаковки виджета expand ,
fill и padding в
gtkboxchild, являются значениями по умолчанию,
true ,
true ,
и 0, соответственно.
gtk_box_pack_end_defaults ()
void gtk_box_pack_end_defaults (gtkbox *box,
gtkwidget *widget);
добавляет widget в box, упаковывая
относительно конца контейнера box .
виджет упаковывается после любого
другого виджета относительно конца
контейнера box.
параметры упаковки виджета expand,
fill и padding в gtkboxchild, являются
значениями по умолчанию, true ,
true ,
и 0, соответственно.
gtk_box_get_homogeneous ()
gboolean gtk_box_get_homogeneous (gtkbox *box);
определяет занимают ли виджеты одинаковое
пространство. смотрите gtk_box_set_homogeneous() .
box :
|
gtkbox
|
возвращает:
|
true
если виджеты в контейнере занимают
одинаковое пространство.
|
gtk_box_set_homogeneous ()
void gtk_box_set_homogeneous (gtkbox *box,
gboolean homogeneous);
устанавливает поле homogeneous
gtkbox, контролируя
действительно ли всем виджетам в
контейнере box распределено
одинаковое пространство.
box :
|
gtkbox.
|
homogeneous :
|
логическое значение, true
для создания равных распределений,
false
для разных распределений.
|
gtk_box_get_spacing ()
gint gtk_box_get_spacing (gtkbox *box);
определяет значение установленное с
помощью gtk_box_set_spacing() .
box :
|
gtkbox
|
возвращает:
|
интервал между соседними виджетами
|
gtk_box_set_spacing ()
void gtk_box_set_spacing (gtkbox *box,
gint spacing);
устанавливает поле spacing
объекта gtkbox, которое
определяет размер интервала между
виджетами в пикселах в контейнере box .
box :
|
gtkbox.
|
spacing :
|
количество пикселей между дочерними
виджетами.
|
gtk_box_reorder_child ()
void gtk_box_reorder_child (gtkbox *box,
gtkwidget *child,
gint position);
перемещает child в новую
position в списке дочерних
виджетов контейнера box .
список – это поле children
gtkbox, а также оба виджета
упакованных как gtk_pack_start
и как gtk_pack_end,
в порядке в котором эти виджеты были
добавлены к box .
позиция виджета в списке дочерних
виджетов контейнера box
определяет место упаковки виджета в
контейнере box . дочерний
виджет в некоторой позиции списка
упаковывается после всех виджетов этого
же упаковочного типа которые находятся
перед ним в списке.
box :
|
gtkbox.
|
child :
|
gtkwidget для перемещения.
|
position :
|
новая позиция для child в
списке children объекта gtkbox,
начиная с 0. если отрицательное, виджет
перемещается в конец списка.
|
gtk_box_query_child_packing ()
void gtk_box_query_child_packing (gtkbox *box,
gtkwidget *child,
gboolean *expand,
gboolean *fill,
guint *padding,
gtkpacktype *pack_type);
возвращает информацию об упаковке child
в box .
box :
|
gtkbox.
|
child :
|
gtkwidget для запроса
информации.
|
expand :
|
значение поля expand в
gtkboxchild.
|
fill :
|
значение поля fill в
gtkboxchild.
|
padding :
|
значение поля padding в
gtkboxchild.
|
pack_type :
|
значение поля pack в
gtkboxchild.
|
gtk_box_set_child_packing ()
void gtk_box_set_child_packing (gtkbox *box,
gtkwidget *child,
gboolean expand,
gboolean fill,
guint padding,
gtkpacktype pack_type);
устанавливает способ упаковки child
в box .
box :
|
gtkbox.
|
child :
|
gtkwidget для установки
значений.
|
expand :
|
устанавливает значение поля expand
в gtkboxchild.
|
fill :
|
устанавливает значение поля fill
в gtkboxchild.
|
padding :
|
устанавливает значение поля padding
в gtkboxchild.
|
pack_type :
|
устанавливает значение поля pack
в gtkboxchild.
|
детали свойств
свойство "homogeneous "
"homogeneous" gboolean : read / write
должны ли все виджеты быть одного
размера.
значение по умолчанию: false
свойство "spacing "
"spacing" gint : read / write
интервал между дочерними виджетами.
допустимые значения: >= 0
значение по умолчанию: 0
детали дочерних свойств
дочернее свойство "expand "
"expand" gboolean : read / write
должен ли виджет занимать все свободное
пространство когда увеличивается его
родитель.
значение по умолчанию: true
дочернее свойство "fill "
"fill" gboolean : read / write
должно ли дополнительное пространство
распределяться для виджета или просто
использоваться как дополнение.
значение по умолчанию: true
дочернее свойство "pack-type "
"pack-type" gtkpacktype : read / write
gtkpacktype указывает тип упаковки в контейнере,
сначала или с конца.
значение по умолчанию: gtk_pack_start
дочернее свойство "padding "
"padding" guint : read / write
интервал между соседними виджетами, в
пикселах.
допустимые значения: <= g_maxint
значение по умолчанию: 0
дочернее свойство "position "
"position" gint : read / write
перечень дочерних виджетов в радителе.
допустимые значения: >= -1
значение по умолчанию: 0
смотрите также
gtkhbox
|
наследственный класс который
организует виджеты горизонтально в
одну строку.
|
gtkvbox
|
наследственный класс организующий
виджеты в один столбец.
|
gtkframe
|
gtkwidget полезный для
изображения границ вокруг gtkbox.
|
gtktable
|
gtkcontainer для организации
виджетов в сетку, вместо независимых
строк и столбцов.
|
gtklayout
|
gtkcontainer для организации
произвольного размещения виджетов.
|
|