hbox#pack ~from:`START ~expand:true ~fill:true (label:>GObj.widget);
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) buttons;
+ List.iter (fun (x, y) ->
+ m#add_button_stock x y;
+ if y = `CANCEL then
+ m#set_default_response y
+ ) buttons;
ignore(m#connect#response
~callback:(fun a -> GMain.Main.quit ();callback a));
ignore(m#connect#close
- ~callback:(fun _ -> GMain.Main.quit ();raise PopupClosed));
+ ~callback:(fun _ -> GMain.Main.quit ();callback `POPUPCLOSED));
GtkThread.main ();
m#destroy ()
| `NO -> rc := `NO
| `CANCEL -> rc := `CANCEL
| `DELETE_EVENT -> rc := `CANCEL
+ | `POPUPCLOSED -> rc := `CANCEL
in
- let buttons = [`CANCEL,`CANCEL ; `NO,`NO ; `YES,`YES] in
- try
+ let buttons = [`YES,`YES ; `NO,`NO ; `CANCEL,`CANCEL] in
popup_message_lowlevel
~title ~message ~message_type:`WARNING ~callback ~buttons ?parent ();
!rc
- with
- | PopupClosed -> `CANCEL
let report_error ~title ~message ?parent () =
let rc = ref false in
()
in
match rc with
- | `YES -> saveScript ();GMain.Main.quit ()
+ | `YES -> saveScript ();
+ if not source_view#buffer#modified then
+ GMain.Main.quit ()
| `NO -> GMain.Main.quit ()
| `CANCEL -> ()
end else GMain.Main.quit ());