Gtk.Frame

Entities

Tagged Types

Access Types

Constants

Subprograms

Generic Instantiations

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.

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

<object class="GtkFrame">
  <child type="label">
    <object class="GtkLabel" id="frame-label"/>
  </child>
  <child>
    <object class="GtkEntry" id="frame-content"/>
  </child>
</object>

# CSS nodes

frame
├── border[.flat]
├── <label widget>
╰── <child>

GtkFrame has a main CSS node named "frame" and a subnode named "border". The "border" node is used to draw the visible border. You can set the appearance of the border using CSS properties like "border-style" on the "border" node.

The border node can be given the style class ".flat", which is used by themes to disable drawing of the border. To do this from code, call Gtk.Frame.Set_Shadow_Type with Gtk.Enums.Shadow_None to add the ".flat" class or any other shadow type to remove it.

This is a very convenient widget to visually group related widgets (like groups of buttons for instance), possibly with a title to explain the purpose of this group.

A Gtk_Frame has only one child, so you have to put a container like for instance a Gtk_Box inside if you want the frame to surround multiple widgets.

<screenshot>gtk-frame</screenshot> <group>Ornaments</group> <testgtk>create_frame.adb</testgtk>

"+"

function "+"
  (Widget : access Gtk_Frame_Record'Class)
return Gtk.Buildable.Gtk_Buildable
Parameters
Widget
Return Value

"-"

function "-"
  (Interf : Gtk.Buildable.Gtk_Buildable)
return Gtk_Frame
Parameters
Interf
Return Value

Get_Label

function Get_Label
   (Frame : not null access Gtk_Frame_Record) return UTF8_String

If the frame's label widget is a Gtk.Label.Gtk_Label, returns the text in the label widget. (The frame will have a Gtk.Label.Gtk_Label for the label widget if a non-null argument was passed to Gtk.Frame.Gtk_New.)

Parameters
Frame
Return Value

the text in the label, or null if there was no label widget or the lable widget was not a Gtk.Label.Gtk_Label. This string is owned by GTK+ and must not be modified or freed.

Get_Label_Align

procedure Get_Label_Align
   (Frame  : not null access Gtk_Frame_Record;
    Xalign : out Gfloat;
    Yalign : out Gfloat)

Retrieves the X and Y alignment of the frame's label. See Gtk.Frame.Set_Label_Align.

Parameters
Frame
Xalign

location to store X alignment of frame's label, or null

Yalign

location to store X alignment of frame's label, or null

Get_Label_Widget

function Get_Label_Widget
   (Frame : not null access Gtk_Frame_Record)
    return Gtk.Widget.Gtk_Widget

Retrieves the label widget for the frame. See Gtk.Frame.Set_Label_Widget.

Parameters
Frame
Return Value

the label widget, or null if there is none.

Get_Shadow_Type

function Get_Shadow_Type
   (Frame : not null access Gtk_Frame_Record)
    return Gtk.Enums.Gtk_Shadow_Type

Retrieves the shadow type of the frame. See Gtk.Frame.Set_Shadow_Type.

Parameters
Frame
Return Value

the current shadow type of the frame.

Get_Type

function Get_Type return Glib.GType
Return Value

Gtk_Frame

type Gtk_Frame is access all Gtk_Frame_Record'Class;

Gtk_Frame_New

function Gtk_Frame_New (Label : UTF8_String := "") return Gtk_Frame

Creates a new Gtk.Frame.Gtk_Frame, with optional label Label. If Label is null, the label is omitted.

Parameters
Label

the text to use as the label of the frame

Return Value

Gtk_Frame_Record

type Gtk_Frame_Record is new Gtk_Bin_Record with null record;

Gtk_New

procedure Gtk_New (Frame : out Gtk_Frame; Label : UTF8_String := "")

Creates a new Gtk.Frame.Gtk_Frame, with optional label Label. If Label is null, the label is omitted. Initialize does nothing if the object was already created with another call to Initialize* or G_New.

Parameters
Frame
Label

the text to use as the label of the frame

Implements_Gtk_Buildable

package Implements_Gtk_Buildable is new Glib.Types.Implements
  (Gtk.Buildable.Gtk_Buildable, Gtk_Frame_Record, Gtk_Frame);

Initialize

procedure Initialize
   (Frame : not null access Gtk_Frame_Record'Class;
    Label : UTF8_String := "")

Creates a new Gtk.Frame.Gtk_Frame, with optional label Label. If Label is null, the label is omitted. Initialize does nothing if the object was already created with another call to Initialize* or G_New.

Parameters
Frame
Label

the text to use as the label of the frame

Label_Property

Label_Property : constant Glib.Properties.Property_String;

Label_Widget_Property

Label_Widget_Property : constant Glib.Properties.Property_Object;

Type: Gtk.Widget.Gtk_Widget

Label_Xalign_Property

Label_Xalign_Property : constant Glib.Properties.Property_Float;

Label_Yalign_Property

Label_Yalign_Property : constant Glib.Properties.Property_Float;

Set_Label

procedure Set_Label
   (Frame : not null access Gtk_Frame_Record;
    Label : UTF8_String := "")

Removes the current Gtk.Frame.Gtk_Frame:label-widget. If Label is not null, creates a new Gtk.Label.Gtk_Label with that text and adds it as the Gtk.Frame.Gtk_Frame:label-widget.

Parameters
Frame
Label

the text to use as the label of the frame

Set_Label_Align

procedure Set_Label_Align
   (Frame  : not null access Gtk_Frame_Record;
    Xalign : Gfloat;
    Yalign : Gfloat)

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

Parameters
Frame
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. If the values are exactly 0.0 or 1.0 the gap in the frame won't be painted because the label will be completely above or below the frame.

Set_Label_Widget

procedure Set_Label_Widget
   (Frame        : not null access Gtk_Frame_Record;
    Label_Widget : access Gtk.Widget.Gtk_Widget_Record'Class)

Sets the Gtk.Frame.Gtk_Frame: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
Label_Widget

the new label widget

Set_Shadow_Type

procedure Set_Shadow_Type
   (Frame    : not null access Gtk_Frame_Record;
    The_Type : Gtk.Enums.Gtk_Shadow_Type)

Sets the Gtk.Frame.Gtk_Frame:shadow-type for Frame, i.e. whether it is drawn without (Gtk.Enums.Shadow_None) or with (other values) a visible border. Values other than Gtk.Enums.Shadow_None are treated identically by GtkFrame. The chosen type is applied by removing or adding the .flat class to the CSS node named border.

Parameters
Frame
The_Type

the new Gtk.Enums.Gtk_Shadow_Type

Shadow_Type_Property

Shadow_Type_Property : constant Gtk.Enums.Property_Gtk_Shadow_Type;