Creation, insertion, deletion
  Elements inside a 
Gtk_Ctree are not ordered from the top to the bottom
as is the case for Gtk_Clist. Instead, they are put in the ctree by
indicating where in the tree they should be placed. The position of an
element (called a node) is defined by a parent node and a sibling node.
The node will be attached in the parent subtree, on top of the sibling
node.
- 
procedure Gtk_New (Widget      :    out Gtk_Ctree;
                   Columns     : in     Gint;
                   Tree_Column : in     Gint := 0); 
- 
procedure Initialize (Widget      : access Gtk_Ctree_Record'Class;
                      Columns     : in     Gint;
                      Tree_Column : in     Gint := 0); 
- 
procedure Gtk_New (Widget      :    out Gtk_Ctree;
                   Titles      : in     Chars_Ptr_Array;
                   Tree_Column : in     Gint := 0); 
- 
procedure Initialize (Widget      : access Gtk_Ctree_Record'Class;
                      Titles      : in     Chars_Ptr_Array;
                      Tree_Column : in     Gint := 0); 
- 
- 
- 
procedure Remove_Node (Ctree : access Gtk_Ctree_Record;
                       Node  : in     Gtk_Ctree_Node); 
Tree, Node and Row basic manipulation
  
     - 
- 
function Get_Node_List
  (Ctree : access Gtk_Ctree_Record) return Node_List.Glist; 
- 
function Get_Row_List
  (Ctree : access Gtk_Ctree_Record) return Row_List.Glist; 
- 
function Get_Selection
  (Ctree : access Gtk_Ctree_Record) return Node_List.Glist; 
- 
function Node_Get_Row (Node : in Gtk_Ctree_Node) return Gtk_Ctree_Row; 
- 
function Row_Get_Children (Row : in Gtk_Ctree_Row) return Gtk_Ctree_Node; 
- 
function Row_Get_Expanded (Row : in Gtk_Ctree_Row) return Boolean; 
- 
function Row_Get_Is_Leaf (Row : in Gtk_Ctree_Row) return Boolean; 
- 
function Row_Get_Parent (Row : in Gtk_Ctree_Row) return Gtk_Ctree_Node; 
- 
function Row_Get_Sibling (Row : in Gtk_Ctree_Row) return Gtk_Ctree_Node; 
- 
function Is_Created (Node : in Gtk_Ctree_Node) return Boolean; 
Querying / finding tree information
  
     - 
function Is_Viewable
  (Ctree  : access Gtk_Ctree_Record;
   Node   : in     Gtk_Ctree_Node)
   return Boolean; 
- 
function Last
  (Ctree  : access Gtk_Ctree_Record;
   Node   : in     Gtk_Ctree_Node)
   return Gtk_Ctree_Node; 
- 
function Find_Node_Ptr
  (Ctree     : access Gtk_Ctree_Record;
   Ctree_Row : in     Gtk_Ctree_Row)
   return Gtk_Ctree_Node; 
- 
function Node_Nth (Ctree  : access Gtk_Ctree_Record;
                   Row    : in     Guint)
                   return          Gtk_Ctree_Node; 
- 
function Find (Ctree : access Gtk_Ctree_Record;
               Node  : in     Gtk_Ctree_Node;
               Child : in     Gtk_Ctree_Node) return Boolean; 
- 
function Is_Ancestor
  (Ctree  : access Gtk_Ctree_Record;
   Node   : in     Gtk_Ctree_Node;
   Child  : in     Gtk_Ctree_Node) return Boolean; 
- 
function Is_Hot_Spot
  (Ctree  : access Gtk_Ctree_Record;
   X      : in     Gint;
   Y      : in     Gint) return Boolean; 
Tree signals: move, expand, collapse, (un)select
  
     - 
procedure Move (Ctree       : access Gtk_Ctree_Record;
                Node        : in     Gtk_Ctree_Node;
                New_Parent  : in     Gtk_Ctree_Node;
                New_Sibling : in     Gtk_Ctree_Node); 
- 
procedure Expand (Ctree : access Gtk_Ctree_Record;
                  Node  : in     Gtk_Ctree_Node); 
- 
procedure Expand_Recursive
  (Ctree : access Gtk_Ctree_Record;
   Node  : in     Gtk_Ctree_Node := null); 
- 
procedure Expand_To_Depth
  (Ctree : access Gtk_Ctree_Record;
   Node  : in     Gtk_Ctree_Node := null;
   Depth : in     Gint); 
- 
procedure Collapse (Ctree : access Gtk_Ctree_Record;
                    Node  : in     Gtk_Ctree_Node); 
- 
procedure Collapse_Recursive
  (Ctree : access Gtk_Ctree_Record;
   Node  : in     Gtk_Ctree_Node := null); 
- 
procedure Collapse_To_Depth
  (Ctree : access Gtk_Ctree_Record;
   Node  : in     Gtk_Ctree_Node := null;
   Depth : in     Gint); 
