Пример #1
0
        /// <summary>
        /// Removes an existing underline
        /// </summary>
        public virtual void RemoveHighlight(Highlight h)
        {
            RemoveAdorner(h.BodyAdorner);

            if (CurrentMatch != null && h.IsBeforeOrAt(CurrentMatch))
            {
                iteratingHighlightPtr--;//we have to move the iteratorPTR back since a highlight before it was deleted
            }
            //if startHighlightIndex is after where highlight is, then it must be decremented
            //eg highlight indexes:0 1 2 3
            //startHighlightIndex=2
            //remove highlight #1, means startHighlightIndex=>2-1=1
            //but if remove highlight #3, startHighlightIndex doesnt change
            if (startHighlightIndex >= highlights.Count || h.IsBeforeOrAt(highlights[startHighlightIndex]))
            {
                startHighlightIndex--;
            }

            highlights.Remove(h);
            if (scrollBarHighlightHandler != null)
            {
                scrollBarHighlightHandler.Remove(h.ScrollBarAdorner);
            }
        }
 internal void AttachTo(Highlight highlight)
 {
     highlight.ScrollBarAdorner = CreateScrollBarHighlightAdorner(highlight.BodyAdorner);
     Add(highlight.ScrollBarAdorner);
 }
Пример #3
0
        /// <summary>
        /// Whether this Highlight is before or at the same position of <c>highlight</c>.
        /// </summary>

        internal protected virtual bool IsBeforeOrAt(Highlight highlight)
        {
            return(AbsoluteStart <= highlight.AbsoluteStart);//works because highlights are sorted
        }
Пример #4
0
 /// <summary>
 /// Moves the underline due to user operations (typing)
 /// </summary>
 protected virtual void MoveHighlight(Highlight u, int start, int end)
 {
     // u.Start = start;
     // u.End = end;
     u.MoveTo(start, end);
 }
Пример #5
0
 /// <summary>
 /// Determines whether a Highlight is registered.
 /// </summary>
 protected virtual bool IsRegistered(Highlight highlight)
 {
     highlights.Sort(highlightComparer);
     return(highlights.BinarySearch(highlight, highlightComparer) > -1);
 }