## GtkAspectFrame

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

## Synopsis

    #include <gtk/gtk.h>

    struct      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

### struct GtkAspectFrame

    struct 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

"`obey-child`" (gboolean : Read / Write) | Force aspect ratio to match that of the frame's child.
"`ratio`" (gfloat : Read / Write) | Aspect ratio if obey_child is FALSE.
"`xalign`" (gfloat : Read / Write) | X alignment of the child.
"`yalign`" (gfloat : Read / Write) | Y alignment of the child.