- 
procedure Toggle_Expansion (Ctree : access Gtk_Ctree_Record;
                            Node  : in     Gtk_Ctree_Node); 
- 
procedure Toggle_Expansion_Recursive (Ctree : access Gtk_Ctree_Record;
                                      Node  : in     Gtk_Ctree_Node); 
- 
procedure Gtk_Select (Ctree : access  Gtk_Ctree_Record;
                      Node  : in      Gtk_Ctree_Node); 
- 
procedure Select_Recursive
  (Ctree : access Gtk_Ctree_Record;
   Node  : in     Gtk_Ctree_Node := null); 
- 
procedure Unselect (Ctree : access Gtk_Ctree_Record;
                    Node  : in     Gtk_Ctree_Node); 
- 
procedure Unselect_Recursive
  (Ctree : access Gtk_Ctree_Record;
   Node  : in     Gtk_Ctree_Node := null); 
- 
procedure Real_Select_Recursive (Ctree     : access Gtk_Ctree_Record;
                                 Node      : in     Gtk_Ctree_Node := null;
                                 Do_Select : in     Boolean); 
Analogs of Gtk_Clist functions
  
     - 
procedure Node_Set_Text (Ctree  : access Gtk_Ctree_Record;
                         Node   : in     Gtk_Ctree_Node;
                         Column : in     Gint;
                         Text   : in     UTF8_String); 
- 
function Node_Get_Text (Ctree   : access Gtk_Ctree_Record;
                        Node    : in     Gtk_Ctree_Node;
                        Column  : in     Gint) return UTF8_String; 
- 
- 
- 
procedure Node_Set_Pixtext (Ctree   :  access Gtk_Ctree_Record;
                            Node    :  in     Gtk_Ctree_Node;
                            Column  :  in     Gint;
                            Text    :  in     UTF8_String;
                            Spacing :  in     Guint8;
                            Pixmap  :  in     Gdk.Pixmap.Gdk_Pixmap;
                            Mask    :  in     Gdk.Bitmap.Gdk_Bitmap); 
 
- 
procedure Node_Get_Pixtext (Ctree   :  access Gtk_Ctree_Record;
                            Node    :  in     Gtk_Ctree_Node;
                            Column  :  in     Gint;
                            Text    :     out Interfaces.C.Strings.chars_ptr;
                            Spacing :     out Guint8;
                            Pixmap  :     out Gdk.Pixmap.Gdk_Pixmap;
                            Mask    :     out Gdk.Bitmap.Gdk_Bitmap;
                            Success :     out Boolean); 
 
- 
procedure Node_Set_Shift (Ctree      : access Gtk_Ctree_Record;
                          Node       : in     Gtk_Ctree_Node;
                          Column     : in     Gint;
                          Vertical   : in     Gint;
                          Horizontal : in     Gint); 
- 
- 
- 
procedure Node_Set_Selectable (Ctree      : access Gtk_Ctree_Record;
                               Node       : in     Gtk_Ctree_Node;
                               Selectable : in     Boolean := True); 
- 
function Node_Get_Selectable (Ctree  : access Gtk_Ctree_Record;
                              Node   : in     Gtk_Ctree_Node)
                              return          Boolean; 
- 
procedure Node_Set_Row_Style (Ctree :  access Gtk_Ctree_Record;
                              Node  :  in     Gtk_Ctree_Node;
                              Style :  in     Gtk.Style.Gtk_Style); 
 
- 
function Node_Get_Row_Style (Ctree  :  access Gtk_Ctree_Record;
                             Node   :  in     Gtk_Ctree_Node)
                              return          Gtk.Style.Gtk_Style; 
 
- 
procedure Node_Set_Cell_Style (Ctree  :  access Gtk_Ctree_Record;
                               Node   :  in     Gtk_Ctree_Node;
                               Column :  in     Gint;
                               Style  :  in     Gtk.Style.Gtk_Style); 
 
- 
function Node_Get_Cell_Style (Ctree  :  access Gtk_Ctree_Record;
                              Node   :  in     Gtk_Ctree_Node;
                              Column :  in     Gint)
                               return          Gtk.Style.Gtk_Style; 
 
- 
procedure Node_Set_Foreground (Ctree :  access Gtk_Ctree_Record;
                               Node  :  in     Gtk_Ctree_Node;
                               Color :  in     Gdk.Color.Gdk_Color); 
 
- 
procedure Node_Set_Background (Ctree :  access Gtk_Ctree_Record;
                               Node  :  in     Gtk_Ctree_Node;
                               Color :  in     Gdk.Color.Gdk_Color); 
 
- 
function Node_Get_Cell_Type (Ctree  :  access Gtk_Ctree_Record;
                             Node   :  in     Gtk_Ctree_Node;
                             Column :  in     Gint)
                              return Gtk.Clist.Gtk_Cell_Type; 
 
