Ejemplo n.º 1
0
        /// <inheritdoc/>
        public override TextRun CreateTextRun(int startVisualColumn, ITextRunConstructionContext context)
        {
            if (context == null)
                throw new ArgumentNullException(nameof(context));

            int relativeOffset = startVisualColumn - VisualColumn;
            StringSegment text = context.GetText(context.VisualLine.FirstDocumentLine.Offset + RelativeTextOffset + relativeOffset, DocumentLength - relativeOffset);
            return new TextCharacters(text.Text, text.Offset, text.Count, TextRunProperties);
        }
Ejemplo n.º 2
0
        /// <inheritdoc/>
        public override TextSpan<CultureSpecificCharacterBufferRange> GetPrecedingText(int visualColumnLimit, ITextRunConstructionContext context)
        {
            if (context == null)
                throw new ArgumentNullException(nameof(context));

            int relativeOffset = visualColumnLimit - VisualColumn;
            StringSegment text = context.GetText(context.VisualLine.FirstDocumentLine.Offset + RelativeTextOffset, relativeOffset);
            CharacterBufferRange range = new CharacterBufferRange(text.Text, text.Offset, text.Count);
            return new TextSpan<CultureSpecificCharacterBufferRange>(range.Length, new CultureSpecificCharacterBufferRange(TextRunProperties.CultureInfo, range));
        }
Ejemplo n.º 3
0
        /// <inheritdoc/>
        public override TextRun CreateTextRun(int startVisualColumn, ITextRunConstructionContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }

            int           relativeOffset = startVisualColumn - VisualColumn;
            StringSegment text           = context.GetText(context.VisualLine.FirstDocumentLine.Offset + RelativeTextOffset + relativeOffset, DocumentLength - relativeOffset);

            return(new TextCharacters(text.Text, text.Offset, text.Count, this.TextRunProperties));
        }
Ejemplo n.º 4
0
        /// <inheritdoc/>
        public override TextSpan <CultureSpecificCharacterBufferRange> GetPrecedingText(int visualColumnLimit, ITextRunConstructionContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }

            int                  relativeOffset = visualColumnLimit - VisualColumn;
            StringSegment        text           = context.GetText(context.VisualLine.FirstDocumentLine.Offset + RelativeTextOffset, relativeOffset);
            CharacterBufferRange range          = new CharacterBufferRange(text.Text, text.Offset, text.Count);

            return(new TextSpan <CultureSpecificCharacterBufferRange>(range.Length, new CultureSpecificCharacterBufferRange(this.TextRunProperties.CultureInfo, range)));
        }
Ejemplo n.º 5
0
        /// <inheritdoc/>
        public override StringRange GetPrecedingText(int visualColumnLimit, ITextRunConstructionContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }

            var relativeOffset = visualColumnLimit - VisualColumn;
            var text           = context.GetText(context.VisualLine.FirstDocumentLine.Offset + RelativeTextOffset, relativeOffset);
            var range          = new StringRange(text.Text, text.Offset, text.Count);

            return(range);
        }
Ejemplo n.º 6
0
        public override TextRun CreateTextRun(int startVisualColumn, ITextRunConstructionContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }

            int           relativeOffset = startVisualColumn - VisualColumn;
            StringSegment text           = context.GetText(context.VisualLine.FirstDocumentLine.Offset + RelativeTextOffset + relativeOffset, DocumentLength - relativeOffset);

            char[] uppercase = new char[text.Count];
            for (int i = 0; i < text.Count; i++)
            {
                uppercase[i] = char.ToUpper(text.Text[text.Offset + i]);
            }
            return(new TextCharacters(uppercase, 0, uppercase.Length, this.TextRunProperties));
        }
Ejemplo n.º 7
0
            public override TextRun CreateTextRun(int startVisualColumn, ITextRunConstructionContext context)
            {
                if (context == null)
                {
                    throw new ArgumentNullException("context");
                }

                int           relativeOffset = startVisualColumn - VisualColumn;
                StringSegment text           = context.GetText(context.VisualLine.FirstDocumentLine.Offset + RelativeTextOffset + relativeOffset, DocumentLength - relativeOffset);

                char[] uppercase = new char[text.Count];

                for (int i = 0; i < text.Count; i++)
                {
                    uppercase[i] = text.Text[text.Offset + i];
                }
                if (RelativeTextOffset == 0)
                {
                    if (char.IsWhiteSpace(uppercase[0]))
                    {
                        //uppercase[0] = (char)124;
                        int j = 0;
                        while (j < text.Count)
                        {
                            if (!char.IsWhiteSpace(uppercase[j]))
                            {
                                break;
                            }
                            if ((j % 4) == 0)
                            {
                                uppercase[j] = (char)124;
                            }

                            j++;
                        }
                    }
                }
                return(new TextCharacters(uppercase, 0, uppercase.Length, this.TextRunProperties));
            }