bool PromptIfUnsavedChanges ()
{
if (Document != null && Document.HasUnsavedChanges) {
var dialog = new Hyena.Widgets.HigMessageDialog (
Window, DialogFlags.Modal, MessageType.Warning, ButtonsType.None,
Catalog.GetString ("Save the changes made to this document?"),
String.Empty
);
dialog.AddButton (Catalog.GetString ("Close _Without Saving"), ResponseType.Close, false);
dialog.AddButton (Stock.Cancel, ResponseType.Cancel, false);
dialog.AddButton (Stock.SaveAs, ResponseType.Ok, true);
var response = (ResponseType) dialog.Run ();
dialog.Destroy ();
switch (response) {
case ResponseType.Ok:
Actions["SaveAs"].Activate ();
return PromptIfUnsavedChanges ();
case ResponseType.Close:
return false;
case ResponseType.Cancel:
case ResponseType.DeleteEvent:
return true;
}
}
return false;
}