Example #1
0
        public static void CreateFontFamilyChange(FontChangeType fontChange, IProjectFont projectFont, IDocumentContext documentContext, out FontFamily oldFontFamily, out FontFamily newFontFamily)
        {
            switch (fontChange)
            {
            case FontChangeType.SystemToEmbedded:
                newFontFamily = FontEmbedder.MakeRelativeFontFamily(projectFont, documentContext, true);
                oldFontFamily = FontEmbedder.MakeSystemFont(newFontFamily);
                break;

            case FontChangeType.EmbeddedToSystem:
                oldFontFamily = FontEmbedder.MakeRelativeFontFamily(projectFont, documentContext, true);
                newFontFamily = FontEmbedder.MakeSystemFont(oldFontFamily);
                break;

            case FontChangeType.ProjectToEmbedded:
                oldFontFamily = FontEmbedder.MakeRelativeFontFamily(projectFont, documentContext, false);
                newFontFamily = FontEmbedder.MakeRelativeFontFamily(projectFont, documentContext, true);
                break;

            case FontChangeType.EmbeddedToProject:
                oldFontFamily = FontEmbedder.MakeRelativeFontFamily(projectFont, documentContext, true);
                newFontFamily = FontEmbedder.MakeRelativeFontFamily(projectFont, documentContext, false);
                break;

            default:
                oldFontFamily = newFontFamily = (FontFamily)null;
                break;
            }
        }
Example #2
0
        private void ChangeFontReference(FontChangeType fontChange, IProjectFont projectFont)
        {
            FontFamily oldFontFamily;
            FontFamily newFontFamily;

            FontEmbedder.CreateFontFamilyChange(fontChange, projectFont, this.viewModel.Document.DocumentContext, out oldFontFamily, out newFontFamily);
            if (!(oldFontFamily.Source != newFontFamily.Source))
            {
                return;
            }
            SceneElement sceneElement = this.viewModel.RootNode as SceneElement;

            if (sceneElement == null)
            {
                return;
            }
            FontFamilyRepairProcessor familyRepairProcessor = new FontFamilyRepairProcessor(this.viewModel.DesignerContext, new FontFamilyChangeModel(oldFontFamily.Source, newFontFamily.Source, fontChange, projectFont, sceneElement.DocumentNode.DocumentRoot, this.viewModel.ProjectContext));

            using (SceneEditTransaction editTransaction = this.viewModel.CreateEditTransaction(StringTable.EmbedFontUndoUnit))
            {
                familyRepairProcessor.Begin();
                if (familyRepairProcessor.Cancelled)
                {
                    editTransaction.Cancel();
                }
                else
                {
                    editTransaction.Commit();
                }
            }
        }
Example #3
0
 public FontFamilyChangeModel(string oldFontFamilyName, string newFontFamilyName, FontChangeType fontChangeType, IProjectFont projectFont, IDocumentRoot documentRoot, IProjectContext projectContext)
     : base(oldFontFamilyName, newFontFamilyName, documentRoot, projectContext)
 {
     this.fontFamilyRepairers = new List <ReferenceRepairer>();
     this.fontFamilyRepairers.Add((ReferenceRepairer) new FontFamilyReferenceRepairer(this));
     this.FontChangeType = fontChangeType;
     this.ProjectFont    = projectFont;
 }