package Implements_Gtk_Buildable is new Glib.Types.Implements (Gtk.Buildable.Gtk_Buildable, Gtk_Handle_Box_Record, Gtk_Handle_Box);
type Gtk_Handle_Box_Record is new Gtk_Bin_Record with null record;
type Gtk_Handle_Box is access all Gtk_Handle_Box_Record'Class;
type Cb_Gtk_Handle_Box_Gtk_Widget_Void is not null access procedure (Self : access Gtk_Handle_Box_Record'Class; Widget : not null access Gtk.Widget.Gtk_Widget_Record'Class);
type Cb_GObject_Gtk_Widget_Void is not null access procedure (Self : access Glib.Object.GObject_Record'Class; Widget : not null access Gtk.Widget.Gtk_Widget_Record'Class);
Child_Detached_Property : constant Glib.Properties.Property_Boolean;
Handle_Position_Property : constant Gtk.Enums.Property_Gtk_Position_Type;
Shadow_Type_Property : constant Gtk.Enums.Property_Gtk_Shadow_Type;
Snap_Edge_Property : constant Gtk.Enums.Property_Gtk_Position_Type;
Snap_Edge_Set_Property : constant Glib.Properties.Property_Boolean;
Signal_Child_Attached : constant Glib.Signal_Name := "child-attached";
Signal_Child_Detached : constant Glib.Signal_Name := "child-detached";
procedure Gtk_New
( | Handle_Box | : out Gtk_Handle_Box); |
procedure Initialize
( | Handle_Box | : not null access Gtk_Handle_Box_Record'Class); |
function Get_Type return Glib.GType;
function Get_Child_Detached
( | Handle_Box | : not null access Gtk_Handle_Box_Record) return Boolean; |
function Get_Handle_Position
( | Handle_Box | : not null access Gtk_Handle_Box_Record) return Gtk.Enums.Gtk_Position_Type; |
procedure Set_Handle_Position
( | Handle_Box | : not null access Gtk_Handle_Box_Record; |
Position | : Gtk.Enums.Gtk_Position_Type); |
function Get_Shadow_Type
( | Handle_Box | : not null access Gtk_Handle_Box_Record) return Gtk.Enums.Gtk_Shadow_Type; |
procedure Set_Shadow_Type
( | Handle_Box | : not null access Gtk_Handle_Box_Record; |
The_Type | : Gtk.Enums.Gtk_Shadow_Type); |
function Get_Snap_Edge
( | Handle_Box | : not null access Gtk_Handle_Box_Record) return Gtk.Enums.Gtk_Position_Type; |
procedure Set_Snap_Edge
( | Handle_Box | : not null access Gtk_Handle_Box_Record; |
Edge | : Gtk.Enums.Gtk_Position_Type); |
procedure On_Child_Attached
( | Self | : not null access Gtk_Handle_Box_Record; |
Call | : Cb_Gtk_Handle_Box_Gtk_Widget_Void; | |
After | : Boolean := False); |
procedure On_Child_Attached
( | Self | : not null access Gtk_Handle_Box_Record; |
Call | : Cb_GObject_Gtk_Widget_Void; | |
Slot | : not null access Glib.Object.GObject_Record'Class; | |
After | : Boolean := False); |
procedure On_Child_Detached
( | Self | : not null access Gtk_Handle_Box_Record; |
Call | : Cb_Gtk_Handle_Box_Gtk_Widget_Void; | |
After | : Boolean := False); |
procedure On_Child_Detached
( | Self | : not null access Gtk_Handle_Box_Record; |
Call | : Cb_GObject_Gtk_Widget_Void; | |
Slot | : not null access Glib.Object.GObject_Record'Class; | |
After | : Boolean := False); |
function "+"
( | Widget | : access Gtk_Handle_Box_Record'Class) return Gtk.Buildable.Gtk_Buildable renames Implements_Gtk_Buildable.To_Interface; |
function "-"
( | Interf | : Gtk.Buildable.Gtk_Buildable) return Gtk_Handle_Box renames Implements_Gtk_Buildable.To_Object; |
The Gtk.Handle_Box.Gtk_Handle_Box widget allows a portion of a window to be "torn off". It is a bin widget which displays its child and a handle that the user can drag to tear off a separate window (the 'float window') containing the child widget. A thin 'ghost' is drawn in the original location of the handlebox. By dragging the separate window back to its original location, it can be reattached.
When reattaching, the ghost and float window, must be aligned along one of the edges, the 'snap edge'. This either can be specified by the application programmer explicitely, or GTK+ will pick a reasonable default based on the handle position.
To make detaching and reattaching the handlebox as minimally confusing as possible to the user, it is important to set the snap edge so that the snap edge does not move when the handlebox is deattached. For instance, if the handlebox is packed at the bottom of a VBox, then when the handlebox is detached, the bottom edge of the handlebox's allocation will remain fixed as the height of the handlebox shrinks, so the snap edge should be set to Gtk.Enums.Pos_Bottom.
Note: Gtk.Handle_Box.Gtk_Handle_Box has been deprecated. It is very specialized, lacks features to make it useful and most importantly does not fit well into modern application design. Do not use it. There is no replacement.