Gtk.Paned

Entities

Tagged Types

Access Types

Subtypes

Constants

Subprograms

Generic Instantiations

Description

Gtk.Paned.Gtk_Paned has two panes, arranged either horizontally or vertically. The division between the two panes is adjustable by the user by dragging a handle.

Child widgets are added to the panes of the widget with Gtk.Paned.Pack1 and Gtk.Paned.Pack2. The division between the two children is set by default from the size requests of the children, but it can be adjusted by the user.

A paned widget draws a separator between the two child widgets and a small handle that the user can drag to adjust the division. It does not draw any relief around the children or around the separator. (The space in which the separator is called the gutter.) Often, it is useful to put each child inside a Gtk.Frame.Gtk_Frame with the shadow type set to Gtk.Enums.Shadow_In so that the gutter appears as a ridge. No separator is drawn if one of the children is missing.

Each child has two options that can be set, Resize and Shrink. If Resize is true, then when the Gtk.Paned.Gtk_Paned is resized, that child will expand or shrink along with the paned widget. If Shrink is true, then that child can be made smaller than its requisition by the user. Setting Shrink to False allows the application to set a minimum size. If Resize is false for both children, then this is treated as if Resize is true for both children.

The application can set the position of the slider as if it were set by the user, by calling Gtk.Paned.Set_Position.

# CSS nodes

paned
├── <child>
├── separator[.wide]
╰── <child>

GtkPaned has a main CSS node with name paned, and a subnode for the separator with name separator. The subnode gets a .wide style class when the paned is supposed to be wide.

In horizontal orientation, the nodes of the children are always arranged from left to right. So :first-child will always select the leftmost child, regardless of text direction.

## Creating a paned widget with minimum sizes.

GtkWidget *hpaned = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL);
GtkWidget *frame1 = gtk_frame_new (NULL);
GtkWidget *frame2 = gtk_frame_new (NULL);
gtk_frame_set_shadow_type (GTK_FRAME (frame1), GTK_SHADOW_IN);
gtk_frame_set_shadow_type (GTK_FRAME (frame2), GTK_SHADOW_IN);

gtk_widget_set_size_request (hpaned, 200, -1);

gtk_paned_pack1 (GTK_PANED (hpaned), frame1, TRUE, FALSE);
gtk_widget_set_size_request (frame1, 50, -1);

gtk_paned_pack2 (GTK_PANED (hpaned), frame2, FALSE, FALSE);
gtk_widget_set_size_request (frame2, 50, -1);

<screenshot>gtk-paned</screenshot> <group>Layout container</group> <testgtk>create_paned.adb</testgtk>

"+"

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

"+"

