예제 #1
0
 protected virtual void OnVerticalVisibleRegionChanged(VisibleRegionChangedEventArgs e)
 {
     if (VerticalVisibleRegionChanged != null)
     {
         VerticalVisibleRegionChanged(this, e);
     }
 }
예제 #2
0
 protected virtual void OnHorizontalVisibleRegionChanged(VisibleRegionChangedEventArgs e)
 {
     if (HorizontalVisibleRegionChanged != null)
     {
         HorizontalVisibleRegionChanged(this, e);
     }
 }
예제 #3
0
        public override bool Equals(object obj)
        {
            VisibleRegionChangedEventArgs other = obj as VisibleRegionChangedEventArgs;

            return(other != null &&
                   this.FirstVisibleIndex == other.FirstVisibleIndex &&
                   this.LastVisibleIndex == other.LastVisibleIndex &&
                   this.TotalLength == other.TotalLength);
        }
예제 #4
0
        private void setScrollBarRegion(ScrollBar scrollBar, VisibleRegionChangedEventArgs e)
        {
            if (e.FirstVisibleIndex == 0 && e.LastVisibleIndex == e.TotalLength - 1)
            {
                scrollBar.Enabled = false;
            }
            else
            {
                scrollBar.Enabled = true;

                scrollBar.Minimum = 0;
                scrollBar.Maximum = e.TotalLength - 1;

                scrollBar.LargeChange = e.LastVisibleIndex - e.FirstVisibleIndex + 1;
                scrollBar.Value       = e.FirstVisibleIndex;
            }
        }
예제 #5
0
        private int calcRowOffset(int cursorRow, int visibleRows, int documentRows)
        {
            int rowOffset = calculateOffset(cursorRow, visibleRows, documentRows, 1);

            var verticalEventArgs = createVisibleRegionChangedEventArgs(rowOffset, visibleRows, documentRows);

            oldVerticalEventArgs = Util.RaiseIfEventArgsChanged(OnVerticalVisibleRegionChanged,
                                                                verticalEventArgs,
                                                                oldVerticalEventArgs);

            return rowOffset;
        }
예제 #6
0
        private int calcColumnOffset(int cursorColumn, int visibleColumns, int documentColumns, int currentLineColumns)
        {
            int columnOffset;

            if (WordWrap)
            {
                visibleColumns += 1;

                columnOffset = Math.Min(0, visibleColumns - 1 - cursorColumn);

                int extraColumns = 0;

                if (cursorColumn >= visibleColumns - 1)
                    extraColumns = -columnOffset + Math.Max(0, ImportedText.CountSpaces(TypedText.Length) - 1);

                documentColumns = visibleColumns + extraColumns;
            }
            else
            {
                const int visibleColumnsBeforeJumpBack = 6;

                int jumpBackZone = Math.Max(1, visibleColumns - (visibleColumns / 2) + 2 - visibleColumnsBeforeJumpBack);

                columnOffset = calculateOffset(cursorColumn, visibleColumns, currentLineColumns, jumpBackZone);
            }

            var horizontalEventArgs = createVisibleRegionChangedEventArgs(columnOffset, visibleColumns, documentColumns);

            oldHorizontalEventArgs = Util.RaiseIfEventArgsChanged(OnHorizontalVisibleRegionChanged,
                                                                  horizontalEventArgs,
                                                                  oldHorizontalEventArgs);

            return columnOffset;
        }
예제 #7
0
 protected virtual void OnVerticalVisibleRegionChanged(VisibleRegionChangedEventArgs e)
 {
     if (VerticalVisibleRegionChanged != null)
         VerticalVisibleRegionChanged(this, e);
 }
예제 #8
0
 protected virtual void OnHorizontalVisibleRegionChanged(VisibleRegionChangedEventArgs e)
 {
     if (HorizontalVisibleRegionChanged != null)
         HorizontalVisibleRegionChanged(this, e);
 }
예제 #9
0
        private void setScrollBarRegion(ScrollBar scrollBar, VisibleRegionChangedEventArgs e)
        {
            if (e.FirstVisibleIndex == 0 && e.LastVisibleIndex == e.TotalLength - 1)
                scrollBar.Enabled = false;
            else
            {
                scrollBar.Enabled = true;

                scrollBar.Minimum = 0;
                scrollBar.Maximum = e.TotalLength - 1;

                scrollBar.LargeChange = e.LastVisibleIndex - e.FirstVisibleIndex + 1;
                scrollBar.Value = e.FirstVisibleIndex;
            }
        }
예제 #10
0
        private void picTyping_VerticalVisibleRegionChanged(object sender, VisibleRegionChangedEventArgs e)
        {
            firstVisibleRow = e.FirstVisibleIndex;

            setScrollBarRegion(scrVTyping, e);
        }
예제 #11
0
        private void picTyping_HorizontalVisibleRegionChanged(object sender, VisibleRegionChangedEventArgs e)
        {
            firstVisibleColumn = e.FirstVisibleIndex;

            setScrollBarRegion(scrHTyping, e);
        }
예제 #12
0
        private void picTyping_VerticalVisibleRegionChanged(object sender, VisibleRegionChangedEventArgs e)
        {
            firstVisibleRow = e.FirstVisibleIndex;

            setScrollBarRegion(scrVTyping, e);
        }
예제 #13
0
        private void picTyping_HorizontalVisibleRegionChanged(object sender, VisibleRegionChangedEventArgs e)
        {
            firstVisibleColumn = e.FirstVisibleIndex;

            setScrollBarRegion(scrHTyping, e);
        }