## Documentation

Table of Contents
Class Inheritance Tree
Widget Screenshots
Package groups

## Index

Package: Multi_Paned

- Goto spec source

# Description

    package Gtkada.Multi_Paned is

This widget implements a multi-paned widget, similar to the standard Gtk_Paned widget, but which can contain several children side to side.

This widget can mix vertical and horizontal splits

<testgtk>create_splittable.adb</testgtk>

# Classes

### Gtkada_Multi_Paned_Record

- Goto declaration in source
- Goto full declaration in source

    type Gtkada_Multi_Paned_Record is new Gtk.Fixed.Gtk_Fixed_Record
         with private;

#### Ancestors:

Gtk.Fixed.Gtk_Fixed_Record
Gtk.Container.Gtk_Container_Record
Gtk.Widget.Gtk_Widget_Record
Glib.Object.GObject_Record

#### Primitive operations:

Add_Child

- To API doc
- To spec

Freeze

- To API doc
- To spec

Get_Pane

- To API doc
- To spec

Glib.Object.Deallocate

- To API doc
- To spec

(Inherited)
Glib.Object.Get_Type

- To API doc
- To spec

(Inherited)
Glib.Object.Notify

- To API doc
- To spec

(Inherited)
Glib.Object.Ref

- To API doc
- To spec

(Inherited)
Glib.Object.Ref_Sink

- To API doc
- To spec

(Inherited)
Glib.Object.Unref

- To API doc
- To spec

(Inherited)
Gtk.Container.Add

- To API doc
- To spec

(Inherited)
Gtk.Container.Check_Resize

- To API doc
- To spec

(Inherited)
Gtk.Container.Child_Get_Property

- To API doc
- To spec

(Inherited)
Gtk.Container.Child_Set_Property

- To API doc
- To spec

(Inherited)
Gtk.Container.Child_Type

- To API doc
- To spec

(Inherited)
Gtk.Container.Forall

- To API doc
- To spec

(Inherited)
Gtk.Container.Foreach

- To API doc
- To spec

(Inherited)
Gtk.Container.Get_Border_Width

- To API doc
- To spec

(Inherited)
Gtk.Container.Get_Children

- To API doc
- To spec

(Inherited)
Gtk.Container.Get_Focus_Chain

- To API doc
- To spec

(Inherited)
Gtk.Container.Get_Focus_Child

- To API doc
- To spec

(Inherited)
Gtk.Container.Get_Focus_Hadjustment

- To API doc
- To spec

(Inherited)
Gtk.Container.Get_Focus_Vadjustment

- To API doc
- To spec

(Inherited)
Gtk.Container.Get_Resize_Mode

- To API doc
- To spec

(Inherited)
Gtk.Container.Propagate_Expose

- To API doc
- To spec

(Inherited)
Gtk.Container.Remove

- To API doc
- To spec

(Inherited)
Gtk.Container.Resize_Children

- To API doc
- To spec

(Inherited)
Gtk.Container.Set_Border_Width

- To API doc
- To spec

(Inherited)
Gtk.Container.Set_Focus_Chain

- To API doc
- To spec

(Inherited)
Gtk.Container.Set_Focus_Child

- To API doc
- To spec

(Inherited)
Gtk.Container.Set_Focus_Hadjustment

- To API doc
- To spec

(Inherited)
Gtk.Container.Set_Focus_Vadjustment

- To API doc
- To spec

(Inherited)
Gtk.Container.Set_Reallocate_Redraws

- To API doc
- To spec

(Inherited)
Gtk.Container.Set_Resize_Mode

- To API doc
- To spec

(Inherited)
Gtk.Container.Unset_Focus_Chain

- To API doc
- To spec

(Inherited)
Gtk.Fixed.Get_Has_Window

- To API doc
- To spec

(Inherited)
Gtk.Fixed.Move

- To API doc
- To spec

(Inherited)
Gtk.Fixed.Put

- To API doc
- To spec

(Inherited)
Gtk.Fixed.Set_Has_Window

- To API doc
- To spec

(Inherited)
Gtk.Widget.Activate

- To API doc
- To spec

(Inherited)
Gtk.Widget.Add_Accelerator

- To API doc
- To spec

(Inherited)
Gtk.Widget.Add_Events

