const ScriptRun& scriptRun = *it;
const CharacterIndex lastScriptRunIndex = scriptRun.characterRun.characterIndex + scriptRun.characterRun.numberOfCharacters;
- if( TextAbstraction::IsRightToLeftScript( scriptRun.script ) && // The script is right to left.
- ( lastScriptRunIndex > paragraphCharacterIndex ) ) // It isn't part of a previous paragraph.
+ if( ( lastScriptRunIndex > paragraphCharacterIndex ) && // It isn't part of a previous paragraph.
+ TextAbstraction::IsRightToLeftScript( scriptRun.script ) ) // The script is right to left.
{
// Find the paragraphs which contains this script run.
// Consider:
}
bool GetMirroredText( const Vector<Character>& text,
- Vector<Character>& mirroredText,
- const Vector<BidirectionalParagraphInfoRun>& bidirectionalInfo )
+ const Vector<CharacterDirection>& directions,
+ const Vector<BidirectionalParagraphInfoRun>& bidirectionalInfo,
+ Vector<Character>& mirroredText )
{
bool hasTextMirrored = false;
mirroredText = text;
Character* mirroredTextBuffer = mirroredText.Begin();
+ CharacterDirection* directionsBuffer = directions.Begin();
// Traverse the paragraphs and mirror the right to left ones.
for( Vector<BidirectionalParagraphInfoRun>::ConstIterator it = bidirectionalInfo.Begin(),
it != endIt;
++it )
{
- const BidirectionalParagraphInfoRun& run = *it;
+ const BidirectionalParagraphInfoRun& paragraph = *it;
- const bool tmpMirrored = bidirectionalSupport.GetMirroredText( mirroredTextBuffer + run.characterRun.characterIndex,
- run.characterRun.numberOfCharacters );
+ const bool tmpMirrored = bidirectionalSupport.GetMirroredText( mirroredTextBuffer + paragraph.characterRun.characterIndex,
+ directionsBuffer + paragraph.characterRun.characterIndex,
+ paragraph.characterRun.numberOfCharacters );
hasTextMirrored = hasTextMirrored || tmpMirrored;
}