Description
This widget organizes its children into resizable panes. Within each
pane, multiple children can be put, and they will be accessible through
a notebook.
Types
-
type Child_Flags is mod 2 ** 5;
-
type Child_Group is new Positive;
-
type Child_Iterator is private;
-
type Child_Position is
(Position_Automatic,
Position_Bottom,
Position_Top,
Position_Left,
Position_Right);
-
type Load_Desktop_Function is access function
(MDI : MDI_Window; Node : Glib.Xml_Int.Node_Ptr; User : User_Data)
return MDI_Child;
-
type MDI_Child is access all MDI_Child_Record'Class;
-
type MDI_Child_Array is array (Natural range <>) of MDI_Child;
-
-
type MDI_Window is access all MDI_Window_Record'Class;
-
-
type Register_Node is access Register_Node_Record;
-
type Register_Node_Record is record
Save : Save_Desktop_Function;
-
type Save_Desktop_Function
is access function
(Widget :
access Gtk.Widget.Gtk_Widget_Record'Class;
User : User_Data)
return Glib.Xml_Int.Node_Ptr;
-
type Show_Tabs_Policy_Enum is (Always, Never, Automatic);
-
type Side_Position is Child_Position
range Position_Bottom .. Position_Right;
-
type State_Type is (Normal, Floating);
Subprograms
-
-
-
-
procedure Configure
(MDI :
access MDI_Window_Record;
Opaque_Resize : Boolean := False;
Close_Floating_Is_Unfloat : Boolean := True;
Title_Font :
Pango.Font.Pango_Font_Description :=
null;
Background_Color : Gdk.Color.Gdk_Color := Gdk.Color.Null_Color;
Title_Bar_Color : Gdk.Color.Gdk_Color := Gdk.Color.Null_Color;
Focus_Title_Color : Gdk.Color.Gdk_Color := Gdk.Color.Null_Color;
Draw_Title_Bars : Boolean := True;
Tabs_Position : Gtk.Enums.Gtk_Position_Type := Gtk.Enums.Pos_Bottom;
Show_Tabs_Policy : Show_Tabs_Policy_Enum := Automatic);
Windows
-
-
-
procedure Put
(MDI : access MDI_Window_Record;
Child : access MDI_Child_Record'Class;
Initial_Position : Child_Position := Position_Automatic);
-
procedure Set_Size
(MDI : access MDI_Window_Record;
Child : access MDI_Child_Record'Class;
Width : Glib.Gint;
Height : Glib.Gint;
Fixed_Size : Boolean := False);
-
-
procedure Set_Title
(Child : access MDI_Child_Record;
Title : UTF8_String;
Short_Title : UTF8_String := "");
-
function Get_Title (Child : access MDI_Child_Record) return UTF8_String;
-
function Get_Short_Title
(Child : access MDI_Child_Record) return UTF8_String;
-
function Get_State (Child : access MDI_Child_Record) return State_Type;
-
-
Drag and Drop support
-
function Dnd_Data
(Child : access MDI_Child_Record; Copy : Boolean) return MDI_Child;
-
procedure Child_Drag_Begin
(Child :
access MDI_Child_Record'Class;
Event :
Gdk.Event.Gdk_Event);
-
procedure Cancel_Child_Drag (Child : access MDI_Child_Record'Class);
-
procedure Child_Drag_Finished (Child : access MDI_Child_Record);
Menus
-
function Create_Menu
(MDI :
access MDI_Window_Record;
Accel_Path_Prefix : String := "
") return Gtk.Menu.Gtk_Menu;
Selecting children
-
procedure Highlight_Child
(Child : access MDI_Child_Record; Highlight : Boolean := True);
-
function Get_Focus_Child
(MDI : access MDI_Window_Record) return MDI_Child;
-
-
procedure Set_Focus_Child (Child : access MDI_Child_Record);
-
procedure Check_Interactive_Selection_Dialog
(MDI :
access MDI_Window_Record;
Event :
Gdk.Event.Gdk_Event;
Move_To_Next : Boolean;
Only_Group : Child_Group := Group_Any);
MDI_Child and encapsulated children
-
-
-
-
function Find_MDI_Child_By_Tag
(MDI : access MDI_Window_Record;
Tag : Ada.Tags.Tag) return MDI_Child;
-
function Find_MDI_Child_By_Name
(MDI : access MDI_Window_Record;
Name : String) return MDI_Child;
-
function First_Child
(MDI : access MDI_Window_Record;
Group_By_Notebook : Boolean := False) return Child_Iterator;
-
procedure Next (Iterator : in out Child_Iterator);
-
-
function Get (Iterator : Child_Iterator) return MDI_Child;
Floating and closing children
-
procedure Float_Child
(Child : access MDI_Child_Record'Class; Float : Boolean);
-
function Is_Floating
(Child : access MDI_Child_Record'Class) return Boolean;
-
procedure Close_Child
(Child : access MDI_Child_Record'Class;
Force : Boolean := False);
-
procedure Set_All_Floating_Mode
(MDI : access MDI_Window_Record; All_Floating : Boolean);
Reorganizing children
-
procedure Raise_Child
(Child : access MDI_Child_Record'Class; Give_Focus : Boolean := True);
-
function Is_Raised (Child : access MDI_Child_Record'Class) return Boolean;
-
procedure Lower_Child (Child : access MDI_Child_Record'Class);
-
procedure Split
(MDI :
access MDI_Window_Record;
Orientation :
Gtk.Enums.Gtk_Orientation;
Reuse_If_Possible : Boolean := False;
After : Boolean := False;
Width, Height : Glib.Gint := 0);
Desktop Handling
The MDI provides a way to save desktops, i.e the list of children
currently open in the MDI and their location. It can then restore the
desktop at some later point.
-
procedure Register_Desktop_Functions
(Save : Save_Desktop_Function;
Load : Load_Desktop_Function);
-
function Restore_Desktop
(MDI : access MDI_Window_Record'Class;
From_Tree : Glib.Xml_Int.Node_Ptr;
User : User_Data) return Boolean;
-
function Save_Desktop
(MDI : access MDI_Window_Record'Class;
User : User_Data) return Glib.Xml_Int.Node_Ptr;
-
procedure Free_Registered_Desktop_Functions;
-
function Desktop_Was_Loaded (MDI : access MDI_Window_Record) return Boolean;
As for Save_Desktop_Function, this function should return null if it doesn't know how to handle Node or if Node doesn't describe a widget type that it can handle.
This function returns an MDI_Widget that has been put in the MDI.