graphicsdeviceinterface/gdi/sgdi/BidiVisual.cpp
changeset 183 6a1564a2f3e6
parent 168 2bd88482bfe5
child 194 18f84489a694
--- a/graphicsdeviceinterface/gdi/sgdi/BidiVisual.cpp	Thu Sep 02 21:50:40 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,123 +0,0 @@
-// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-//
-
-#include "BidiVisual.h"
-#include "BidiCopy.h"
-#include "BidiTextImp.h"
-#include "BidiCompact.h"
-
-extern void BidiPanic(TInt aError);
-
-/** Construct the class with a full paragraph of text and the run array to be used 
-to hold all the runs. 
-
-@param aText The text to be analyzed. This must not be de-allocated until 
-all operations on it through this class have been completed.
-@param aRightToLeft Paragraph directionality.
-@param aRunInfoArray The array to be used to hold the run information. This 
-must not be de-allocated until all operations on it through this class have 
-been completed. Ownership is not passed.
-@param aRunInfoLength The number of TRunInfo<\code> objects in aRunInfoArray. */
-EXPORT_C TBidiLogicalToVisual::TBidiLogicalToVisual(
-	const TDesC& aText,
-	TBool aRightToLeft,
-	TBidirectionalState::TRunInfo* aRunInfoArray,
-	TInt aRunInfoLength)
-	: iText(aText), iRightToLeft(aRightToLeft),
-	iRunInfoArray(aRunInfoArray), iRunInfoArrayLength(aRunInfoLength), iRuns(aRunInfoLength)
-	{
-	}
-
-/** Construct the class with a full paragraph of text and the run array to be used 
-to hold all the runs. Directionality is taken as the implicit directionality 
-of the text passed. 
-
-@param aText The text to be analyzed. This must not be de-allocated until 
-all operations on it through this class have been completed.
-@param aRunInfoArray The array to be used to hold the run information. This 
-must not be de-allocated until all operations on it through this class have 
-been completed. Ownership is not passed.
-@param aRunInfoLength The number of TRunInfo objects in aRunInfoArray. */
-EXPORT_C TBidiLogicalToVisual::TBidiLogicalToVisual(
-	const TDesC& aText,
-	TBidirectionalState::TRunInfo* aRunInfoArray,
-	TInt aRunInfoLength)
-	: iText(aText),
-	iRunInfoArray(aRunInfoArray), iRunInfoArrayLength(aRunInfoLength), iRuns(aRunInfoLength)
-	{
-	iRightToLeft = BidiCopy::ImplicitDirectionalityIsRightToLeft(
-		aText.Ptr(), aText.Length(), 0);
-	}
-
-/** Process the text. This must be called before any call to GetVisualLine. 
-
-@return The number of runs that were or would be required to reorder the complete 
-line. If this is less than the value passed into the constructor as aRunInfoLength, 
-the full text will not be able to be Reordered. */
-EXPORT_C TInt TBidiLogicalToVisual::Reorder()
-	{
-	TInt required = TBidirectionalState::GenerateBdRunArray(
-		iText.Ptr(), iText.Length(), iRunInfoArray, iRunInfoArrayLength);
-	iRuns = Min(required, iRunInfoArrayLength);
-	TBidirectionalState state;
-	state.ReorderLine(iRunInfoArray, iRuns, ETrue, ETrue, iRightToLeft,
-		TChar::EOtherNeutral, TChar::EOtherNeutral);
-	return required;
-	}
-
-/** Get a line of visually ordered text. 
-
-@param aLine Line of text in visual order. There must be aEnd - aStart + 4 
-characters available in the buffer. Only characters within the range aStart 
-to aEnd, plus perhaps a truncation character and up to two zero-width joiners 
-will be present in the string at the end.
-@param aStart The first character in the text that is to be on the line.
-@param aEnd One plus the last character in the test that is to be on the line.
-@param aTruncationChar The character to mark the end of the text, if appropriate, 
-or 0xFFFF if no truncation character is to be used. */ 
-EXPORT_C void TBidiLogicalToVisual::GetVisualLine(TDes& aLine,
-	TInt aStart, TInt aEnd, TChar aTruncationChar)
-	{
-	__ASSERT_ALWAYS(aEnd - aStart + KMinCharAvailable <= aLine.MaxLength(), BidiPanic(KErrArgument));
-
-	if(iText.Length() == 0)
-		{
-		aLine.Zero();
-		return;//We can't do anything with iText, if its length is 0.
-		}
-
-	TRunInfoCompact::TReorderingContext context;
-
-	const TText* input = &iText[0];
-	context.iStart = aStart;
-	context.iEnd = aEnd;
-	context.iTruncation = aTruncationChar;
-	context.iSource = input;
-	context.iJoinsAtStart = TRunInfoCompact::JoinBefore(input, aStart);
-	context.iJoinsAtEnd = aEnd < iText.Length() ? TRunInfoCompact::JoinBefore(input, aEnd) : EFalse;
-
-	aLine.FillZ(1);
-	TText* output = &aLine[0];
-	TText* outputStart = output;
-	TBidirectionalState::TRunInfo* endInfo = iRunInfoArray + iRuns;
-	for (TBidirectionalState::TRunInfo* currentInfo = iRunInfoArray;
-		currentInfo != endInfo; ++currentInfo)
-		{
-		TRunInfoCompact info(currentInfo->iStart,
-			currentInfo->iLength, currentInfo->iDirection);
-		output = info.Reorder(output, context);
-		}
-	aLine.SetLength(output - outputStart);
-	}