let select_files ?dir
?(fok : (string -> unit) option)
the_title =
let files = ref ([] : string list) in
let fs = GWindow.file_selection ~modal:true
~title: the_title () in
(
match dir with
None ->
if !last_dir <> "" then
let _ = fs#set_filename !last_dir in
()
else
()
| Some dir ->
let _ = fs#set_filename !last_dir in
()
);
let _ = fs # connect#destroy ~callback: GMain.Main.quit in
let _ = fs # ok_button # connect#clicked ~callback:
(match fok with
None ->
(fun () -> files := [fs#filename] ; fs#destroy ())
| Some f ->
(fun () -> f fs#filename)
)
in
let _ = fs # cancel_button # connect#clicked ~callback:fs#destroy in
fs # show ();
GMain.Main.main ();
match !files with
| [] ->
[]
| [""] ->
[]
| l ->
last_dir := Filename.dirname (List.hd l);
l