private void OnWindowClosed(object sender, DocumentWindowEventArgs e) { IDocumentWindow window = (IDocumentWindow)sender; CocoStudio.Core.Document document = this.FindDocument(window); window.Closing -= new EventHandler <DocumentWindowEventArgs>(this.OnWindowClosing); window.Closed -= new EventHandler <DocumentWindowEventArgs>(this.OnWindowClosed); this.documents.Remove(document); this.OnDocumentClosed(document); document.DisposeDocument(); }
private void OnWindowClosing(object sender, DocumentWindowEventArgs args) { IDocumentWindow window = (IDocumentWindow)sender; if (!args.Forced && window.ViewContent != null && window.ViewContent.IsDirty) { string str = ""; if (window.ViewContent.ContentName != null) { str = Path.GetFileName(window.ViewContent.ContentName); } switch (MessageBox.Show(string.Format(LanguageInfo.MessageBox188_AskSaveCurFile, (object)str), new ButtonText(LanguageInfo.Command_Save, LanguageInfo.Dialog_ButtonDontSave, LanguageInfo.Dialog_ButtonCancel), (Window)null, (string)null, MessageBoxImage.Info)) { case MessageBoxResult.Yes: if (window.ViewContent.ContentName == null) { this.FindDocument(window).Save(); args.Cancel = window.ViewContent.IsDirty; } else { try { window.ViewContent.Closing(); if (window.ViewContent.IsFile) { window.ViewContent.Save(window.ViewContent.ContentName); } else { window.ViewContent.Save(); } DocumentWindowEventArgs documentWindowEventArgs = args; int num = documentWindowEventArgs.Cancel | window.ViewContent.IsDirty ? 1 : 0; documentWindowEventArgs.Cancel = num != 0; } catch (Exception ex) { args.Cancel = true; MessageBox.Show(LanguageInfo.Output_FailedToSaveFile, (Window)null, (string)null, MessageBoxImage.Info); } } if (args.Cancel) { this.FindDocument(window).Select(); break; } break; case MessageBoxResult.No: args.Cancel = false; window.ViewContent.DiscardChanges(); break; case MessageBoxResult.Cancel: args.Cancel = true; break; } } this.OnDocumentClosing(this.FindDocument(window)); }