function "+"
  (Widget : access Gtk_Paned_Record'Class)
return Gtk.Orientable.Gtk_Orientable
Parameters
Widget
Return Value

"-"

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

"-"

function "-"
  (Interf : Gtk.Orientable.Gtk_Orientable)
return Gtk_Paned
Parameters
Interf
Return Value

Add1

procedure Add1
   (Paned : not null access Gtk_Paned_Record;
    Child : not null access Gtk.Widget.Gtk_Widget_Record'Class)

Add the first child of the container. The child will be displayed either in the top or in the left pane, depending on the orientation of the container. This is equivalent to using the Pack1 procedure with its default parameters.

Parameters
Paned
Child

the child to add

Add2

procedure Add2
   (Paned : not null access Gtk_Paned_Record;
    Child : not null access Gtk.Widget.Gtk_Widget_Record'Class)

Add the second child of the container. It will be displayed in the bottom or right pane, depending on the container's orientation. This is equivalent to using Pack2 with its default parameters.

Parameters
Paned
Child

the child to add

Cb_GObject_Boolean

type Cb_GObject_Boolean is not null access function
  (Self : access Glib.Object.GObject_Record'Class)
return Boolean;
Parameters
Self
Return Value

Cb_GObject_Boolean_Boolean

type Cb_GObject_Boolean_Boolean is not null access function
  (Self     : access Glib.Object.GObject_Record'Class;
   Reversed : Boolean) return Boolean;
Parameters
Self
Reversed
Return Value

Cb_GObject_Gtk_Scroll_Type_Boolean

type Cb_GObject_Gtk_Scroll_Type_Boolean is not null access function
  (Self        : access Glib.Object.GObject_Record'Class;
   Scroll_Type : Gtk.Enums.Gtk_Scroll_Type) return Boolean;
Parameters
Self
Scroll_Type
Return Value

Cb_Gtk_Paned_Boolean

type Cb_Gtk_Paned_Boolean is not null access function
  (Self : access Gtk_Paned_Record'Class) return Boolean;
Parameters
Self
Return Value

Cb_Gtk_Paned_Boolean_Boolean

type Cb_Gtk_Paned_Boolean_Boolean is not null access function
  (Self     : access Gtk_Paned_Record'Class;
   Reversed : Boolean) return Boolean;
Parameters
Self
Reversed
Return Value

Cb_Gtk_Paned_Gtk_Scroll_Type_Boolean

type Cb_Gtk_Paned_Gtk_Scroll_Type_Boolean is not null access function
  (Self        : access Gtk_Paned_Record'Class;
   Scroll_Type : Gtk.Enums.Gtk_Scroll_Type) return Boolean;
Parameters
Self
Scroll_Type
Return Value

Get_Child1

function Get_Child1
   (Paned : not null access Gtk_Paned_Record)
    return Gtk.Widget.Gtk_Widget

Obtains the first child of the paned widget. Since: gtk+ 2.4

Parameters
Paned
Return Value

first child, or null if it is not set.

Get_Child2

function Get_Child2
   (Paned : not null access Gtk_Paned_Record)
    return Gtk.Widget.Gtk_Widget

Obtains the second child of the paned widget. Since: gtk+ 2.4

Parameters
Paned
Return Value

second child, or null if it is not set.

Get_Handle_Window

function Get_Handle_Window
   (Paned : not null access Gtk_Paned_Record) return Gdk.Gdk_Window

Returns the Gdk.Gdk_Window of the handle. This function is useful when handling button or motion events because it enables the callback to distinguish between the window of the paned, a child and the handle. Since: gtk+ 2.20

Parameters
Paned
Return Value

the paned's handle window.

Get_Orientation

function Get_Orientation
   (Self : not null access Gtk_Paned_Record)
    return Gtk.Enums.Gtk_Orientation
Parameters
Self
Return Value

Get_Position

function Get_Position
   (Paned : not null access Gtk_Paned_Record) return Glib.Gint

Obtains the position of the divider between the two panes.

Parameters
Paned
Return Value

position of the divider

Get_Type

function Get_Type return Glib.GType
Return Value

Get_Type_Hpaned

function Get_Type_Hpaned return Glib.GType
Return Value

Get_Type_Vpaned

function Get_Type_Vpaned return Glib.GType
Return Value

Get_Wide_Handle

function Get_Wide_Handle
   (Paned : not null access Gtk_Paned_Record) return Boolean

Gets the Gtk.Paned.Gtk_Paned:wide-handle property. Since: gtk+ 3.16

Parameters
Paned
Return Value

True if the paned should have a wide handle

Gtk_Hpaned

subtype Gtk_Hpaned is Gtk_Paned;

Gtk_Hpaned_New

function Gtk_Hpaned_New return Gtk_Hpaned

The children will be displayed next to each other

Return Value

Gtk_Hpaned_Record

subtype Gtk_Hpaned_Record is Gtk_Paned_Record;

Gtk_New

procedure Gtk_New
   (Paned       : out Gtk_Paned;
    Orientation : Gtk.Enums.Gtk_Orientation)

Creates a new Gtk.Paned.Gtk_Paned widget. Since: gtk+ 3.0 Initialize does nothing if the object was already created with another call to Initialize* or G_New.

Parameters
Paned
Orientation

the paned's orientation.

Gtk_New_Hpaned

procedure Gtk_New_Hpaned (Paned : out Gtk_Hpaned)

The children will be displayed next to each other Initialize_Hpaned does nothing if the object was already created with another call to Initialize* or G_New.

Parameters
Paned

Gtk_New_Vpaned

procedure Gtk_New_Vpaned (Paned : out Gtk_Vpaned)

The children will be displayed one on top of the other Initialize_Vpaned does nothing if the object was already created with another call to Initialize* or G_New.

Parameters
Paned

Gtk_Paned

type Gtk_Paned is access all Gtk_Paned_Record'Class;

Gtk_Paned_New

function Gtk_Paned_New
   (Orientation : Gtk.Enums.Gtk_Orientation) return Gtk_Paned

Creates a new Gtk.Paned.Gtk_Paned widget. Since: gtk+ 3.0

Parameters
Orientation

the paned's orientation.

Return Value

Gtk_Paned_Record

type Gtk_Paned_Record is new Gtk_Container_Record with null record;

Gtk_Vpaned

subtype Gtk_Vpaned is Gtk_Paned;

Gtk_Vpaned_New

function Gtk_Vpaned_New return Gtk_Vpaned

The children will be displayed one on top of the other

Return Value

Gtk_Vpaned_Record

subtype Gtk_Vpaned_Record is Gtk_Paned_Record;

Implements_Gtk_Buildable

package Implements_Gtk_Buildable is new Glib.Types.Implements
  (Gtk.Buildable.Gtk_Buildable, Gtk_Paned_Record, Gtk_Paned);

Implements_Gtk_Orientable

package Implements_Gtk_Orientable is new Glib.Types.Implements
  (Gtk.Orientable.Gtk_Orientable, Gtk_Paned_Record, Gtk_Paned);

Initialize

procedure Initialize
   (Paned       : not null access Gtk_Paned_Record'Class;
    Orientation : Gtk.Enums.Gtk_Orientation)

Creates a new Gtk.Paned.Gtk_Paned widget. Since: gtk+ 3.0 Initialize does nothing if the object was already created with another call to Initialize* or G_New.

Parameters
Paned
Orientation

the paned's orientation.

Initialize_Hpaned

procedure Initialize_Hpaned
   (Paned : not null access Gtk_Hpaned_Record'Class)

The children will be displayed next to each other Initialize_Hpaned does nothing if the object was already created with another call to Initialize* or G_New.

Parameters
Paned

Initialize_Vpaned

procedure Initialize_Vpaned
   (Paned : not null access Gtk_Vpaned_Record'Class)

The children will be displayed one on top of the other Initialize_Vpaned does nothing if the object was already created with another call to Initialize* or G_New.

Parameters
Paned

Max_Position_Property

Max_Position_Property : constant Glib.Properties.Property_Int;

The largest possible value for the position property. This property is derived from the size and shrinkability of the widget's children.

Min_Position_Property

Min_Position_Property : constant Glib.Properties.Property_Int;

The smallest possible value for the position property. This property is derived from the size and shrinkability of the widget's children.

On_Accept_Position

procedure On_Accept_Position
   (Self  : not null access Gtk_Paned_Record;
    Call  : Cb_GObject_Boolean;
    Slot  : not null access Glib.Object.GObject_Record'Class;
    After : Boolean := False)

The ::accept-position signal is a [keybinding signal][GtkBindingSignal] which gets emitted to accept the current position of the handle when moving it using key bindings.

The default binding for this signal is Return or Space.

Parameters
Self
Call
Slot
After

On_Accept_Position

procedure On_Accept_Position
   (Self  : not null access Gtk_Paned_Record;
    Call  : Cb_Gtk_Paned_Boolean;
    After : Boolean := False)

The ::accept-position signal is a [keybinding signal][GtkBindingSignal] which gets emitted to accept the current position of the handle when moving it using key bindings.

The default binding for this signal is Return or Space.

Parameters
Self
Call
After

On_Cancel_Position

procedure On_Cancel_Position
   (Self  : not null access Gtk_Paned_Record;
    Call  : Cb_GObject_Boolean;
    Slot  : not null access Glib.Object.GObject_Record'Class;
    After : Boolean := False)

The ::cancel-position signal is a [keybinding signal][GtkBindingSignal] which gets emitted to cancel moving the position of the handle using key bindings. The position of the handle will be reset to the value prior to moving it.

The default binding for this signal is Escape.

Parameters
Self
Call
Slot
After

On_Cancel_Position

procedure On_Cancel_Position
   (Self  : not null access Gtk_Paned_Record;
    Call  : Cb_Gtk_Paned_Boolean;
    After : Boolean := False)

The ::cancel-position signal is a [keybinding signal][GtkBindingSignal] which gets emitted to cancel moving the position of the handle using key bindings. The position of the handle will be reset to the value prior to moving it.

The default binding for this signal is Escape.

Parameters
Self
Call
After

On_Cycle_Child_Focus

procedure On_Cycle_Child_Focus
   (Self  : not null access Gtk_Paned_Record;
    Call  : Cb_GObject_Boolean_Boolean;
    Slot  : not null access Glib.Object.GObject_Record'Class;
    After : Boolean := False)

The ::cycle-child-focus signal is a [keybinding signal][GtkBindingSignal] which gets emitted to cycle the focus between the children of the paned.

The default binding is f6.

Parameters
Self
Call
Slot
After

On_Cycle_Child_Focus

procedure On_Cycle_Child_Focus
   (Self  : not null access Gtk_Paned_Record;
    Call  : Cb_Gtk_Paned_Boolean_Boolean;
    After : Boolean := False)

The ::cycle-child-focus signal is a [keybinding signal][GtkBindingSignal] which gets emitted to cycle the focus between the children of the paned.

The default binding is f6.

Parameters
Self
Call
After

On_Cycle_Handle_Focus

procedure On_Cycle_Handle_Focus
   (Self  : not null access Gtk_Paned_Record;
    Call  : Cb_GObject_Boolean_Boolean;
    Slot  : not null access Glib.Object.GObject_Record'Class;
    After : Boolean := False)

The ::cycle-handle-focus signal is a [keybinding signal][GtkBindingSignal] which gets emitted to cycle whether the paned should grab focus to allow the user to change position of the handle by using key bindings.

The default binding for this signal is f8.

Parameters
Self
Call
Slot
After

On_Cycle_Handle_Focus

procedure On_Cycle_Handle_Focus
   (Self  : not null access Gtk_Paned_Record;
    Call  : Cb_Gtk_Paned_Boolean_Boolean;
    After : Boolean := False)

The ::cycle-handle-focus signal is a [keybinding signal][GtkBindingSignal] which gets emitted to cycle whether the paned should grab focus to allow the user to change position of the handle by using key bindings.

The default binding for this signal is f8.

Parameters
Self
Call
After

On_Move_Handle

procedure On_Move_Handle
   (Self  : not null access Gtk_Paned_Record;
    Call  : Cb_GObject_Gtk_Scroll_Type_Boolean;
    Slot  : not null access Glib.Object.GObject_Record'Class;
    After : Boolean := False)

The ::move-handle signal is a [keybinding signal][GtkBindingSignal] which gets emitted to move the handle when the user is using key bindings to move it.

Parameters
Self
Call
Slot
After

On_Move_Handle

procedure On_Move_Handle
   (Self  : not null access Gtk_Paned_Record;
    Call  : Cb_Gtk_Paned_Gtk_Scroll_Type_Boolean;
    After : Boolean := False)

The ::move-handle signal is a [keybinding signal][GtkBindingSignal] which gets emitted to move the handle when the user is using key bindings to move it.

Parameters
Self
Call
After

On_Toggle_Handle_Focus

procedure On_Toggle_Handle_Focus
   (Self  : not null access Gtk_Paned_Record;
    Call  : Cb_GObject_Boolean;
    Slot  : not null access Glib.Object.GObject_Record'Class;
    After : Boolean := False)

The ::toggle-handle-focus is a [keybinding signal][GtkBindingSignal] which gets emitted to accept the current position of the handle and then move focus to the next widget in the focus chain.

The default binding is Tab.

Parameters
Self
Call
Slot
After

On_Toggle_Handle_Focus

procedure On_Toggle_Handle_Focus
   (Self  : not null access Gtk_Paned_Record;
    Call  : Cb_Gtk_Paned_Boolean;
    After : Boolean := False)

The ::toggle-handle-focus is a [keybinding signal][GtkBindingSignal] which gets emitted to accept the current position of the handle and then move focus to the next widget in the focus chain.

The default binding is Tab.

Parameters
Self
Call
After

Pack1

procedure Pack1
   (Paned  : not null access Gtk_Paned_Record;
    Child  : not null access Gtk.Widget.Gtk_Widget_Record'Class;
    Resize : Boolean := False;
    Shrink : Boolean := True)

Add a child to the top or left pane. You can not change dynamically the attributes Resize and Shrink. Instead, you have to remove the child from the container, and put it back with the new value of the attributes. You should also first call Glib.Object.Ref on the child so as to be sure it is not destroyed when you remove it, and Glib.Object.Unref it at the end. See the example in testgtk/ in the GtkAda distribution.

Parameters
Paned
Child

the child to add

Resize

should this child expand when the paned widget is resized.

Shrink

can this child be made smaller than its requisition.

Pack2

procedure Pack2
   (Paned  : not null access Gtk_Paned_Record;
    Child  : not null access Gtk.Widget.Gtk_Widget_Record'Class;
    Resize : Boolean := False;
    Shrink : Boolean := False)

Adds a child to the bottom or right pane.

Parameters
Paned
Child

the child to add

Resize

should this child expand when the paned widget is resized.

Shrink

can this child be made smaller than its requisition.

Position_Property

Position_Property : constant Glib.Properties.Property_Int;

Position_Set_Property

Position_Set_Property : constant Glib.Properties.Property_Boolean;

Set_Orientation

procedure Set_Orientation
   (Self        : not null access Gtk_Paned_Record;
    Orientation : Gtk.Enums.Gtk_Orientation)
Parameters
Self
Orientation

Set_Position

procedure Set_Position
   (Paned    : not null access Gtk_Paned_Record;
    Position : Glib.Gint)

Sets the position of the divider between the two panes.

Parameters
Paned
Position

pixel position of divider, a negative value means that the position is unset.

Set_Wide_Handle

procedure Set_Wide_Handle
   (Paned : not null access Gtk_Paned_Record;
    Wide  : Boolean)

Sets the Gtk.Paned.Gtk_Paned:wide-handle property. Since: gtk+ 3.16

Parameters
Paned
Wide

the new value for the Gtk.Paned.Gtk_Paned:wide-handle property

Signal_Accept_Position

Signal_Accept_Position : constant Glib.Signal_Name := "accept-position";

The ::accept-position signal is a [keybinding signal][GtkBindingSignal] which gets emitted to accept the current position of the handle when moving it using key bindings.

The default binding for this signal is Return or Space.

Signal_Cancel_Position

Signal_Cancel_Position : constant Glib.Signal_Name := "cancel-position";

The ::cancel-position signal is a [keybinding signal][GtkBindingSignal] which gets emitted to cancel moving the position of the handle using key bindings. The position of the handle will be reset to the value prior to moving it.

The default binding for this signal is Escape.

Signal_Cycle_Child_Focus

Signal_Cycle_Child_Focus : constant Glib.Signal_Name := "cycle-child-focus";

The ::cycle-child-focus signal is a [keybinding signal][GtkBindingSignal] which gets emitted to cycle the focus between the children of the paned.

The default binding is f6.

Signal_Cycle_Handle_Focus

Signal_Cycle_Handle_Focus : constant Glib.Signal_Name := "cycle-handle-focus";

The ::cycle-handle-focus signal is a [keybinding signal][GtkBindingSignal] which gets emitted to cycle whether the paned should grab focus to allow the user to change position of the handle by using key bindings.

The default binding for this signal is f8.

Signal_Move_Handle

Signal_Move_Handle : constant Glib.Signal_Name := "move-handle";

The ::move-handle signal is a [keybinding signal][GtkBindingSignal] which gets emitted to move the handle when the user is using key bindings to move it.

Signal_Toggle_Handle_Focus

Signal_Toggle_Handle_Focus : constant Glib.Signal_Name := "toggle-handle-focus";

The ::toggle-handle-focus is a [keybinding signal][GtkBindingSignal] which gets emitted to accept the current position of the handle and then move focus to the next widget in the focus chain.

The default binding is Tab.

Wide_Handle_Property

Wide_Handle_Property : constant Glib.Properties.Property_Boolean;

Setting this property to True indicates that the paned needs to provide stronger visual separation (e.g. because it separates between two notebooks, whose tab rows would otherwise merge visually).