| Top |  |  |  |  | 
Functions
| void | gtk_box_pack_start () | 
| void | gtk_box_pack_end () | 
| void | gtk_box_pack_start_defaults () | 
| void | gtk_box_pack_end_defaults () | 
| gboolean | gtk_box_get_homogeneous () | 
| void | gtk_box_set_homogeneous () | 
| gint | gtk_box_get_spacing () | 
| void | gtk_box_set_spacing () | 
| void | gtk_box_reorder_child () | 
| void | gtk_box_query_child_packing () | 
| void | gtk_box_set_child_packing () | 
Object Hierarchy
GObject ╰── GInitiallyUnowned ╰── GtkObject ╰── GtkWidget ╰── GtkContainer ╰── GtkBox ├── GtkButtonBox ├── GtkVBox ╰── GtkHBox
Description
GtkBox is an abstract widget which encapsulates functionality for a particular kind of container, one that organizes a variable number of widgets into a rectangular area. GtkBox has a number of derived classes, e.g. GtkHBox and GtkVBox.
The rectangular area of a GtkBox is organized into either a single row or a single column of child widgets depending upon whether the box is of type GtkHBox or GtkVBox, respectively. Thus, all children of a GtkBox are allocated one dimension in common, which is the height of a row, or the width of a column.
GtkBox uses a notion of packing. Packing refers to adding widgets with reference to a particular position in a GtkContainer. For a GtkBox, there are two reference positions: the start and the end of the box. For a GtkVBox, the start is defined as the top of the box and the end is defined as the bottom. For a GtkHBox the start is defined as the left side and the end is defined as the right side.
Use repeated calls to gtk_box_pack_start() to pack widgets into a
GtkBox from start to end.  Use gtk_box_pack_end() to add widgets from
end to start.  You may intersperse these calls and add widgets from
both ends of the same GtkBox.
Use gtk_box_pack_start_defaults() or gtk_box_pack_end_defaults()
to pack widgets into a GtkBox if you do not need to specify the
“expand”, “fill”, or “padding” child properties
for the child to be added.
Because GtkBox is a GtkContainer, you may also use
gtk_container_add() to insert widgets into the box, and they will be
packed as if with gtk_box_pack_start_defaults().  Use
gtk_container_remove() to remove widgets from the GtkBox.
Use gtk_box_set_homogeneous() to specify whether or not all children
of the GtkBox are forced to get the same amount of space.
Use gtk_box_set_spacing() to determine how much space will be
minimally placed between all children in the GtkBox.
Use gtk_box_reorder_child() to move a GtkBox child to a different
place in the box.
Use gtk_box_set_child_packing() to reset the “expand”,
“fill” and “padding” child properties.
Use gtk_box_query_child_packing() to query these fields.
Functions
gtk_box_pack_start ()
void gtk_box_pack_start (GtkBox *box,GtkWidget *child,gboolean expand,gboolean fill,guint padding);
Adds child
 to box
, packed with reference to the start of box
.
The child
 is packed after any other child packed with reference 
to the start of box
.
Parameters
| box | a GtkBox | |
| child | the GtkWidget to be added to  | |
| expand | 
 | |
| fill | 
 | |
| padding | extra space in pixels to put between this child and its
neighbors, over and above the global amount specified by
“spacing” property.  If  | 
gtk_box_pack_end ()
void gtk_box_pack_end (GtkBox *box,GtkWidget *child,gboolean expand,gboolean fill,guint padding);
Adds child
 to box
, packed with reference to the end of box
.  
The child
 is packed after (away from end of) any other child 
packed with reference to the end of box
.
Parameters
| box | a GtkBox | |
| child | the GtkWidget to be added to  | |
| expand | 
 | |
| fill | 
 | |
| padding | extra space in pixels to put between this child and its
neighbors, over and above the global amount specified by
“spacing” property.  If  | 
gtk_box_pack_start_defaults ()
void gtk_box_pack_start_defaults (GtkBox *box,GtkWidget *widget);
gtk_box_pack_start_defaults has been deprecated since version 2.14 and should not be used in newly-written code.
Adds widget
 to box
, packed with reference to the start of box
.
The child is packed after any other child packed with reference 
to the start of box
. 
Parameters for how to pack the child widget
, “expand”, 
“fill” and “padding”, are given their default
values, TRUE, TRUE, and 0, respectively.
gtk_box_pack_end_defaults ()
void gtk_box_pack_end_defaults (GtkBox *box,GtkWidget *widget);
gtk_box_pack_end_defaults has been deprecated since version 2.14 and should not be used in newly-written code.
Adds widget
 to box
, packed with reference to the end of box
.
The child is packed after any other child packed with reference 
to the start of box
. 
Parameters for how to pack the child widget
, “expand”, 
“fill” and “padding”, are given their default
values, TRUE, TRUE, and 0, respectively.
gtk_box_get_homogeneous ()
gboolean
gtk_box_get_homogeneous (GtkBox *box);
Returns whether the box is homogeneous (all children are the
same size). See gtk_box_set_homogeneous().
gtk_box_set_homogeneous ()
void gtk_box_set_homogeneous (GtkBox *box,gboolean homogeneous);
Sets the “homogeneous” property of box
, controlling 
whether or not all children of box
 are given equal space 
