| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 
 |    procedure Run (Tree_View : access Gtk.Tree_View.Gtk_Tree_View_Record'Class) is
      Model    : Gtk_Tree_Store;
 
 
      Col      : Gtk_Tree_View_Column;
      Num      : Gint;
      Text_Render   : Gtk_Cell_Renderer_Text;
      Toggle_Render : Gtk_Cell_Renderer_Toggle;
      Parent, Iter  : Gtk_Tree_Iter;
      pragma Unreferenced (Num);
      pragma Warnings (Off, Iter);
 
 
      Result : Result_Access;
 
      Search_Result : Posix_Interface.Search_Result_Type;
      Spawn_Result  : Posix_Interface.Spawn_Result_Type;
   begin
 
      Gtk_New (Model,
               (0       => GType_String,
                1       => GType_String));
 
      initialize (Tree_View, Model);
      Set_Grid_Lines (Tree_View, Grid_Lines_Vertical);
      Set_Enable_Tree_Lines (Tree_View, True);
      Set_Rubber_Banding (Tree_View, True);
      Set_Mode (Get_Selection (Tree_View), Selection_Multiple);
 
      Gtk_New (Text_Render);
      Gtk_New (Col);
      Num := Append_Column (Tree_View, Col);
      Set_Sort_Column_Id (Col, 0);
      Set_Title (Col, "Name");
      Pack_Start (Col, Text_Render, True);
      Set_Sizing (Col, Tree_View_Column_Autosize);
      Add_Attribute (Col, Text_Render, "text", 0);
 
      Gtk_New (Col);
      Set_Sort_Column_Id (Col, -1);  --  unsortable                             
      Num := Append_Column (Tree_View, Col);
      Set_Title (Col, "Value");
      Pack_Start (Col, Text_Render, False);
      Add_Attribute (Col, Text_Render, "text", 1);
 
 
      Set_Headers_Clickable (Tree_View, True);
      Set_Sort_Func (+Model, 0, Custom_Sort'Access);
 
      Shell.Arch_Shell.Respond(EnvironmentParameters, "");
      Shell.Arch_Shell.Response(Archman_Shell_Response);
      Shell.To_Result(Archman_Shell_Response(EnvironmentParameters).all, Result);
 
      for I in Result.File_Content'Range loop
 
         declare
            Environment_Variable : constant string := (-Result.File_Content(I));
         begin
            Parent := Null_Iter;
            Iter := Add_Line
              (Model,
               Name => Environment_Variable(Positive'First..Fixed.Index(Environment_Variable, "=")-1),
               Value => Environment_Variable(Fixed.Index(Environment_Variable, "=")+1..Environment_Variable'last));
            Parent := Iter;
         end;
      end loop;
   end Run; | 
Partager