## GtkButtonBox

GtkButtonBox — Base class for GtkHButtonBox and GtkVButtonBox

## Synopsis

    #include <gtk/gtk.h>

    struct              GtkButtonBox;
    #define             GTK_BUTTONBOX_DEFAULT
    #define             gtk_button_box_get_spacing          (b)
    GtkButtonBoxStyle   gtk_button_box_get_layout           (GtkButtonBox *widget);
    void                gtk_button_box_get_child_size       (GtkButtonBox *widget,
                                                             gint *min_width,
                                                             gint *min_height);
    void                gtk_button_box_get_child_ipadding   (GtkButtonBox *widget,
                                                             gint *ipad_x,
                                                             gint *ipad_y);
    gboolean            gtk_button_box_get_child_secondary  (GtkButtonBox *widget,
                                                             GtkWidget *child);
    #define             gtk_button_box_set_spacing          (b,
                                                             s)
    void                gtk_button_box_set_layout           (GtkButtonBox *widget,
                                                             GtkButtonBoxStyle layout_style);
    void                gtk_button_box_set_child_size       (GtkButtonBox *widget,
                                                             gint min_width,
                                                             gint min_height);
    void                gtk_button_box_set_child_ipadding   (GtkButtonBox *widget,
                                                             gint ipad_x,
                                                             gint ipad_y);
    void                gtk_button_box_set_child_secondary  (GtkButtonBox *widget,
                                                             GtkWidget *child,
                                                             gboolean is_secondary);

## Object Hierarchy

      GObject
       +----GInitiallyUnowned
             +----GtkObject
                   +----GtkWidget
                         +----GtkContainer
                               +----GtkBox
                                     +----GtkButtonBox
                                           +----GtkHButtonBox
                                           +----GtkVButtonBox

## Implemented Interfaces

GtkButtonBox implements AtkImplementorIface, GtkBuildable and GtkOrientable.

## Properties

      "layout-style"             GtkButtonBoxStyle     : Read / Write

## Child Properties

      "secondary"                gboolean              : Read / Write

## Style Properties

      "child-internal-pad-x"     gint                  : Read
      "child-internal-pad-y"     gint                  : Read
      "child-min-height"         gint                  : Read
      "child-min-width"          gint                  : Read

## Description

The primary purpose of this class is to keep track of the various properties of GtkHButtonBox and GtkVButtonBox widgets.

`gtk_button_box_get_child_size()` retrieves the minimum width and height for widgets in a given button box.

The internal padding of buttons can be retrieved and changed per button box using `gtk_button_box_get_child_ipadding()` and `gtk_button_box_set_child_ipadding()` respectively.

`gtk_button_box_get_spacing()` and `gtk_button_box_set_spacing()` retrieve and change default number of pixels between buttons, respectively.

`gtk_button_box_get_layout()` and `gtk_button_box_set_layout()` retrieve and alter the method used to spread the buttons in a button box across the container, respectively.

The main purpose of GtkButtonBox is to make sure the children have all the same size. Therefore it ignores the homogeneous property which it inherited from GtkBox, and always behaves as if homogeneous was `TRUE`.

## Details

### struct GtkButtonBox

    struct GtkButtonBox;

This is a read-only struct; no members should be modified directly.

### GTK_BUTTONBOX_DEFAULT

    #define GTK_BUTTONBOX_DEFAULT -1

Used internally only.

### gtk_button_box_get_spacing()

    #define gtk_button_box_get_spacing(b)   gtk_box_get_spacing (GTK_BOX (b))

### Warning

`gtk_button_box_get_spacing` is deprecated and should not be used in newly-written code. Use `gtk_box_get_spacing()` instead.

Retrieves how much space a button box is placing between each child button.

`b` : | a GtkButtonBox
Returns : | the current spacing applied to the buttons in `widget`

### gtk_button_box_get_layout ()

    GtkButtonBoxStyle   gtk_button_box_get_layout           (GtkButtonBox *widget);

Retrieves the method being used to arrange the buttons in a button box.

`widget` : | a GtkButtonBox.
Returns : | the method used to layout buttons in `widget`.

### gtk_button_box_get_child_size ()

    void                gtk_button_box_get_child_size       (GtkButtonBox *widget,
                                                             gint *min_width,
                                                             gint *min_height);

### Warning

`gtk_button_box_get_child_size` is deprecated and should not be used in newly-written code. Use the style properties `"child-min-width/-height"` instead.

Retrieves the current width and height of all child widgets in a button box. `min_width` and `min_height` are filled with those values, respectively.

`widget` : | a GtkButtonBox.
`min_width` : | the width of the buttons contained by `widget`.
`min_height` : | the height of the buttons contained by `widget`.

### gtk_button_box_get_child_ipadding ()

    void                gtk_button_box_get_child_ipadding   (GtkButtonBox *widget,
                                                             gint *ipad_x,
                                                             gint *ipad_y);

### Warning

