with Gtk; use Gtk; with Gtk.Main; use Gtk.Main; with Glib.Error; use Glib.Error; with Ada.Text_IO; with graphical_editor.user_message; use graphical_editor.user_message; with Glib; use Glib; with Glib.Object; use Glib.Object; with Translate; use Translate; with Tasks; use Tasks; with Task_Set; use Task_Set; use Task_Set.Generic_Task_Set; with Framework_Config; use Framework_Config; with Gtk.Combo_Box; use Gtk.Combo_Box; with Buffers; use Buffers; with Buffer_Set; use Buffer_Set; use Buffer_Set.Generic_Buffer_Set; with Messages; use Messages; with Message_set; use Message_set; with Resources; use Resources; with Resource_set; use Resource_set; package body graphical_editor.dependencies is procedure show_dependencies_widget is Builder : Gtkada_Builder; Error : Glib.Error.GError; my_combo_task_sink, my_combo_task_source, my_combo_buffer_task, my_combo_queing_buffer, my_combo_communication_task, my_combo_communication_message, my_combo_task_triggered_sink, my_combo_task_triggered_source, my_combo_dependencies_resource, my_combo_task_resource, my_combo_bb_task, my_combo_bb_buffer: GObject; My_Task_Iterator : Tasks_Iterator; My_Buffer_Iterator : Buffers_Iterator; My_Message_Iterator : Messages_Iterator; My_Resource_Iterator : Resources_Iterator; A_Task : Generic_Task_Ptr; A_Buffer : Buffer_Ptr; A_Message : Generic_Message_Ptr; A_Resource : Generic_Resource_Ptr; begin Gtk.Main.Init; Gtk_New (Builder); Error := Add_From_File (Builder, to_string(Glade_path) & "dependencies.glade"); if Error /= null then Ada.Text_IO.Put_Line ("Error : " & Get_Message (Error)); Error_Free (Error); return; end if; my_combo_task_sink := Get_Object(Builder, "combobox2"); reset_iterator (sys.Tasks, My_Task_Iterator); if not is_empty (sys.Tasks) then loop current_element (sys.Tasks, A_Task, My_Task_Iterator); Append_Text (Gtk_Combo_Box(my_combo_task_sink), To_String(A_Task.name)); exit when is_last_element (sys.Tasks, My_Task_Iterator); next_element (sys.Tasks, My_Task_Iterator); end loop; else Show_Message_Box (Lb_Define_Tasks_Before (Current_Language)); end if; my_combo_task_source := Get_Object(Builder, "combobox3"); reset_iterator (sys.Tasks, My_Task_Iterator); if not is_empty (sys.Tasks) then loop current_element (sys.Tasks, A_Task, My_Task_Iterator); Append_Text (Gtk_Combo_Box(my_combo_task_source), To_String(A_Task.name)); exit when is_last_element (sys.Tasks, My_Task_Iterator); next_element (sys.Tasks, My_Task_Iterator); end loop; else Show_Message_Box (Lb_Define_Tasks_Before (Current_Language)); end if; my_combo_buffer_task := Get_Object(Builder, "combobox4"); reset_iterator (sys.Tasks, My_Task_Iterator); if not is_empty (sys.Tasks) then loop current_element (sys.Tasks, A_Task, My_Task_Iterator); Append_Text (Gtk_Combo_Box(my_combo_buffer_task), To_String(A_Task.name)); exit when is_last_element (sys.Tasks, My_Task_Iterator); next_element (sys.Tasks, My_Task_Iterator); end loop; else Show_Message_Box (Lb_Define_Tasks_Before (Current_Language)); end if; my_combo_queing_buffer := Get_Object(Builder, "combobox6"); reset_iterator (sys.Buffers, My_Buffer_Iterator); if not is_empty (sys.Buffers) then loop current_element (sys.Buffers, A_Buffer, My_Buffer_Iterator); Append_Text (Gtk_Combo_Box(my_combo_queing_buffer), To_String(A_Buffer.name)); exit when is_last_element (sys.Buffers, My_Buffer_Iterator); next_element (sys.Buffers, My_Buffer_Iterator); end loop; else Show_Message_Box (Lb_Define_Buffers_Before (Current_Language)); end if; my_combo_communication_task := Get_Object(Builder, "combobox7"); reset_iterator (sys.Tasks, My_Task_Iterator); if not is_empty (sys.Tasks) then loop current_element (sys.Tasks, A_Task, My_Task_Iterator); Append_Text (Gtk_Combo_Box(my_combo_communication_task), To_String(A_Task.name)); exit when is_last_element (sys.Tasks, My_Task_Iterator); next_element (sys.Tasks, My_Task_Iterator); end loop; else Show_Message_Box (Lb_Define_Tasks_Before (Current_Language)); end if; my_combo_communication_message := Get_Object(Builder, "combobox9"); reset_iterator (sys.Messages, My_Message_Iterator); if not is_empty (sys.Messages) then loop current_element (sys.Messages, A_Message, My_Message_Iterator); Append_Text (Gtk_Combo_Box(my_combo_communication_message), To_String(A_Message.name)); exit when is_last_element (sys.Messages, My_Message_Iterator); next_element (sys.Messages, My_Message_Iterator); end loop; else Show_Message_Box (Lb_Define_Messages_Before (Current_Language)); end if; my_combo_task_triggered_sink := Get_Object(Builder, "combobox10"); reset_iterator (sys.Tasks, My_Task_Iterator); if not is_empty (sys.Tasks) then loop current_element (sys.Tasks, A_Task, My_Task_Iterator); Append_Text (Gtk_Combo_Box(my_combo_task_triggered_sink), To_String(A_Task.name)); exit when is_last_element (sys.Tasks, My_Task_Iterator); next_element (sys.Tasks, My_Task_Iterator); end loop; else Show_Message_Box (Lb_Define_Tasks_Before (Current_Language)); end if; my_combo_task_triggered_source := Get_Object(Builder, "combobox11"); reset_iterator (sys.Tasks, My_Task_Iterator); if not is_empty (sys.Tasks) then loop current_element (sys.Tasks, A_Task, My_Task_Iterator); Append_Text (Gtk_Combo_Box(my_combo_task_triggered_source), To_String(A_Task.name)); exit when is_last_element (sys.Tasks, My_Task_Iterator); next_element (sys.Tasks, My_Task_Iterator); end loop; else Show_Message_Box (Lb_Define_Tasks_Before (Current_Language)); end if; my_combo_dependencies_resource := Get_Object(Builder, "combobox13"); reset_iterator (sys.Resources, My_Resource_Iterator); if not is_empty (sys.Resources) then loop current_element (sys.Resources, A_Resource, My_Resource_Iterator); Append_Text (Gtk_Combo_Box(my_combo_dependencies_resource), To_String(A_Resource.name)); exit when is_last_element (sys.Resources, My_Resource_Iterator); next_element (sys.Resources, My_Resource_Iterator); end loop; else Show_Message_Box (Lb_Define_Resources_Before (Current_Language)); end if; my_combo_task_resource := Get_Object(Builder, "combobox14"); reset_iterator (sys.Tasks, My_Task_Iterator); if not is_empty (sys.Tasks) then loop current_element (sys.Tasks, A_Task, My_Task_Iterator); Append_Text (Gtk_Combo_Box(my_combo_task_resource), To_String(A_Task.name)); exit when is_last_element (sys.Tasks, My_Task_Iterator); next_element (sys.Tasks, My_Task_Iterator); end loop; else Show_Message_Box (Lb_Define_Tasks_Before (Current_Language)); end if; my_combo_bb_task := Get_Object(Builder, "combobox15"); reset_iterator (sys.Tasks, My_Task_Iterator); if not is_empty (sys.Tasks) then loop current_element (sys.Tasks, A_Task, My_Task_Iterator); Append_Text (Gtk_Combo_Box(my_combo_bb_task), To_String(A_Task.name)); exit when is_last_element (sys.Tasks, My_Task_Iterator); next_element (sys.Tasks, My_Task_Iterator); end loop; else Show_Message_Box (Lb_Define_Tasks_Before (Current_Language)); end if; my_combo_bb_buffer := Get_Object(Builder, "combobox17"); reset_iterator (sys.Buffers, My_Buffer_Iterator); if not is_empty (sys.Buffers) then loop current_element (sys.Buffers, A_Buffer, My_Buffer_Iterator); Append_Text (Gtk_Combo_Box(my_combo_bb_buffer), To_String(A_Buffer.name)); exit when is_last_element (sys.Buffers, My_Buffer_Iterator); next_element (sys.Buffers, My_Buffer_Iterator); end loop; else Show_Message_Box (Lb_Define_Buffers_Before (Current_Language)); end if; Do_Connect (Builder); Gtk.Widget.Show_All (Get_Widget (Builder, "window1")); Gtk.Main.Main; Unref (Builder); end show_dependencies_widget; end graphical_editor.dependencies;