1 2 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; |