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

## Functions

GtkWidget * | gtk_aspect_frame_new ()
void | gtk_aspect_frame_set ()

## Properties

gboolean | obey-child | Read / Write
gfloat | ratio | Read / Write
gfloat | xalign | Read / Write
gfloat | yalign | Read / Write

## Types and Values

struct | GtkAspectFrame
struct | GtkAspectFrameClass

## Object Hierarchy

        GObject
        ╰── GInitiallyUnowned
            ╰── GtkWidget
                ╰── GtkContainer
                    ╰── GtkBin
                        ╰── GtkFrame
                            ╰── GtkAspectFrame

## Implemented Interfaces

GtkAspectFrame implements AtkImplementorIface and GtkBuildable.

## Includes

    #include <gtk/gtk.h>

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

### CSS nodes

GtkAspectFrame uses a CSS node with name frame.

## Functions

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

#### Parameters

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.

#### Parameters

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

## Types and Values

### struct GtkAspectFrame

    struct GtkAspectFrame;

### struct GtkAspectFrameClass

    struct GtkAspectFrameClass {
      GtkFrameClass parent_class;
    };

#### Members

## Property Details

### The `“obey-child”` property

      “obey-child”               gboolean

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

Flags: Read / Write

Default value: TRUE

### The `“ratio”` property

      “ratio”                    gfloat

Aspect ratio if obey_child is FALSE.

Flags: Read / Write

Allowed values: [0.0001,10000]

Default value: 1

### The `“xalign”` property

      “xalign”                   gfloat

X alignment of the child.

Flags: Read / Write

Allowed values: [0,1]

Default value: 0.5

### The `“yalign”` property

      “yalign”                   gfloat

Y alignment of the child.

Flags: Read / Write

Allowed values: [0,1]

Default value: 0.5