in the box.
gtk_box_get_spacing ()
gint
gtk_box_get_spacing (GtkBox *box);
Gets the value set by gtk_box_set_spacing().
gtk_box_set_spacing ()
void gtk_box_set_spacing (GtkBox *box,gint spacing);
Sets the “spacing” property of box
, which is the 
number of pixels to place between children of box
.
gtk_box_reorder_child ()
void gtk_box_reorder_child (GtkBox *box,GtkWidget *child,gint position);
Moves child
 to a new position
 in the list of box
 children.  
The list is the children field of
GtkBox, and contains both widgets packed GTK_PACK_START 
as well as widgets packed GTK_PACK_END, in the order that these 
widgets were added to box
.
A widget's position in the box
 children list determines where 
the widget is packed into box
.  A child widget at some position 
in the list will be packed just after all other widgets of the 
same packing type that appear earlier in the list.
gtk_box_query_child_packing ()
void gtk_box_query_child_packing (GtkBox *box,GtkWidget *child,gboolean *expand,gboolean *fill,guint *padding,GtkPackType *pack_type);
Obtains information about how child
 is packed into box
.
Parameters
| box | a GtkBox | |
| child | the GtkWidget of the child to query | |
| expand | pointer to return location for “expand” child property | |
| fill | pointer to return location for “fill” child property | |
| padding | pointer to return location for “padding” child property | |
| pack_type | pointer to return location for “pack-type” child property | 
Types and Values
struct GtkBox
struct GtkBox {
  GList *GSEAL (children);
  gint16 GSEAL (spacing);
  guint GSEAL (homogeneous) : 1;
};
The GtkBox describes an instance of GtkBox and contains the following fields. (These fields should be considered read-only. They should never be set by an application.)
struct GtkBoxChild
struct GtkBoxChild {
  GtkWidget *widget;
  guint16 padding;
  guint expand : 1;
  guint fill : 1;
  guint pack : 1;
  guint is_secondary : 1;
};
GtkBoxChild has been deprecated since version 2.22 and should not be used in newly-written code.
Use gtk_container_get_children() instead.
The GtkBoxChild holds a child widget of GtkBox and describes how the child
is to be packed into the GtkBox. All fields of this GtkBoxChild should be
considered read-only and they should never be set directly by an application.
Use gtk_box_query_child_packing() and gtk_box_set_child_packing() to query
and set the GtkBoxChild.padding, GtkBoxChild.expand, GtkBoxChild.fill and
GtkBoxChild.pack fields.
The GtkBoxChild holds a child widget of GtkBox and describes
how the child is to be packed into the GtkBox.  Use
gtk_box_query_child_packing() and gtk_box_set_child_packing() to query
and reset the padding,
expand, fill,
and pack fields.
GtkBoxChild contains the following fields. (These fields should be considered read-only. They should never be directly set by an application.)
Members
| GtkWidget * | the child widget, packed into the GtkBox. | |
| guint16  | the number of extra pixels to put between this child and its neighbors, set when packed, zero by default. | |
| guint  | flag indicates whether extra space should be given to this child.
Any extra space given to the parent GtkBox is divided up among all children
with this attribute set to  | |
| guint  | flag indicates whether any extra space given to this child due to its
 | |
| guint  | one of GtkPackType indicating whether the child is packed with reference to the start (top/left) or end (bottom/right) of the GtkBox. | |
| guint  | 
 | 
Property Details
The “homogeneous” property
“homogeneous” gboolean
Whether the children should all be the same size.
Flags: Read / Write
Default value: FALSE
The “spacing” property
“spacing” gint
The amount of space between children.
Flags: Read / Write
Allowed values: >= 0
Default value: 0
Child Property Details
The “expand” child property
“expand” gboolean
Whether the child should receive extra space when the parent grows.
Flags: Read / Write
Default value: TRUE
The “fill” child property
“fill” gboolean
Whether extra space given to the child should be allocated to the child or used as padding.
Flags: Read / Write
Default value: TRUE
The “pack-type” child property
“pack-type” GtkPackType
A GtkPackType indicating whether the child is packed with reference to the start or end of the parent.
Flags: Read / Write
Default value: GTK_PACK_START
The “padding” child property
“padding” guint
Extra space to put between the child and its neighbors, in pixels.
Flags: Read / Write
Allowed values: <= G_MAXINT
Default value: 0
The “position” child property
“position” gint
The index of the child in the parent.
Flags: Read / Write
Allowed values: >= -1
Default value: 0
See Also
| a derived class that organizes widgets into a row. | |
| a derived class that organizes widgets into a column. | |
| a GtkWidget useful for drawing a border around a GtkBox. | |
| a GtkContainer for organizing widgets into a grid, rather than independent rows or columns. | |
| a GtkContainer for organizing widgets into arbitrary layouts. | 