`gtk_button_box_get_child_ipadding` is deprecated and should not be used in newly-written code. Use the style properties "child-internal-pad-x" and "child-internal-pad-y" instead.

Gets the default number of pixels that pad the buttons in a given button box.

`widget` : | a GtkButtonBox.
`ipad_x` : | the horizontal padding used by buttons in `widget`.
`ipad_y` : | the vertical padding used by buttons in `widget`.

### gtk_button_box_get_child_secondary ()

    gboolean            gtk_button_box_get_child_secondary  (GtkButtonBox *widget,
                                                             GtkWidget *child);

Returns whether `child` should appear in a secondary group of children.

`widget` : | a GtkButtonBox
`child` : | a child of `widget`
Returns : | whether `child` should appear in a secondary group of children.

Since 2.4

### gtk_button_box_set_spacing()

    #define gtk_button_box_set_spacing(b,s) gtk_box_set_spacing (GTK_BOX (b), s)

### Warning

`gtk_button_box_set_spacing` is deprecated and should not be used in newly-written code. Use `gtk_box_set_spacing()` instead.

Sets the amount of spacing between buttons in a given button box.

`b` : | a GtkButtonBox
`s` : | the number of pixels of spacing

### gtk_button_box_set_layout ()

    void                gtk_button_box_set_layout           (GtkButtonBox *widget,
                                                             GtkButtonBoxStyle layout_style);

Changes the way buttons are arranged in their container.

`widget` : | a GtkButtonBox.
`layout_style` : | the new layout style.

### gtk_button_box_set_child_size ()

    void                gtk_button_box_set_child_size       (GtkButtonBox *widget,
                                                             gint min_width,
                                                             gint min_height);

### Warning

`gtk_button_box_set_child_size` is deprecated and should not be used in newly-written code. This is not supported anymore and can only be set through the theme changing the style properties: "child-min-width" and "child-min-height" instead.

Sets a new default size for the children of a given button box.

`widget` : | a GtkButtonBox
`min_width` : | a default width for buttons in `widget`
`min_height` : | a default height for buttons in `widget`

### gtk_button_box_set_child_ipadding ()

    void                gtk_button_box_set_child_ipadding   (GtkButtonBox *widget,
                                                             gint ipad_x,
                                                             gint ipad_y);

### Warning

`gtk_button_box_set_child_ipadding` is deprecated and should not be used in newly-written code. Use the style properties `"child-internal-pad-x/-y"` instead.

Changes the amount of internal padding used by all buttons in a given button box.

`widget` : | a GtkButtonBox.
`ipad_x` : | the horizontal padding that should be used by each button in `widget`.
`ipad_y` : | the vertical padding that should be used by each button in `widget`.

### gtk_button_box_set_child_secondary ()

    void                gtk_button_box_set_child_secondary  (GtkButtonBox *widget,
                                                             GtkWidget *child,
                                                             gboolean is_secondary);

Sets whether `child` should appear in a secondary group of children. A typical use of a secondary child is the help button in a dialog.

This group appears after the other children if the style is `GTK_BUTTONBOX_START`, `GTK_BUTTONBOX_SPREAD` or `GTK_BUTTONBOX_EDGE`, and before the other children if the style is `GTK_BUTTONBOX_END`. For horizontal button boxes, the definition of before/after depends on direction of the widget (see `gtk_widget_set_direction()`). If the style is `GTK_BUTTONBOX_START` or `GTK_BUTTONBOX_END`, then the secondary children are aligned at the other end of the button box from the main children. For the other styles, they appear immediately next to the main children.

`widget` : | a GtkButtonBox
`child` : | a child of `widget`
`is_secondary` : | if `TRUE`, the `child` appears in a secondary group of the button box.

## Property Details

### The `"layout-style"` property

      "layout-style"             GtkButtonBoxStyle     : Read / Write

How to lay out the buttons in the box. Possible values are: default, spread, edge, start and end.

Default value: GTK_BUTTONBOX_DEFAULT_STYLE

## Child Property Details

### The `"secondary"` child property

      "secondary"                gboolean              : Read / Write

If TRUE, the child appears in a secondary group of children, suitable for, e.g., help buttons.

Default value: FALSE

## Style Property Details

### The `"child-internal-pad-x"` style property

      "child-internal-pad-x"     gint                  : Read

Amount to increase child's size on either side.

Allowed values: >= 0

Default value: 4

### The `"child-internal-pad-y"` style property

      "child-internal-pad-y"     gint                  : Read

Amount to increase child's size on the top and bottom.

Allowed values: >= 0

Default value: 0

### The `"child-min-height"` style property

      "child-min-height"         gint                  : Read

Minimum height of buttons inside the box.

Allowed values: >= 0

Default value: 27

### The `"child-min-width"` style property

      "child-min-width"          gint                  : Read

Minimum width of buttons inside the box.

Allowed values: >= 0

Default value: 85

## See Also

GtkVButtonBox | Vertical sub-class of GtkButtonBox.
GtkHButtonBox | Horizontal sub-class of GtkButtonBox.