method add_file_box f_opt =
        let title =
          match f_opt with
            None -> "<no name>"
          | Some s -> Filename.basename s
        in
        try
          let label = GMisc.label ~text: title () in
          let fb = new file label f_opt in
          let eb = GBin.event_box () in
          fb#reparent eb#coerce;
          ignore(notebook#append_page ~tab_label: label#coerce eb#coerce);
          file_boxes <- file_boxes @ [fb];
          notebook#goto_page ((List.length file_boxes) - 1);
          match f_opt with
            None -> fb#edit_channel ()
          | Some _ -> ()
        with
          e ->
            prerr_endline (Printf.sprintf "Error while adding file %s" title);
            raise e