GTK+ 3 Reference Manual: GtkAspectFrame

## 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
       +----GInitiallyUnowned
             +----GtkWidget
                   +----GtkContainer
                         +----GtkBin
                               +----GtkFrame
                                     +----GtkAspectFrame

## Implemented Interfaces

GtkAspectFrame implements AtkImplementorIface and GtkBuildable.

## 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. [allow-none]
`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 (top aligned) to 1.0 (bottom 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 (top aligned) to 1.0 (bottom 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.

## Property Details

### 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: [0.0001,10000]

Default value: 1

### 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