## GtkAlignment GtkAlignment — A widget which controls the alignment and size of its child |

## Synopsis

    #include <gtk/gtk.h>

                GtkAlignment;
    GtkWidget*  gtk_alignment_new               (gfloat xalign,
                                                 gfloat yalign,
                                                 gfloat xscale,
                                                 gfloat yscale);
    void        gtk_alignment_set               (GtkAlignment *alignment,
                                                 gfloat xalign,
                                                 gfloat yalign,
                                                 gfloat xscale,
                                                 gfloat yscale);
    void        gtk_alignment_get_padding       (GtkAlignment *alignment,
                                                 guint *padding_top,
                                                 guint *padding_bottom,
                                                 guint *padding_left,
                                                 guint *padding_right);
    void        gtk_alignment_set_padding       (GtkAlignment *alignment,
                                                 guint padding_top,
                                                 guint padding_bottom,
                                                 guint padding_left,
                                                 guint padding_right);

## Object Hierarchy

      GObject
       +----GInitiallyUnowned
             +----GtkObject
                   +----GtkWidget
                         +----GtkContainer
                               +----GtkBin
                                     +----GtkAlignment

## Implemented Interfaces

GtkAlignment implements AtkImplementorIface.

## Properties

      "bottom-padding"       guint                 : Read / Write
      "left-padding"         guint                 : Read / Write
      "right-padding"        guint                 : Read / Write
      "top-padding"          guint                 : Read / Write
      "xalign"               gfloat                : Read / Write
      "xscale"               gfloat                : Read / Write
      "yalign"               gfloat                : Read / Write
      "yscale"               gfloat                : Read / Write

## Description

The GtkAlignment widget controls the alignment and size of its child widget. It has four settings: xscale, yscale, xalign, and yalign.

The scale settings are used to specify how much the child widget should expand to fill the space allocated to the GtkAlignment. The values can range from 0 (meaning the child doesn't expand at all) to 1 (meaning the child expands to fill all of the available space).

The align settings are used to place the child widget within the available area. The values range from 0 (top or left) to 1 (bottom or right). Of course, if the scale settings are both set to 1, the alignment settings have no effect.

## Details

### GtkAlignment

    typedef struct _GtkAlignment GtkAlignment;

The GtkAlignment struct contains private data only, and should be accessed using the functions below.

### gtk_alignment_new ()

    GtkWidget*  gtk_alignment_new               (gfloat xalign,
                                                 gfloat yalign,
                                                 gfloat xscale,
                                                 gfloat yscale);

Creates a new GtkAlignment.

`xalign` : | the horizontal alignment of the child widget, from 0 (left) to 1 (right).
`yalign` : | the vertical alignment of the child widget, from 0 (top) to 1 (bottom).
`xscale` : | the amount that the child widget expands horizontally to fill up unused space, from 0 to 1. A value of 0 indicates that the child widget should never expand. A value of 1 indicates that the child widget will expand to fill all of the space allocated for the GtkAlignment.
`yscale` : | the amount that the child widget expands vertically to fill up unused space, from 0 to 1. The values are similar to `xscale`.
Returns : | the new GtkAlignment.

### gtk_alignment_set ()

    void        gtk_alignment_set               (GtkAlignment *alignment,
                                                 gfloat xalign,
                                                 gfloat yalign,
                                                 gfloat xscale,
                                                 gfloat yscale);

Sets the GtkAlignment values.

`alignment` : | a GtkAlignment.
`xalign` : | the horizontal alignment of the child widget, from 0 (left) to 1 (right).
`yalign` : | the vertical alignment of the child widget, from 0 (top) to 1 (bottom).
`xscale` : | the amount that the child widget expands horizontally to fill up unused space, from 0 to 1. A value of 0 indicates that the child widget should never expand. A value of 1 indicates that the child widget will expand to fill all of the space allocated for the GtkAlignment.
`yscale` : | the amount that the child widget expands vertically to fill up unused space, from 0 to 1. The values are similar to `xscale`.

### gtk_alignment_get_padding ()

    void        gtk_alignment_get_padding       (GtkAlignment *alignment,
                                                 guint *padding_top,
                                                 guint *padding_bottom,
                                                 guint *padding_left,
                                                 guint *padding_right);

Gets the padding on the different sides of the widget. See `gtk_alignment_set_padding()`.

`alignment` : | a GtkAlignment
`padding_top` : | location to store the padding for the top of the widget, or `NULL`
`padding_bottom` : | location to store the padding for the bottom of the widget, or `NULL`
`padding_left` : | location to store the padding for the left of the widget, or `NULL`
`padding_right` : | location to store the padding for the right of the widget, or `NULL`

Since 2.4

### gtk_alignment_set_padding ()

    void        gtk_alignment_set_padding       (GtkAlignment *alignment,
                                                 guint padding_top,
                                                 guint padding_bottom,
                                                 guint padding_left,
                                                 guint padding_right);

Sets the padding on the different sides of the widget. The padding adds blank space to the sides of the widget. For instance, this can be used to indent the child widget towards the right by adding padding on the left.

`alignment` : | a GtkAlignment
`padding_top` : | the padding at the top of the widget
`padding_bottom` : | the padding at the bottom of the widget
`padding_left` : | the padding at the left of the widget
`padding_right` : | the padding at the right of the widget.

Since 2.4

## Property Details

### The "`bottom-padding`" property

      "bottom-padding"       guint                 : Read / Write

The padding to insert at the bottom of the widget.

Allowed values: <= G_MAXINT

Default value: 0

Since 2.4

### The "`left-padding`" property

      "left-padding"         guint                 : Read / Write

The padding to insert at the left of the widget.

Allowed values: <= G_MAXINT

Default value: 0

Since 2.4

### The "`right-padding`" property

      "right-padding"        guint                 : Read / Write

The padding to insert at the right of the widget.

Allowed values: <= G_MAXINT

Default value: 0

Since 2.4

### The "`top-padding`" property

      "top-padding"          guint                 : Read / Write

The padding to insert at the top of the widget.

Allowed values: <= G_MAXINT

Default value: 0

Since 2.4

### The "`xalign`" property

      "xalign"               gfloat                : Read / Write

Horizontal position of child in available space. 0.0 is left aligned, 1.0 is right aligned.

Allowed values: [0,1]

Default value: 0.5

### The "`xscale`" property

      "xscale"               gfloat                : Read / Write

If available horizontal space is bigger than needed for the child, how much of it to use for the child. 0.0 means none, 1.0 means all.

Allowed values: [0,1]

Default value: 1

### The "`yalign`" property

      "yalign"               gfloat                : Read / Write

Vertical position of child in available space. 0.0 is top aligned, 1.0 is bottom aligned.

Allowed values: [0,1]

Default value: 0.5

### The "`yscale`" property

      "yscale"               gfloat                : Read / Write

If available vertical space is bigger than needed for the child, how much of it to use for the child. 0.0 means none, 1.0 means all.

Allowed values: [0,1]

Default value: 1