Beispiel #1
0
 private void PushChar(int lineNum)
 {
     if (mLines.Count < lineNum)
     {
         mLines.Add(new TextboxLine(base.Size.Width, mFont, mForeColor));
     }
     if (mLines[lineNum].LineFull())
     {
         TextBoxChar charToSwitch = mLines[lineNum].Chars[mLines[lineNum].Chars.Count - 1];
         mLines[lineNum].Chars.Remove(charToSwitch);
         mLines[lineNum].RecalculateWidth();
         if (mLines.Count < lineNum + 1)
         {
             mLines.Add(new TextboxLine(base.Size.Width, mFont, mForeColor));
         }
         mLines[lineNum + 1].Chars.Insert(0, charToSwitch);
         mLines[lineNum + 1].RecalculateWidth();
         if (mLines[lineNum + 1].LineFull())
         {
             PushChar(lineNum + 1);
         }
     }
 }
Beispiel #2
0
 private void PullChar(int lineNum, int charNum)
 {
     if (mLines.Count > lineNum + 1)
     {
         if (mLines[lineNum + 1].Chars.Count == 0)
         {
             mLines.RemoveAt(lineNum + 1);
         }
     }
     mLines[lineNum].RecalculateWidth();
     if (mLines[lineNum].LineFull() == false && mLines.Count > lineNum + 1)
     {
         TextBoxChar charToSwitch = mLines[lineNum + 1].Chars[0];
         mLines[lineNum + 1].Chars.Remove(charToSwitch);
         mLines[lineNum + 1].RecalculateWidth();
         mLines[lineNum].Chars.Insert(mLines[lineNum].Chars.Count - 1, charToSwitch);
         mLines[lineNum].RecalculateWidth();
         mLines[lineNum + 1].RecalculateWidth();
         if (mLines[lineNum].LineFull() == false)
         {
             PullChar(lineNum, charNum + 1);
         }
     }
 }