X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2FmatitaGtkMisc.ml;h=53546a90389f8eeee425c4dcc08f7e67f40d15d1;hb=ad99cc72c725c0cceda7ddf3dbaafedfe4dcb5b2;hp=765ffb33e0d67ce7724a675fc6a1097f91abcf15;hpb=fa21e88e6e9464dbd2f76d8b1d6094054a6ec19c;p=helm.git diff --git a/matita/matita/matitaGtkMisc.ml b/matita/matita/matitaGtkMisc.ml index 765ffb33e..53546a903 100644 --- a/matita/matita/matitaGtkMisc.ml +++ b/matita/matita/matitaGtkMisc.ml @@ -272,19 +272,17 @@ let popup_message m#destroy () let popup_message_lowlevel - ~title ~message ?(no_separator=true) ~callback ~message_type ~buttons + ~title ~message ?(no_separator=true) ~message_type ~buttons ?parent ?(destroy_with_parent=true) ?icon ?(modal=true) ?(resizable=false) ?screen ?type_hint ?(position=`CENTER_ON_PARENT) ?wmclass ?border_width ?width - ?height ?(show=true) () + ?height () = let m = GWindow.dialog - ~no_separator - ?parent ~destroy_with_parent - ~title ?icon ~modal ~resizable ?screen - ?type_hint ~position ?wmclass ?border_width ?width ?height - ~show:false () + ?parent ~destroy_with_parent + ~title ?icon ~resizable ?screen + ?type_hint ~position ?wmclass ?border_width ?width ?height () in let stock = match message_type with @@ -302,34 +300,19 @@ let popup_message_lowlevel m#vbox#pack ~from:`START ~padding:20 ~expand:true ~fill:true (hbox:>GObj.widget); List.iter (fun (x, y) -> - m#add_button_stock x y; - if y = `CANCEL then - m#set_default_response y + m#add_button_stock x y ) buttons; - ignore(m#connect#response - ~callback:(fun a -> GMain.Main.quit ();callback a)); - ignore(m#connect#close - ~callback:(fun _ -> GMain.Main.quit ();callback `POPUPCLOSED)); - if show = true then - m#show (); - GtkThread.main (); - m#destroy () + let res = m#run () in + m#destroy () ; + res let ask_confirmation ~title ~message ?parent () = - let rc = ref `YES in - let callback = - function - | `YES -> rc := `YES - | `NO -> rc := `NO - | `CANCEL -> rc := `CANCEL - | `DELETE_EVENT -> rc := `CANCEL - | `POPUPCLOSED -> rc := `CANCEL - in - let buttons = [`YES,`YES ; `NO,`NO ; `CANCEL,`CANCEL] in - popup_message_lowlevel - ~title ~message ~message_type:`WARNING ~callback ~buttons ?parent (); - !rc + GtkThread.sync (fun _ -> + let buttons = [`YES,`YES ; `NO,`NO ; `CANCEL,`DELETE_EVENT] in + popup_message_lowlevel + ~title ~message ~message_type:`WARNING ~buttons ?parent () + ) () let report_error ~title ~message ?parent () = let callback _ = () in