let draw_row (x1 : float) (x2 : float) (y : float) (col_line : Tk.color) (message_receiver : string)(real_message : string)(message_sender : string) (col_message : Tk.color) (message_emission : string) (col_emission : Tk.color) : unit = 
     draw_line x1 y x2 y col_line (!tag_number) ;
     if (x1 < x2)
     then (draw_line x2 y (x2 -. 1.) (y +. 1.) col_line (!tag_number) ; 
           draw_line x2 y (x2 -. 1.) (y -. 1.) col_line (!tag_number) ;
           draw_text (x1 -. 0.3) (y +. 0.2) message_sender col_message [("tag"^(string_of_int (!tag_number)));"message_sender"`E;
           draw_text (x2 +. 0.3) (y +. 0.2) message_receiver col_message [("tag"^(string_of_int (!tag_number)));"message_receiver"`W;
           )
     else (draw_line x2 y (x2 +. 1.) (y +. 1.) col_line (!tag_number) ; 
           draw_line x2 y (x2 +. 1.) (y -. 1.) col_line (!tag_number) ;
           draw_text (x1 +. 0.3) (y +. 0.2) message_sender col_message [("tag"^(string_of_int (!tag_number)));"message_sender"`W;
           draw_text (x2 -. 0.3) (y +. 0.2) message_receiver col_message [("tag"^(string_of_int (!tag_number)));"message_receiver"`E;
           );
     draw_text ((min x1 x2)+.((sqrt((x1 -. x2) *. (x1 -. x2)))/. 2.)) (y+. 2.7) real_message col_message [("tag"^(string_of_int (!tag_number)));"message_real"`Center;
     draw_text ((min x1 x2)+.((sqrt((x1 -. x2) *. (x1 -. x2)))/. 2.)) (y+. 2.7) message_sender col_message [("tag"^(string_of_int (!tag_number)));"message_principal_sender"`Center;
     draw_text x1 (y-. 2.) message_emission col_emission [("tag"^(string_of_int (!tag_number)));"emission"`Center;