internal override void InsertAfter(int index, char c)
{
int oldLexLength = mybuffer.Length;
char[] newBuff = new char[oldLexLength + 1];
if (index > -1 && index < mybuffer.Length - 1)
{
Array.Copy(mybuffer, newBuff, index + 1);
newBuff[index + 1] = c;
Array.Copy(mybuffer, index + 1, newBuff, index + 2, oldLexLength - index - 1);
}
else if (index == -1)
{
newBuff[0] = c;
Array.Copy(mybuffer, 0, newBuff, 1, mybuffer.Length);
}
else if (index == oldLexLength - 1)
{
Array.Copy(mybuffer, newBuff, oldLexLength);
newBuff[oldLexLength] = c;
}
else
{
throw new NotSupportedException();
}
this.mybuffer = newBuff;
UpdateRunWidth();
}
internal override EditableRun Remove(int startIndex, int length, bool withFreeRun)