Example #1
0
 private void MoveStep(int line)
 {
     if (stepLength == 0)
     {
         stepLine = line;
     }
     else if (stepLine < line)
     {
         while (stepLine < line)
         {
             stepLine++;
             PerLine data = perLineData[stepLine];
             data.Start           += stepLength;
             perLineData[stepLine] = data;
         }
     }
     else if (stepLine > line)
     {
         while (stepLine > line)
         {
             PerLine data = perLineData[stepLine];
             data.Start           -= stepLength;
             perLineData[stepLine] = data;
             stepLine--;
         }
     }
 }
        /// <summary>
        /// Tracks a new line with the given CHARACTER length.
        /// </summary>
        private void InsertPerLine(int index, int length = 0)
        {
            MoveStep(index);

            PerLine data;
            var     lineStart = 0;

            // Add the new line length to the existing line start
            data               = perLineData[index];
            lineStart          = data.Start;
            data.Start        += length;
            perLineData[index] = data;

            // Insert the new line
            data = new PerLine {
                Start = lineStart
            };
            perLineData.Insert(index, data);

            // Move the step
            stepLength += length;
            stepLine++;
        }