let draw_action (agentA : string) (agentB : string) (col : Tk.color)(sender_pattern : string)(real_message : string)(receive_pattern : string)(col_txt : Tk.color) (message2 : string) (col_txt2 : Tk.color) =
let x_posA = Hashtbl.find role_position agentA in
let x_posB = Hashtbl.find role_position agentB in
let old_yOrd = !yOrd in
draw_row x_posA x_posB (yAction()) col receive_pattern real_message sender_pattern col_txt message2 col_txt2;
draw_step ((!xmax)-. 0.1) (old_yOrd +. 5.) ("Step"^(string_of_int !tag_number)^".") col (!tag_number) "step";
Hashtbl.iter
(fun role_name role_x ->
if( (Hashtbl.find_all var_in_monitor role_name)<>[] )
then draw_click_zone role_x old_yOrd (!tag_number) (role_name^"click_zone")
)
role_position;
if(!message_emission)
then (Canvas.configure_text canvas (`Tag "emission") ~state:(`Disabled) )
else (Canvas.configure_text canvas (`Tag "emission") ~state:(`Hidden));
if(!message_sender)
then (Canvas.configure_text canvas (`Tag "message_sender") ~state:(`Disabled) )
else (Canvas.configure_text canvas (`Tag "message_sender") ~state:(`Hidden));
if(!message_receiver)
then (Canvas.configure_text canvas (`Tag "message_receiver") ~state:(`Disabled) )
else (Canvas.configure_text canvas (`Tag "message_receiver") ~state:(`Hidden));
if(!message_real)
then (Canvas.configure_text canvas (`Tag "message_real") ~state:(`Disabled))
else (Canvas.configure_text canvas (`Tag "message_real") ~state:(`Hidden));
if(!message_principal_sender)
then (Canvas.configure_text canvas (`Tag "message_principal_sender") ~state:(`Disabled))
else (Canvas.configure_text canvas (`Tag "message_principal_sender") ~state:(`Hidden));