Example #1
0
        private void ScrollAnnotation(DiagramScrollBar scrollBar)
        {

            Point delta = Delta;
            var annotationData = m_annotationEditors[scrollBar.Item.Cast<IAnnotation>()];
            float lineHeight = annotationData.TextLayout.Height /annotationData.TextLayout.LineCount;
            float lines = delta.Y / lineHeight;
            int newTopLine = m_startTopLine + (int)lines;
            float visibleLines = annotationData.TextLayout.LayoutHeight / lineHeight;

            if (newTopLine < 0)
                newTopLine = 0;
            if (newTopLine + visibleLines - 1 > annotationData.TextLayout.LineCount)
                newTopLine = annotationData.TopLine;
            annotationData.TopLine =  newTopLine >=0?  newTopLine:0;
        }
Example #2
0
 /// <summary>
 /// Constructor, annotation hit</summary>
 /// <param name="annotation">Annotation item</param>
 /// <param name="scrollBar">Specifies a hit on an item's scroll bar part</param>
 public AnnotationHitEventArgs(IAnnotation annotation, DiagramScrollBar scrollBar)
 {
     Item = annotation;
     Part = scrollBar;
 }
Example #3
0
        private void ScrollAnnotation(DiagramScrollBar scrollBar)
        {
            if (scrollBar == null)
                return;

            var annotation = scrollBar.Item.Cast<IAnnotation>();
            Point delta = Delta;
            var annotationData = m_annotationEditors[annotation];
            float lineHeight = annotationData.TextLayout.Height /annotationData.TextLayout.LineCount;
            float lines = delta.Y / lineHeight;
            int newTopLine = m_startTopLine + (int)Math.Ceiling(lines);
            float visibleLines = annotationData.TextLayout.LayoutHeight / lineHeight;

            if (newTopLine < 0)
                newTopLine = 0;
            if ((int)(newTopLine + visibleLines - 1) > annotationData.TextLayout.LineCount)
                newTopLine = annotationData.TopLine;
            annotationData.TopLine =  newTopLine >=0 ?  newTopLine:0;

            annotationData.ResetText(annotation.Text); 
        }