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;