- 
procedure Node_Moveto (Ctree     : access Gtk_Ctree_Record;
                       Node      : in     Gtk_Ctree_Node;
                       Column    : in     Gint;
                       Row_Align : in     Gfloat := 0.5;
                       Col_Align : in     Gfloat := 0.5); 
- 
function Node_Is_Visible
  (Ctree  : access Gtk_Ctree_Record;
   Node   : in     Gtk_Ctree_Node)
   return Gtk_Visibility; 
Ctree specific functions
  
     - 
procedure Set_Indent (Ctree  : access Gtk_Ctree_Record;
                      Indent : in     Gint := 20); 
- 
- 
procedure Set_Spacing (Ctree   : access Gtk_Ctree_Record;
                       Spacing : in     Gint := 5); 
- 
- 
procedure Set_Show_Stub (Ctree     : access Gtk_Ctree_Record;
                         Show_Stub : in     Boolean); 
- 
function Get_Show_Stub (Ctree : access Gtk_Ctree_Record) return Boolean; 
- 
procedure Set_Line_Style
  (Ctree      : access Gtk_Ctree_Record;
   Line_Style : in     Gtk_Ctree_Line_Style := Ctree_Lines_Solid); 
- 
function Get_Line_Style
  (Ctree : access Gtk_Ctree_Record) return Gtk_Ctree_Line_Style; 
- 
procedure Set_Expander_Style
  (Ctree          : access Gtk_Ctree_Record;
   Expander_Style : in     Gtk_Ctree_Expander_Style :=
     Ctree_Expander_Square); 
- 
function Get_Expander_Style
  (Ctree : access Gtk_Ctree_Record) return Gtk_Ctree_Expander_Style; 
- 
procedure Set_Drag_Compare_Func
  (Ctree    : access Gtk_Ctree_Record;
   Cmp_Func : in     Gtk_Ctree_Compare_Drag_Func); 
Tree sorting functions
  
     - 
procedure Sort_Node (Ctree : access Gtk_Ctree_Record;
                     Node  : in     Gtk_Ctree_Node); 
- 
procedure Sort_Recursive (Ctree : access Gtk_Ctree_Record;
                          Node  : in     Gtk_Ctree_Node := null); 
Row_Data handling
  
     - 
procedure Node_Set_Row_Data (Ctree : access Gtk_Ctree_Record'Class;
                             Node  : in     Gtk_Ctree_Node;
                             Data  : in     Data_Type); 
- 
function Node_Get_Row_Data
  (Ctree : access Gtk_Ctree_Record'Class;
   Node  : in     Gtk_Ctree_Node)
   return Data_Type; 
- 
function Find_By_Row_Data
  (Ctree : access Gtk_Ctree_Record'Class;
   Node  : in     Gtk_Ctree_Node;
   Data  : in     Data_Type)
   return Gtk_Ctree_Node; 
- 
function Find_All_By_Row_Data
  (Ctree : access Gtk_Ctree_Record'Class;
   Node  : in     Gtk_Ctree_Node;
   Data  : in     Data_Type)
   return Node_List.Glist; 
- 
function Find_By_Row_Data_Custom
  (Ctree : access Gtk_Ctree_Record'Class;
   Node  : in     Gtk_Ctree_Node;
   Data  : in     Data_Type;
   Func  : in     Gcompare_Func)
   return Gtk_Ctree_Node; 
- 
function Find_All_By_Row_Data_Custom
  (Ctree : access Gtk_Ctree_Record'Class;
   Node  : in     Gtk_Ctree_Node;
   Data  : in     Data_Type;
   Func  : in     Gcompare_Func) return Node_List.Glist; 
- 
procedure Post_Recursive (Ctree : access Gtk_Ctree_Record'Class;
                          Node  : in     Gtk_Ctree_Node;
                          Func  : in     Gtk_Ctree_Func;
                          Data  : in     Data_Type_Access); 
- 
procedure Post_Recursive_To_Depth (Ctree : access Gtk_Ctree_Record'Class;
                                   Node  : in     Gtk_Ctree_Node;
                                   Depth : in     Gint;
                                   Func  : in     Gtk_Ctree_Func;
                                   Data  : in     Data_Type_Access); 
- 
procedure Pre_Recursive (Ctree : access Gtk_Ctree_Record'Class;
                         Node  : in     Gtk_Ctree_Node;
                         Func  : in     Gtk_Ctree_Func;
                         Data  : in     Data_Type_Access); 
- 
procedure Pre_Recursive_To_Depth (Ctree : access Gtk_Ctree_Record'Class;
                                  Node  : in     Gtk_Ctree_Node;
                                  Depth : in     Gint;
                                  Func  : in     Gtk_Ctree_Func;
                                  Data  : in     Data_Type_Access);