- To API doc
- To spec

(Inherited)
Gtk.Widget.Add_Mnemonic_Label

- To API doc
- To spec

(Inherited)
Gtk.Widget.Can_Activate_Accel

- To API doc
- To spec

(Inherited)
Gtk.Widget.Child_Notify

- To API doc
- To spec

(Inherited)
Gtk.Widget.Class_Path

- To API doc
- To spec

(Inherited)
Gtk.Widget.Class_Path_Reversed

- To API doc
- To spec

(Inherited)
Gtk.Widget.Create_Pango_Context

- To API doc
- To spec

(Inherited)
Gtk.Widget.Create_Pango_Layout

- To API doc
- To spec

(Inherited)
Gtk.Widget.Destroy

- To API doc
- To spec

(Inherited)
Gtk.Widget.Draw

- To API doc
- To spec

(Inherited)
Gtk.Widget.Ensure_Style

- To API doc
- To spec

(Inherited)
Gtk.Widget.Error_Bell

- To API doc
- To spec

(Inherited)
Gtk.Widget.Flag_Is_Set

- To API doc
- To spec

(Inherited)
Gtk.Widget.Flags

- To API doc
- To spec

(Inherited)
Gtk.Widget.Freeze_Child_Notify

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Allocation_Height

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Allocation_Width

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Allocation_X

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Allocation_Y

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Ancestor

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Child_Requisition

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Child_Visible

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Colormap

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Composite_Name

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Direction

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Events

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Extension_Events

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Has_Tooltip

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Name

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_No_Show_All

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Pango_Context

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Parent

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Parent_Window

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Pointer

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Root_Window

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Size_Request

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Snapshot

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_State

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Style

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Tooltip_Markup

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Tooltip_Text

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Tooltip_Window

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Toplevel

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Visual

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Window

- To API doc
- To spec

(Inherited)
Gtk.Widget.Grab_Default

- To API doc
- To spec

(Inherited)
Gtk.Widget.Grab_Focus

- To API doc
- To spec

(Inherited)
Gtk.Widget.Has_Screen

- To API doc
- To spec

(Inherited)
Gtk.Widget.Hide

- To API doc
- To spec

(Inherited)
Gtk.Widget.Hide_All

- To API doc
- To spec

(Inherited)
Gtk.Widget.Input_Shape_Combine_Mask

- To API doc
- To spec

(Inherited)
Gtk.Widget.Intersect

- To API doc
- To spec

(Inherited)
Gtk.Widget.Is_Ancestor

- To API doc
- To spec

(Inherited)
Gtk.Widget.Is_Composited

- To API doc
- To spec

(Inherited)
Gtk.Widget.Is_Focus

- To API doc
- To spec

(Inherited)
Gtk.Widget.Keynav_Failed

- To API doc
- To spec

(Inherited)
Gtk.Widget.List_Mnemonic_Labels

- To API doc
- To spec

(Inherited)
Gtk.Widget.Map

- To API doc
- To spec

(Inherited)
Gtk.Widget.Mnemonic_Activate

- To API doc
- To spec

(Inherited)
Gtk.Widget.Modify_Base

- To API doc
- To spec

(Inherited)
Gtk.Widget.Modify_Bg

- To API doc
- To spec

(Inherited)
Gtk.Widget.Modify_Cursor

- To API doc
- To spec

(Inherited)
Gtk.Widget.Modify_Fg

- To API doc
- To spec

(Inherited)
Gtk.Widget.Modify_Font

- To API doc
- To spec

(Inherited)
Gtk.Widget.Modify_Text

- To API doc
- To spec

(Inherited)
Gtk.Widget.Path

- To API doc
- To spec

(Inherited)
Gtk.Widget.Path_Reversed

- To API doc
- To spec

(Inherited)
Gtk.Widget.Queue_Clear

- To API doc
- To spec

(Inherited)
Gtk.Widget.Queue_Clear_Area

- To API doc
- To spec

(Inherited)
Gtk.Widget.Queue_Draw

- To API doc
- To spec

(Inherited)
Gtk.Widget.Queue_Draw_Area

- To API doc
- To spec

(Inherited)
Gtk.Widget.Queue_Resize

- To API doc
- To spec

