Exemplo n.º 1
0
        private void Init()
        {
            DeleteAllChildren();

            phase = LifetimePhase.Generating;
            TextLayer.InitVisualLine(this);
        }
Exemplo n.º 2
0
 internal void Dispose()
 {
     if (_phase == LifetimePhase.Disposed)
     {
         return;
     }
     Debug.Assert(_phase == LifetimePhase.Live);
     _phase = LifetimePhase.Disposed;
 }
Exemplo n.º 3
0
 internal void RunTransformers(VisualLine line, IVisualLineTransformer[] transformers)
 {
     Debug.Assert(phase == LifetimePhase.Transforming);
     foreach (IVisualLineTransformer transformer in transformers)
     {
         transformer.Transform(line, elements);
     }
     phase = LifetimePhase.Live;
 }
Exemplo n.º 4
0
 internal void RunTransformers(ITextRunConstructionContext context, IVisualLineTransformer[] transformers)
 {
     Debug.Assert(_phase == LifetimePhase.Transforming);
     foreach (var transformer in transformers)
     {
         transformer.Transform(context, _elements);
     }
     _phase = LifetimePhase.Live;
 }
Exemplo n.º 5
0
 internal void Dispose()
 {
     if (phase == LifetimePhase.Disposed)
     {
         return;
     }
     Debug.Assert(phase == LifetimePhase.Live);
     phase = LifetimePhase.Disposed;
     foreach (TextLine textLine in TextLines)
     {
         textLine.Dispose();
     }
 }
Exemplo n.º 6
0
 internal void ConstructVisualElements(VisualLineElementGenerator[] generators)
 {
     Debug.Assert(phase == LifetimePhase.Generating);
     foreach (VisualLineElementGenerator g in generators)
     {
         g.StartGeneration(this);
     }
     elements.Clear();
     PerformVisualElementConstruction(generators);
     foreach (VisualLineElementGenerator g in generators)
     {
         g.FinishGeneration();
     }
     phase = LifetimePhase.Transforming;
 }
Exemplo n.º 7
0
 internal void RunTransformers(ITextRunConstructionContext context, IVisualLineTransformer[] transformers)
 {
     Debug.Assert(phase == LifetimePhase.Transforming);
     foreach (IVisualLineTransformer transformer in transformers)
     {
         transformer.Transform(context, elements);
     }
     // For some strange reason, WPF requires that either all or none of the typography properties are set.
     if (elements.Any(e => e.TextRunProperties.TypographyProperties != null))
     {
         // Fix typographic properties
         foreach (VisualLineElement element in elements)
         {
             if (element.TextRunProperties.TypographyProperties == null)
             {
                 element.TextRunProperties.SetTypographyProperties(new DefaultTextRunTypographyProperties());
             }
         }
     }
     phase = LifetimePhase.Live;
 }
Exemplo n.º 8
0
        internal void ConstructVisualElements(ITextRunConstructionContext context, VisualLineElementGenerator[] generators)
        {
            Debug.Assert(phase == LifetimePhase.Generating);
            foreach (VisualLineElementGenerator g in generators)
            {
                g.StartGeneration(context);
            }
            elements = new List <VisualLineElement>();
            PerformVisualElementConstruction(generators);
            foreach (VisualLineElementGenerator g in generators)
            {
                g.FinishGeneration();
            }

            var globalTextRunProperties = context.GlobalTextRunProperties;

            foreach (var element in elements)
            {
                element.SetTextRunProperties(new VisualLineElementTextRunProperties(globalTextRunProperties));
            }
            this.Elements = elements.AsReadOnly();
            CalculateOffsets();
            phase = LifetimePhase.Transforming;
        }
Exemplo n.º 9
0
        internal void ConstructVisualElements(ITextRunConstructionContext context, VisualLineElementGenerator[] generators)
        {
            Debug.Assert(_phase == LifetimePhase.Generating);
            foreach (var g in generators)
            {
                g.StartGeneration(context);
            }
            _elements = new List <VisualLineElement>();
            PerformVisualElementConstruction(generators);
            foreach (var g in generators)
            {
                g.FinishGeneration();
            }

            var globalTextRunProperties = context.GlobalTextRunProperties;

            foreach (var element in _elements)
            {
                element.SetTextRunProperties(globalTextRunProperties.Clone());
            }
            Elements = new ReadOnlyCollection <VisualLineElement>(_elements);
            CalculateOffsets();
            _phase = LifetimePhase.Transforming;
        }
Exemplo n.º 10
0
 internal void RunTransformers(ITextRunConstructionContext context, IVisualLineTransformer[] transformers)
 {
     Debug.Assert(phase == LifetimePhase.Transforming);
     foreach (IVisualLineTransformer transformer in transformers) {
         transformer.Transform(context, elements);
     }
     // For some strange reason, WPF requires that either all or none of the typography properties are set.
     if (elements.Any(e => e.TextRunProperties.TypographyProperties != null)) {
         // Fix typographic properties
         foreach (VisualLineElement element in elements) {
             if (element.TextRunProperties.TypographyProperties == null) {
                 element.TextRunProperties.SetTypographyProperties(new DefaultTextRunTypographyProperties());
             }
         }
     }
     phase = LifetimePhase.Live;
 }
Exemplo n.º 11
0
 internal void Dispose()
 {
     if (phase == LifetimePhase.Disposed)
         return;
     Debug.Assert(phase == LifetimePhase.Live);
     phase = LifetimePhase.Disposed;
     foreach (TextLine textLine in TextLines) {
         textLine.Dispose();
     }
 }
Exemplo n.º 12
0
        internal void ConstructVisualElements(ITextRunConstructionContext context, VisualLineElementGenerator[] generators)
        {
            Debug.Assert(phase == LifetimePhase.Generating);
            foreach (VisualLineElementGenerator g in generators) {
                g.StartGeneration(context);
            }
            elements = new List<VisualLineElement>();
            PerformVisualElementConstruction(generators);
            foreach (VisualLineElementGenerator g in generators) {
                g.FinishGeneration();
            }

            var globalTextRunProperties = context.GlobalTextRunProperties;
            foreach (var element in elements) {
                element.SetTextRunProperties(new VisualLineElementTextRunProperties(globalTextRunProperties));
            }
            this.Elements = elements.AsReadOnly();
            CalculateOffsets();
            phase = LifetimePhase.Transforming;
        }
Exemplo n.º 13
0
 internal void ConstructVisualElements(VisualLineElementGenerator[] generators)
 {
     Debug.Assert(phase == LifetimePhase.Generating);
     foreach (VisualLineElementGenerator g in generators) {
         g.StartGeneration(this);
     }
     elements.Clear();
     PerformVisualElementConstruction(generators);
     foreach (VisualLineElementGenerator g in generators) {
         g.FinishGeneration();
     }
     phase = LifetimePhase.Transforming;
 }
Exemplo n.º 14
0
        private void Init()
        {
            DeleteAllChildren();

            phase = LifetimePhase.Generating;
            TextLayer.InitVisualLine(this);
        }
Exemplo n.º 15
0
 internal void RunTransformers(VisualLine line, IVisualLineTransformer[] transformers)
 {
     Debug.Assert(phase == LifetimePhase.Transforming);
     foreach (IVisualLineTransformer transformer in transformers) {
         transformer.Transform(line, elements);
     }
     phase = LifetimePhase.Live;
 }