sl@0: // Copyright (c) 2002-2010 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // sl@0: sl@0: #ifndef BIDICOPY_H_ sl@0: #define BIDICOPY_H_ sl@0: sl@0: #include <e32def.h> sl@0: sl@0: class BidiCopy sl@0: /** Text copying and reversal routines. sl@0: @internalTechnology */ sl@0: { sl@0: public: sl@0: static TInt Mirror(TInt a); sl@0: static void ReverseCodes(TText* aText, TInt aLength); sl@0: static TText* CopyBackwards(TText* aDestination, sl@0: const TText* aSource, TInt aLength); sl@0: static void DeleteUnreversedSurrogates(TText* aText, TInt aLength); sl@0: static void CorrectSurrogatePairs(TText* aText, TInt aLength); sl@0: static void CorrectGroups(TText* aText, TInt aLength); sl@0: static void SubstituteMirrorImages(TText* aText, TInt aLength); sl@0: static TText* CopyMirror(TText* aDestination, const TText* aSource, TInt length); sl@0: static TText* OutputTChar(TText* aDestination, TInt aToOutput); sl@0: static TText* CopyBackwardsWithMirroring(TText* aDestination, sl@0: const TText* aSource, TInt aLength); sl@0: static TText* CopyGroupsBackwards(TText* aDestination, sl@0: const TText* aSource, TInt aLength); sl@0: static TBool ImplicitDirectionalityIsRightToLeft( sl@0: const TText* aText, TInt aLength, TBool* aFound); sl@0: }; sl@0: sl@0: #endif