(Inherited)
Gtk.Widget.Queue_Resize_No_Redraw

- To API doc
- To spec

(Inherited)
Gtk.Widget.Realize

- To API doc
- To spec

(Inherited)
Gtk.Widget.Region_Intersect

- To API doc
- To spec

(Inherited)
Gtk.Widget.Remove_Accelerator

- To API doc
- To spec

(Inherited)
Gtk.Widget.Remove_Mnemonic_Label

- To API doc
- To spec

(Inherited)
Gtk.Widget.Render_Icon

- To API doc
- To spec

(Inherited)
Gtk.Widget.Reparent

- To API doc
- To spec

(Inherited)
Gtk.Widget.Reset_Rc_Styles

- To API doc
- To spec

(Inherited)
Gtk.Widget.Reset_Shapes

- To API doc
- To spec

(Inherited)
Gtk.Widget.Restore_Default_Style

- To API doc
- To spec

(Inherited)
Gtk.Widget.Send_Expose

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Accel_Path

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_App_Paintable

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Child_Visible

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Colormap

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Composite_Name

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Direction

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Double_Buffered

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Events

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Extension_Events

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Flags

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Has_Tooltip

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Name

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_No_Show_All

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Parent

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Parent_Window

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Redraw_On_Allocate

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Scroll_Adjustments

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Sensitive

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Size_Request

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_State

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Style

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Tooltip_Markup

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Tooltip_Text

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Tooltip_Window

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_UPosition

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_USize

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Window

- To API doc
- To spec

(Inherited)
Gtk.Widget.Shape_Combine_Mask

- To API doc
- To spec

(Inherited)
Gtk.Widget.Show

- To API doc
- To spec

(Inherited)
Gtk.Widget.Show_All

- To API doc
- To spec

(Inherited)
Gtk.Widget.Show_Now

- To API doc
- To spec

(Inherited)
Gtk.Widget.Size_Allocate

- To API doc
- To spec

(Inherited)
Gtk.Widget.Size_Request

- To API doc
- To spec

(Inherited)
Gtk.Widget.Style_Get_Property

- To API doc
- To spec

(Inherited)
Gtk.Widget.Thaw_Child_Notify

- To API doc
- To spec

(Inherited)
Gtk.Widget.Trigger_Tooltip_Query

- To API doc
- To spec

(Inherited)
Gtk.Widget.Unmap

- To API doc
- To spec

(Inherited)
Gtk.Widget.Unrealize

- To API doc
- To spec

(Inherited)
Gtk.Widget.Unset_Flags

- To API doc
- To spec

(Inherited)
Set_Opaque_Resizing

- To API doc
- To spec

Set_Size

- To API doc
- To spec

Split

- To API doc
- To spec

Split

- To API doc
- To spec

Splitted_Area

- To API doc
- To spec

Start

- To API doc
- To spec

Thaw

- To API doc
- To spec

# Types

### Gtkada_Multi_Paned

- Goto declaration in source

    type Gtkada_Multi_Paned is access all Gtkada_Multi_Paned_Record'Class;

### Pane

- Goto declaration in source

    type Pane is private;

An area of the window, which can is splitted either horizontally or vertically. It can contain one or several children, next to each other, or on top of one another.

### Child_Iterator

- Goto declaration in source
- Goto full declaration in source

    type Child_Iterator is private;

# Constants & Global variables

### Handle_Width

- Goto declaration in source

    Handle_Width : constant := 6;

Width, in pixels, of the resizing handles. ??? Should be read from theme with gtk_widget_style_get (gtk_paned, "handle_size", &handle_size, NULL)

### Root_Pane

- Goto declaration in source

(Pane)

    Root_Pane : constant Pane;

The root pane. If you split this one, the newly added window will be next to all other windows. For instance, if you split vertically with the main_pane the following window, you will get: +-----+------+ +-----+------+ | 1 | | | 1 | | +-----+ 3 | => +-----+ 3 | | 2 | | | 2 | | +-----+------+ +-----+------+ | 4 | +------------+

# Subprograms & Entries

### Gtk_New

- Goto spec in source

    procedure Gtk_New (Win: out Gtkada_Multi_Paned);

### Initialize

