public void ExpandToEnclosingUnit(TextUnit unit)
{
int newStartOffset, newEndOffset;
int dummy;
switch (unit)
{
case TextUnit.Format:
text.GetAttributeRun(startOffset, out newStartOffset, out newEndOffset, false);
break;
case TextUnit.Word:
WordNormalize();
return;
case TextUnit.Paragraph:
ParagraphNormalize();
return;
case TextUnit.Page:
// Not currently supported; treat as Document
case TextUnit.Document:
StartOffset = 0;
EndOffset = text.CharacterCount;
return;
default:
text.GetTextAtOffset(startOffset,
GetAtkBoundaryType(unit, false),
out newStartOffset,
out dummy);
text.GetTextAtOffset(endOffset - 1,
GetAtkBoundaryType(unit, false),
out dummy,
out newEndOffset);
break;
}
if (newStartOffset < startOffset)
{
StartOffset = newStartOffset;
}
if (newEndOffset > endOffset)
{
EndOffset = newEndOffset;
}
}