## GtkFrame GtkFrame — A bin with a decorative frame and optional label |

## Synopsis

    #include <gtk/gtk.h>

                GtkFrame;
    GtkWidget*  gtk_frame_new                   (const gchar *label);
    void        gtk_frame_set_label             (GtkFrame *frame,
                                                 const gchar *label);
    void        gtk_frame_set_label_widget      (GtkFrame *frame,
                                                 GtkWidget *label_widget);
    void        gtk_frame_set_label_align       (GtkFrame *frame,
                                                 gfloat xalign,
                                                 gfloat yalign);
    void        gtk_frame_set_shadow_type       (GtkFrame *frame,
                                                 GtkShadowType type);
    const gchar* gtk_frame_get_label            (GtkFrame *frame);
    void        gtk_frame_get_label_align       (GtkFrame *frame,
                                                 gfloat *xalign,
                                                 gfloat *yalign);
    GtkWidget*  gtk_frame_get_label_widget      (GtkFrame *frame);
    GtkShadowType gtk_frame_get_shadow_type     (GtkFrame *frame);

## Object Hierarchy

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

## Implemented Interfaces

GtkFrame implements AtkImplementorIface.

## Properties

      "label"                gchararray            : Read / Write
      "label-widget"         GtkWidget             : Read / Write
      "label-xalign"         gfloat                : Read / Write
      "label-yalign"         gfloat                : Read / Write
      "shadow"               GtkShadowType         : Read / Write
      "shadow-type"          GtkShadowType         : Read / Write

## Description

The frame widget is a Bin that surrounds its child with a decorative frame and an optional label. If present, the label is drawn in a gap in the top side of the frame. The position of the label can be controlled with `gtk_frame_set_label_align()`.

## Details

### GtkFrame

    typedef struct _GtkFrame GtkFrame;

### gtk_frame_new ()

    GtkWidget*  gtk_frame_new                   (const gchar *label);

Creates a new GtkFrame, with optional label `label`. If `label` is `NULL`, the label is omitted.

`label` : | the text to use as the label of the frame
Returns : | a new GtkFrame widget

### gtk_frame_set_label ()

    void        gtk_frame_set_label             (GtkFrame *frame,
                                                 const gchar *label);

Sets the text of the label. If `label` is `NULL`, the current label is removed.

`frame` : | a GtkFrame
`label` : | the text to use as the label of the frame

### gtk_frame_set_label_widget ()

    void        gtk_frame_set_label_widget      (GtkFrame *frame,
                                                 GtkWidget *label_widget);

Sets the label widget for the frame. This is the widget that will appear embedded in the top edge of the frame as a title.

`frame` : | a GtkFrame
`label_widget` : | the new label widget

### gtk_frame_set_label_align ()

    void        gtk_frame_set_label_align       (GtkFrame *frame,
                                                 gfloat xalign,
                                                 gfloat yalign);

Sets the alignment of the frame widget's label. The default values for a newly created frame are 0.0 and 0.5.

`frame` : | a GtkFrame
`xalign` : | The position of the label along the top edge of the widget. A value of 0.0 represents left alignment; 1.0 represents right alignment.
`yalign` : | The y alignment of the label. A value of 0.0 aligns under the frame; 1.0 aligns above the frame.

### gtk_frame_set_shadow_type ()

    void        gtk_frame_set_shadow_type       (GtkFrame *frame,
                                                 GtkShadowType type);

Sets the shadow type for `frame`.

`frame` : | a GtkFrame
`type` : | the new GtkShadowType

### gtk_frame_get_label ()

    const gchar* gtk_frame_get_label            (GtkFrame *frame);

If the frame's label widget is a GtkLabel, returns the text in the label widget. (The frame will have a GtkLabel for the label widget if a non-`NULL` argument was passed to `gtk_frame_new()`.)

`frame` : | a GtkFrame
Returns : | the text in the label, or `NULL` if there was no label widget or the lable widget was not a GtkLabel. This string is owned by GTK+ and must not be modified or freed.

### gtk_frame_get_label_align ()

    void        gtk_frame_get_label_align       (GtkFrame *frame,
                                                 gfloat *xalign,
                                                 gfloat *yalign);

Retrieves the X and Y alignment of the frame's label. See `gtk_frame_set_label_align()`.

`frame` : | a GtkFrame
`xalign` : | location to store X alignment of frame's label, or `NULL`
`yalign` : | location to store X alignment of frame's label, or `NULL`

### gtk_frame_get_label_widget ()

    GtkWidget*  gtk_frame_get_label_widget      (GtkFrame *frame);

Retrieves the label widget for the frame. See `gtk_frame_set_label_widget()`.

`frame` : | a GtkFrame
Returns : | the label widget, or `NULL` if there is none.

### gtk_frame_get_shadow_type ()

    GtkShadowType gtk_frame_get_shadow_type     (GtkFrame *frame);

Retrieves the shadow type of the frame. See `gtk_frame_set_shadow_type()`.

`frame` : | a GtkFrame
Returns : | the current shadow type of the frame.

## Properties

### The "`label`" property

      "label"                gchararray            : Read / Write

Text of the frame's label.

Default value: NULL

### The "`label-widget`" property

      "label-widget"         GtkWidget             : Read / Write

A widget to display in place of the usual frame label.

### The "`label-xalign`" property

      "label-xalign"         gfloat                : Read / Write

The horizontal alignment of the label.

Allowed values: [0,1]

Default value: 0.5

### The "`label-yalign`" property

      "label-yalign"         gfloat                : Read / Write

The vertical alignment of the label.

Allowed values: [0,1]

Default value: 0.5

### The "`shadow`" property

      "shadow"               GtkShadowType         : Read / Write

Deprecated property, use shadow_type instead.

Default value: GTK_SHADOW_ETCHED_IN

### The "`shadow-type`" property

      "shadow-type"          GtkShadowType         : Read / Write

Appearance of the frame border.

Default value: GTK_SHADOW_ETCHED_IN