- Goto spec in source

    procedure Initialize (Win: access Gtkada_Multi_Paned_Record'Class);

Create a new paned window.

### Set_Opaque_Resizing

- Goto spec in source

    procedure Set_Opaque_Resizing (Win: access Gtkada_Multi_Paned_Record;Opaque: Boolean);

Whether resizing of the widgets should be opaque or not. The default is not to do opaque resizing for efficiency reasons

### Add_Child

- Goto spec in source

    procedure Add_Child (Win: access Gtkada_Multi_Paned_Record;New_Child: access Gtk.Widget.Gtk_Widget_Record'Class;Orientation: Gtk.Enums.Gtk_Orientation := Gtk.Enums.Orientation_Horizontal;Fixed_Size: Boolean := False;Width, Height: Glib.Gint := -1;After: Boolean := True);

Add new child, splitting as needed. This should be used when there is no child yet The window is splitted in two by default. However, if Width and Height are specified (or left to -1 for automatic computation), the window is splitted so that amount of screen space is left to the widget (leaving some minimum amount of space to other children as needed). If Fixed_Size is true, then the size of the dock will not change when Win is resized. Otherwise, it will keep its relative size (x% of the total size of Win). This Fixed_Size setting will be reset to False as soon as the user has resized a pane with the mouse.

### Split

- Goto spec in source

    procedure Split (Win: access Gtkada_Multi_Paned_Record;Ref_Widget: access Gtk.Widget.Gtk_Widget_Record'Class;New_Child: access Gtk.Widget.Gtk_Widget_Record'Class;Orientation: Gtk.Enums.Gtk_Orientation;Fixed_Size: Boolean := False;Width, Height: Glib.Gint := -1;After: Boolean := True);

Split the pane containing Ref_Widget, and add New_Child in the new pane (on the right or at the bottom if After is True, on the left or at the top if After is False).

### Set_Size

- Goto spec in source

    procedure Set_Size (Win: access Gtkada_Multi_Paned_Record;Widget: access Gtk.Widget.Gtk_Widget_Record'Class;Width, Height: Glib.Gint := -1;Fixed_Size: Boolean := False);

Force a specific size for Widget

### Splitted_Area

- Goto spec in source

    function Splitted_Area (Win: access Gtkada_Multi_Paned_Record;Ref_Widget: access Gtk.Widget.Gtk_Widget_Record'Class;Orientation: Gtk.Enums.Gtk_Orientation;After: Boolean := True) return Gtk.Widget.Gtk_Widget;

Return the widget in the splitted area next to Ref_Widget if any exist. Orientation and After define which splitted area we are looking at. null is returned if there are no such splitted area.

### Get_Pane

- Goto spec in source

    function Get_Pane (Win: access Gtkada_Multi_Paned_Record;Widget: access Gtk.Widget.Gtk_Widget_Record'Class) return Pane;

### Get_Pane

- Goto spec in source

    function Get_Pane (Current_Pane: Pane) return Pane;

Return the pane that contains the widget. See comment for Split below.

### Split

- Goto spec in source

    procedure Split (Win: access Gtkada_Multi_Paned_Record;Ref_Pane: Pane;New_Child: access Gtk.Widget.Gtk_Widget_Record'Class;Orientation: Gtk.Enums.Gtk_Orientation;Fixed_Size: Boolean := False;Width, Height: Glib.Gint := -1;After: Boolean := True);

Split Ref_Pane to display New_Child to one of its sides. See the comments for Root_Pane above. The examples below assume that you are using one of the two split procedures, either with a Ref_Pane or a Ref_Widget. In the former case, the pane is obtained with a call to Get_Pane(Ref_Widget). As you will see, the results are different (although they might appear similar sometimes on this simple example. In all these examples, we split either vertically or horizontally, and add a new widget "4". Given the following setup: +---+---+ | 1 | | +---+ 3 | | 2 | | +---+---+ Ref_Pane = Get_Pane ("1") Ref_Widget = "1" Split vertically After=True After=False After=True After=False +---+---+ +---+---+ +---+---+ +---+---+ | 1 | 3 | | 4 | 3 | | 1 | 3 | | 4 | 3 | +---+ | +---+ | +---+ | +---+ | | 2 | | | 1 | | | 4 | | | 1 | | +---+ | +---+ | +---+ | +---+ | | 4 | | | 2 | | | 2 | | | 2 | | +---+---+ +---+---+ +---+---+ +---+---+ Split horizontally After=True After=False After=True After=False +---+---+---+ +---+---+---+ +---+---+---+ +---+---+---+ | 1 | 4 | 3 | | 4 | 1 | 3 | | 1 | 4 | 3 | | 4 | 1 | 3 | +---+ | | | +---+ | +---+---+ | +---+---+ | | 2 | | | | | 2 | | | 2 | | | 2 | | +---+---+---+ +---+---+---+ +-------+---+ +-------+---+ Ref_Pane = Get_Pane ("3") Ref_Widget = "3" Split vertically After=True After=False After=True After=False +---+---+ +-------+ +---+---+ +---+---+ | 1 | 3 | | 4 | | 1 | 3 | | 1 | 4 | +---+ | +---+---+ +---+---+ +---+---+ | 2 | | | 1 | 3 | | 2 | 4 | | 2 | 3 | +---+---+ +---+ | +---+---+ +---+---+ | 4 | | 2 | | +-------+ +---+---+ Split horizontally After=True After=False After=True After=False +---+---+---+ +---+---+---+ +---+---+---+ +---+---+---+ | 1 | 3 | 4 | | 4 | 1 | 3 | | 1 | 3 | 4 | | 1 | 4 | 3 | +---+ | | | +---+ | +---+ | | +---+ | | | 2 | | | | | 2 | | | 2 | | | | 2 | | | +---+---+---+ +---+---+---+ +---+---+---+ +---+---+---+

### Freeze

- Goto spec in source

    procedure Freeze (Win: access Gtkada_Multi_Paned_Record);

Freeze the window, ie when a child is inserted, no computation of its size is done, and will not generate immediate resizing. You only need to call this procedure when restoring Win to a previously state saved, and never if you are using the GtkAda.MDI which takes care of it on its own.

### Thaw

- Goto spec in source

    procedure Thaw (Win: access Gtkada_Multi_Paned_Record);

Opposite of Freeze. You should call Size_Allocate on Win afterward to force a recomputation of the size

### Start

- Goto spec in source

    function Start (Win: access Gtkada_Multi_Paned_Record) return Child_Iterator;

Return an iterator to the first child of the window. This also returns children which are not widget, but are used to organize the window into horizontal and vertical panes

### At_End

- Goto spec in source

    function At_End (Iter: Child_Iterator) return Boolean;

True if there is no more child to be returned

### Next

- Goto spec in source

    procedure Next (Iter: in out Child_Iterator);

Move to the next child of Iterator

### Get_Widget

- Goto spec in source

    function Get_Widget (Iter: Child_Iterator) return Gtk.Widget.Gtk_Widget;

Return the widget embedded in the current child. This returns null if the current child is only used as a pane separator (horizontal or vertical). You mustn't remove the widget from the paned widget, or the iterator becomes invalid.

### Get_Orientation

- Goto spec in source

    function Get_Orientation (Iter: Child_Iterator) return Gtk.Enums.Gtk_Orientation;

Return the orientation of the current child. This is only relevant if the child doesn't contain a widget (and therefore Get_Widget has returned null).

### Get_Depth

- Goto spec in source

    function Get_Depth (Iter: Child_Iterator) return Natural;

Return the depth of the current child (0 means the child is at the toplevel, 1 that this is a child directly underneath,...). This can be used to detect when the Iter has finished traversing one of the panes.

### Get_Size

- Goto spec in source

    procedure Get_Size (Iter: Child_Iterator;Width, Height: out Gint;Parent_Width, Parent_Height: out Gint;Parent_Orientation: out Gtk.Enums.Gtk_Orientation);

Return the size of the current element (pane or widget), as well as the parent's pane (the resizable area that contains notebooks or other panes). The parent size is the total size devoted to its children, omitting the size occupied by resize handles.

### Dump

- Goto spec in source

    procedure Dump (Split: access Gtkada_Multi_Paned_Record'Class);

Dump the configuration of Split to stdout. This is only intended for testing purposes. If you want to save and restore this configuration, you should look at Gtkada.MDI instead, which contains all the subprograms needed to handle desktops.