GtkFrame

GtkFrame — A widget with a decorative frame and optional label

Properties

GtkWidget * child Read / Write
gchar * label Read / Write
GtkWidget * label-widget Read / Write
gfloat label-xalign Read / Write

Types and Values

struct GtkFrame
struct GtkFrameClass

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkFrame

Implemented Interfaces

GtkFrame implements AtkImplementorIface, GtkBuildable and GtkConstraintTarget.

Includes

#include <gtk/gtk.h>

Description

The frame widget is a widget that surrounds its child with a decorative frame and an optional label. If present, the label is drawn inside the top edge of the frame. The horizontal position of the label can be controlled with gtk_frame_set_label_align().

GtkFrame as GtkBuildable

The GtkFrame implementation of the GtkBuildable interface supports placing a child in the label position by specifying “label” as the “type” attribute of a <child> element. A normal content child can be specified without specifying a <child> type attribute.

An example of a UI definition fragment with GtkFrame:

1
2
3
4
5
6
7
8
<object class="GtkFrame">
  <child type="label">
    <object class="GtkLabel" id="frame_label"/>
  </child>
  <child>
    <object class="GtkEntry" id="frame_content"/>
  </child>
</object>


CSS nodes

1
2
3
frame
├── <label widget>
╰── <child>

GtkFrame has a main CSS node with name “frame”, which is used to draw the visible border. You can set the appearance of the border using CSS properties like “border-style” on this node.

Functions

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.

Parameters

label

the text to use as the label of the frame.

[allow-none]

Returns

a new GtkFrame widget


gtk_frame_set_child ()

void
gtk_frame_set_child (GtkFrame *frame,
                     GtkWidget *child);

Sets the child widget of frame .

Parameters

frame

a GtkFrame

 

child

the child widget.

[allow-none]

gtk_frame_get_child ()

GtkWidget *
gtk_frame_get_child (GtkFrame *frame);

Gets the child widget of frame .

Parameters

frame

a GtkFrame

 

Returns

the child widget of frame .

[nullable][transfer none]


gtk_frame_set_label ()

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

Removes the current “label-widget”. If label is not NULL, creates a new GtkLabel with that text and adds it as the “label-widget”.

Parameters

frame

a GtkFrame

 

label

the text to use as the label of the frame.

[allow-none]

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

Parameters

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.

[nullable]


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.

Parameters

frame

a GtkFrame

 

label_widget

the new label widget.

[nullable]

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

Parameters

frame

a GtkFrame

 

Returns

the label widget, or NULL if there is none.

[nullable][transfer none]


gtk_frame_set_label_align ()

void
gtk_frame_set_label_align (GtkFrame *frame,
                           gfloat xalign);

Sets the X alignment of the frame widget’s label. The default value for a newly created frame is 0.0.

Parameters

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.

 

gtk_frame_get_label_align ()

gfloat
gtk_frame_get_label_align (GtkFrame *frame);

Retrieves the X alignment of the frame’s label. See gtk_frame_set_label_align().

Parameters

frame

a GtkFrame

 

Types and Values

struct GtkFrame

struct GtkFrame;

struct GtkFrameClass

struct GtkFrameClass {
  GtkWidgetClass parent_class;

  void (*compute_child_allocation) (GtkFrame *frame,
                                    GtkAllocation *allocation);
};

Members

compute_child_allocation ()

   

Property Details

The “child” property

  “child”                    GtkWidget *

The child widget.

Owner: GtkFrame

Flags: Read / Write


The “label” property

  “label”                    gchar *

Text of the frame’s label.

Owner: GtkFrame

Flags: Read / Write

Default value: NULL


The “label-widget” property

  “label-widget”             GtkWidget *

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

Owner: GtkFrame

Flags: Read / Write


The “label-xalign” property

  “label-xalign”             gfloat

The horizontal alignment of the label.

Owner: GtkFrame

Flags: Read / Write

Allowed values: [0,1]

Default value: 0