示例#1
0
        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();
        }
示例#2
0
        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));
        }