internal override void Format(Area area, FormatInfo previousFormatInfo)
{
ParagraphFormatInfo formatInfo = ((ParagraphFormatInfo)this.renderInfo.FormatInfo);
if (!InitFormat(area, previousFormatInfo))
{
formatInfo.isStarting = false;
return;
}
formatInfo.isEnding = true;
FormatResult lastResult = FormatResult.Continue;
while (this.currentLeaf != null)
{
FormatResult result = FormatElement(this.currentLeaf.Current);
switch (result)
{
case FormatResult.Ignore:
this.currentLeaf = this.currentLeaf.GetNextLeaf();
break;
case FormatResult.Continue:
lastResult = result;
this.currentLeaf = this.currentLeaf.GetNextLeaf();
break;
case FormatResult.NewLine:
lastResult = result;
StoreLineInformation();
if (!StartNewLine())
{
result = FormatResult.NewArea;
formatInfo.isEnding = false;
}
break;
}
if (result == FormatResult.NewArea)
{
lastResult = result;
formatInfo.isEnding = false;
break;
}
}
if (formatInfo.IsEnding && lastResult != FormatResult.NewLine)
StoreLineInformation();
formatInfo.imageRenderInfos = this.imageRenderInfos;
FinishLayoutInfo();
}