method set_text ?(list=[]) ?(fixed="") (s:string) =
      ignore_text_changed <- true;
      buffer#set_text "";
      buffer#insert ~iter: buffer#start_iter ~tags: [tag_list] (self#string_of_list list);
      buffer#insert ~iter: buffer#end_iter ~tags: [tag_not_editable] fixed;
      let nb_chars = buffer#end_iter#offset in
      editable_from <- nb_chars;
      buffer#insert ~iter: buffer#end_iter s;
      self#set_size;
      ignore_text_changed <- false;
      self#on_text_changed