let display_log ?(modal=false) ?(width=400) ?(height=600) ~title ~log () =
let window = GWindow.window
~title
~allow_shrink: true
~width: width
~height: height
~modal: modal
()
in
let vbox = GPack.vbox ~packing: window#add () in
let wscroll = GBin.scrolled_window
~vpolicy: `AUTOMATIC
~hpolicy: `AUTOMATIC
~packing: (vbox#pack ~expand: true ~padding: 2) ()
in
let wview = GText.view
~editable: false
~packing: wscroll#add
()
in
let wb = GButton.button ~label: Ocvs_messages.close
~packing: (vbox#pack ~expand: false)
()
in
let sep = "----------------------------\n" in
let l = Str.split (Str.regexp_string sep) log in
let tag = wview#buffer#create_tag [`FONT "fixed"] in
let rec iter = function
[] -> ()
| [h] ->wview#buffer#insert ~tags: [tag] h
| h :: q ->
wview#buffer#insert ~tags: [tag] h;
let tag2 = wview#buffer#create_tag [`FOREGROUND "Blue"] in
wview#buffer#insert ~tags: [tag ; tag2] sep;
iter q
in
iter l;
ignore (wb#connect#clicked window#destroy);
window#show ();
if modal then
(
ignore (window#connect#destroy GMain.Main.quit);
GMain.Main.main ()
)
else
()