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