## GtkAspectFrame

GtkAspectFrame — A frame that constrains its child to a particular aspect ratio

## Synopsis

    #include <gtk/gtk.h>

                GtkAspectFrame;
    GtkWidget*  gtk_aspect_frame_new            (const gchar *label,
                                                 gfloat xalign,
                                                 gfloat yalign,
                                                 gfloat ratio,
                                                 gboolean obey_child);
    void        gtk_aspect_frame_set            (GtkAspectFrame *aspect_frame,
                                                 gfloat xalign,
                                                 gfloat yalign,
                                                 gfloat ratio,
                                                 gboolean obey_child);

## Object Hierarchy

      GObject
       +----GtkObject
             +----GtkWidget
                   +----GtkContainer
                         +----GtkBin
                               +----GtkFrame
                                     +----GtkAspectFrame

## Implemented Interfaces

GtkAspectFrame implements AtkImplementorIface.

## Properties

      "obey-child"           gboolean              : Read / Write
      "ratio"                gfloat                : Read / Write
      "xalign"               gfloat                : Read / Write
      "yalign"               gfloat                : Read / Write

## Description

The GtkAspectFrame is useful when you want pack a widget so that it can resize but always retains the same aspect ratio. For instance, one might be drawing a small preview of a larger image. GtkAspectFrame derives from GtkFrame, so it can draw a label and a frame around the child. The frame will be "shrink-wrapped" to the size of the child.

## Details

### GtkAspectFrame

    typedef struct _GtkAspectFrame GtkAspectFrame;

### gtk_aspect_frame_new ()

    GtkWidget*  gtk_aspect_frame_new            (const gchar *label,
                                                 gfloat xalign,
                                                 gfloat yalign,
                                                 gfloat ratio,
                                                 gboolean obey_child);

Create a new GtkAspectFrame.

`label` : | Label text.
`xalign` : | Horizontal alignment of the child within the allocation of the GtkAspectFrame. This ranges from 0.0 (left aligned) to 1.0 (right aligned)
`yalign` : | Vertical alignment of the child within the allocation of the GtkAspectFrame. This ranges from 0.0 (left aligned) to 1.0 (right aligned)
`ratio` : | The desired aspect ratio.
`obey_child` : | If `TRUE`, `ratio` is ignored, and the aspect ratio is taken from the requistion of the child.
Returns : | the new GtkAspectFrame.

### gtk_aspect_frame_set ()

    void        gtk_aspect_frame_set            (GtkAspectFrame *aspect_frame,
                                                 gfloat xalign,
                                                 gfloat yalign,
                                                 gfloat ratio,
                                                 gboolean obey_child);

Set parameters for an existing GtkAspectFrame.

`aspect_frame` : | a GtkAspectFrame
`xalign` : | Horizontal alignment of the child within the allocation of the GtkAspectFrame. This ranges from 0.0 (left aligned) to 1.0 (right aligned)
`yalign` : | Vertical alignment of the child within the allocation of the GtkAspectFrame. This ranges from 0.0 (left aligned) to 1.0 (right aligned)
`ratio` : | The desired aspect ratio.
`obey_child` : | If `TRUE`, `ratio` is ignored, and the aspect ratio is taken from the requistion of the child.

## Properties

### The "`obey-child`" property

      "obey-child"           gboolean              : Read / Write

Force aspect ratio to match that of the frame's child.

Default value: TRUE

### The "`ratio`" property

      "ratio"                gfloat                : Read / Write

Aspect ratio if obey_child is FALSE.

Allowed values: [1e-04,10000]

Default value: 0.5

### The "`xalign`" property

      "xalign"               gfloat                : Read / Write

X alignment of the child.

Allowed values: [0,1]

Default value: 0.5

### The "`yalign`" property

      "yalign"               gfloat                : Read / Write

Y alignment of the child.

Allowed values: [0,1]

Default value: 0.5