| author | Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> | 
| Tue, 02 Feb 2010 01:47:50 +0200 | |
| changeset 0 | 5d03bc08d59c | 
| permissions | -rw-r--r-- | 
| 0 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 1 | // Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies). | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 2 | // All rights reserved. | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 3 | // This component and the accompanying materials are made available | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 4 | // under the terms of "Eclipse Public License v1.0" | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 5 | // which accompanies this distribution, and is available | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 6 | // at the URL "http://www.eclipse.org/legal/epl-v10.html". | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 7 | // | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 8 | // Initial Contributors: | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 9 | // Nokia Corporation - initial contribution. | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 10 | // | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 11 | // Contributors: | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 12 | // | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 13 | // Description: | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 14 | // | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 15 | |
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 16 | |
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 17 | #include <e32std.h> | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 18 | #include <e32svr.h> | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 19 | #include "LineBreak.h" | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 20 | #include "LineBreakImp.h" | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 21 | #include "GlyphSel.h" | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 22 | |
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 23 | const TText16 KThaiCodePageStart = 0x0E00; | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 24 | const TText16 KThaiCodePageEnd = 0x0E5C; | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 25 | const TUint KNumThaiCharacters = KThaiCodePageEnd - KThaiCodePageStart; | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 26 | |
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 27 | /** | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 28 | Ecanpsulates rules for when Thai character sequence line breaking. | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 29 | @internalComponent | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 30 | */ | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 31 | class ThaiLinebreakRules | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 32 | 	{
 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 33 | public: | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 34 | enum TCharClassification | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 35 | 		{
 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 36 | EOutOfRange, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 37 | |
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 38 | EConsOAng, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 39 | EConsYoYak, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 40 | EConsHoHip, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 41 | EConsWoWean, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 42 | EConsDigraph, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 43 | EConsOther, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 44 | |
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 45 | EPostVowelA, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 46 | EPostVowelAA, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 47 | EPostVowelOther, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 48 | EPreVowel, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 49 | |
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 50 | EDepMaiHanAkat, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 51 | EDepSaraI, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 52 | EDepOther, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 53 | |
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 54 | // marker for end | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 55 | EMaxClassification | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 56 | }; | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 57 | enum | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 58 | 		{
 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 59 | KOutOfRangeFlag = 1 << EOutOfRange, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 60 | KConsOAngFlag = 1 << EConsOAng, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 61 | KConsYoYakFlag = 1 << EConsYoYak, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 62 | KConsHoHipFlag = 1 << EConsHoHip, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 63 | KConsWoWeanFlag = 1 << EConsWoWean, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 64 | KConsDigraphFlag = 1 << EConsDigraph, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 65 | KConsOtherFlag = 1 << EConsOther, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 66 | KPostVowelAFlag = 1 << EPostVowelA, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 67 | KPostVowelAAFlag = 1 << EPostVowelAA, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 68 | KPostVowelOtherFlag = 1 << EPostVowelOther, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 69 | KPreVowelFlag = 1 << EPreVowel, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 70 | KDepMaiHanAkatFlag = 1 << EDepMaiHanAkat, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 71 | KDepSaraIFlag = 1 << EDepSaraI, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 72 | KDepOtherFlag = 1 << EDepOther, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 73 | |
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 74 | KSpecialDepFlags = KDepMaiHanAkatFlag | KDepSaraIFlag, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 75 | KPostVowelFlags = KPostVowelAFlag | KPostVowelAAFlag | KPostVowelOtherFlag, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 76 | KConsFlags = KConsOtherFlag | KConsDigraphFlag | KConsWoWeanFlag | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 77 | | KConsHoHipFlag | KConsYoYakFlag | KConsOAngFlag, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 78 | KAllFlags = KOutOfRangeFlag | KConsOAngFlag | KConsYoYakFlag | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 79 | | KConsHoHipFlag | KConsWoWeanFlag | KConsDigraphFlag | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 80 | | KConsOtherFlag | KPostVowelAFlag | KPostVowelAAFlag | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 81 | | KPostVowelOtherFlag | KPreVowelFlag | KDepMaiHanAkatFlag | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 82 | | KDepSaraIFlag | KDepOtherFlag | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 83 | }; | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 84 | |
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 85 | /** Returns the Thai linebreaking class of the character. */ | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 86 | static TCharClassification Class(TInt aChar); | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 87 | /** Returns true if aChar is a combining character according to aBreaker. */ | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 88 | static TBool IsCombiningChar(TInt aChar, const MLineBreaker& aBreaker); | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 89 | /** Returns the Thai linebreaking class of the character at (*aChar), | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 90 | searching backwards for the base character if it is foreign and of type CM. | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 91 | @param aChar The position of the character within the string. | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 92 | @param aStart The start of the string. | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 93 | @param aBreaker The line breaker to query for line breaking class. | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 94 | */ | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 95 | static TCharClassification DerivedClass(const TText* aChar, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 96 | const TText* aStart, const MLineBreaker& aBreaker); | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 97 | /** | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 98 | Gets the line break rule for the previous and current character pair | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 99 | @param aPrevClass Class of the previous character. | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 100 | @param aClass Class of the current character. | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 101 | @return the rule code corresponding to the input pair. | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 102 | */ | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 103 | static TBool BreakAllowedBetween( | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 104 | TCharClassification aPrevClass, TCharClassification aClass); | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 105 | /** Returns whether a line break is allowed before the SA character at | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 106 | (*aChar). | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 107 | @param aChar The position of the character within the string. | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 108 | @param aStart The start of the string. | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 109 | @param aBreaker The line breaker to query for line breaking class. | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 110 | */ | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 111 | static TBool BreakAllowedAt(const TText* aChar, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 112 | const TText* aStart, const MLineBreaker& aBreaker); | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 113 | |
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 114 | /** | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 115 | Classification of each character | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 116 | */ | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 117 | static const TUint8 KCharClassifications[KNumThaiCharacters]; | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 118 | |
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 119 | /** | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 120 | Rules table of prev to next character | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 121 | */ | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 122 | static const TUint32 KRules[EMaxClassification]; | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 123 | }; | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 124 | |
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 125 | const TUint8 ThaiLinebreakRules::KCharClassifications[KNumThaiCharacters] = | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 126 | 	{
 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 127 | EOutOfRange, // 0x0E00 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 128 | EConsOther, // 0x0E01 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 129 | EConsOther, // 0x0E02 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 130 | EConsOther, // 0x0E03 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 131 | EConsOther, // 0x0E04 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 132 | EConsOther, // 0x0E05 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 133 | EConsOther, // 0x0E06 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 134 | EConsDigraph, // 0x0E07 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 135 | EConsOther, // 0x0E08 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 136 | EConsOther, // 0x0E09 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 137 | EConsOther, // 0x0E0A | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 138 | EConsOther, // 0x0E0B | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 139 | EConsOther, // 0x0E0C | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 140 | EConsOther, // 0x0E0D | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 141 | EConsOther, // 0x0E0E | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 142 | EConsOther, // 0x0E0F | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 143 | |
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 144 | EConsOther, // 0x0E10 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 145 | EConsOther, // 0x0E11 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 146 | EConsOther, // 0x0E12 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 147 | EConsOther, // 0x0E13 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 148 | EConsOther, // 0x0E14 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 149 | EConsOther, // 0x0E15 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 150 | EConsOther, // 0x0E16 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 151 | EConsOther, // 0x0E17 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 152 | EConsOther, // 0x0E18 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 153 | EConsDigraph, // 0x0E19 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 154 | EConsOther, // 0x0E1A | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 155 | EConsOther, // 0x0E1B | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 156 | EConsOther, // 0x0E1C | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 157 | EConsOther, // 0x0E1D | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 158 | EConsOther, // 0x0E1E | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 159 | EConsOther, // 0x0E1F | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 160 | |
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 161 | EConsOther, // 0x0E20 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 162 | EConsDigraph, // 0x0E21 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 163 | EConsYoYak, // 0x0E22 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 164 | EConsDigraph, // 0x0E23 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 165 | EConsOther, // 0x0E24 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 166 | EConsDigraph, // 0x0E25 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 167 | EConsOther, // 0x0E26 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 168 | EConsWoWean, // 0x0E27 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 169 | EConsOther, // 0x0E28 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 170 | EConsOther, // 0x0E29 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 171 | EConsOther, // 0x0E2A | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 172 | EConsHoHip, // 0x0E2B | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 173 | EConsOther, // 0x0E2C | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 174 | EConsOAng, // 0x0E2D | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 175 | EConsOther, // 0x0E2E | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 176 | EOutOfRange, // 0x0E2F | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 177 | |
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 178 | EPostVowelA, // 0x0E30 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 179 | EDepMaiHanAkat, // 0x0E31 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 180 | EPostVowelAA, // 0x0E32 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 181 | EPostVowelOther,// 0x0E33 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 182 | |
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 183 | EDepSaraI, // 0x0E34 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 184 | EDepOther, // 0x0E35 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 185 | EDepOther, // 0x0E36 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 186 | EDepOther, // 0x0E37 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 187 | EDepOther, // 0x0E38 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 188 | EDepOther, // 0x0E39 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 189 | EDepOther, // 0x0E3A | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 190 | |
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 191 | EOutOfRange, // 0x0E3B | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 192 | EOutOfRange, // 0x0E3C | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 193 | EOutOfRange, // 0x0E3D | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 194 | EOutOfRange, // 0x0E3E | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 195 | EOutOfRange, // 0x0E3F | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 196 | |
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 197 | EPreVowel, // 0x0E40 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 198 | EPreVowel, // 0x0E41 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 199 | EPreVowel, // 0x0E42 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 200 | EPreVowel, // 0x0E43 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 201 | EPreVowel, // 0x0E44 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 202 | |
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 203 | EPostVowelOther,// 0x0E45 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 204 | EOutOfRange, // 0x0E46 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 205 | |
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 206 | EDepOther, // 0x0E47 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 207 | EDepOther, // 0x0E48 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 208 | EDepOther, // 0x0E49 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 209 | EDepOther, // 0x0E4A | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 210 | EDepOther, // 0x0E4B | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 211 | EDepOther, // 0x0E4C | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 212 | EDepOther, // 0x0E4D | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 213 | EDepOther, // 0x0E4E | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 214 | EOutOfRange, // 0x0E4F | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 215 | |
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 216 | EOutOfRange, // 0x0E50 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 217 | EOutOfRange, // 0x0E51 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 218 | EOutOfRange, // 0x0E52 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 219 | EOutOfRange, // 0x0E53 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 220 | EOutOfRange, // 0x0E54 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 221 | EOutOfRange, // 0x0E55 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 222 | EOutOfRange, // 0x0E56 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 223 | EOutOfRange, // 0x0E57 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 224 | EOutOfRange, // 0x0E58 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 225 | EOutOfRange, // 0x0E59 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 226 | EOutOfRange, // 0x0E5A | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 227 | EOutOfRange // 0x0E5B | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 228 | }; | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 229 | |
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 230 | const TUint32 KNormalBreaksBeforeCons = | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 231 | ThaiLinebreakRules::KPreVowelFlag | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 232 | | ThaiLinebreakRules::KConsOtherFlag | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 233 | | ThaiLinebreakRules::KConsDigraphFlag | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 234 | | ThaiLinebreakRules::KConsHoHipFlag | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 235 | | ThaiLinebreakRules::KOutOfRangeFlag; | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 236 | const TUint32 KNormalBreaksBeforePostVowel = | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 237 | ThaiLinebreakRules::KPreVowelFlag | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 238 | | ThaiLinebreakRules::KPostVowelFlags | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 239 | | ThaiLinebreakRules::KConsFlags | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 240 | | ThaiLinebreakRules::KOutOfRangeFlag; | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 241 | const TUint32 ThaiLinebreakRules::KRules[EMaxClassification] = | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 242 | 	{
 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 243 | /* Prev Char EOutOfRange */ | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 244 | KAllFlags - KOutOfRangeFlag, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 245 | /* Prev Char EConsOAng */ | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 246 | KNormalBreaksBeforeCons, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 247 | /* Prev Char EConsYoYak */ | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 248 | KNormalBreaksBeforeCons, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 249 | /* Prev Char EConsHoHip */ | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 250 | KNormalBreaksBeforeCons - KConsDigraphFlag, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 251 | /* Prev Char EConsWoWean */ | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 252 | KNormalBreaksBeforeCons - KConsDigraphFlag - KConsHoHipFlag, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 253 | /* Prev Char EConsDigraph */ | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 254 | KNormalBreaksBeforeCons, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 255 | /* Prev Char EConsOther */ | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 256 | KNormalBreaksBeforeCons, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 257 | /* Prev Char EPostVowelA */ | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 258 | KNormalBreaksBeforePostVowel, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 259 | /* Prev Char EPostVowelAA */ | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 260 | KNormalBreaksBeforePostVowel - KPostVowelAFlag, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 261 | /* Prev Char EPostVowelOther */ | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 262 | KNormalBreaksBeforePostVowel, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 263 | /* Prev Char EPreVowel */ | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 264 | KPreVowelFlag | KPostVowelFlags | KOutOfRangeFlag, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 265 | /* Prev Char EDepMaiHanAkat */ | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 266 | KSpecialDepFlags | KPreVowelFlag | KPostVowelAAFlag | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 267 | | KPostVowelAFlag | KOutOfRangeFlag, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 268 | /* Prev Char EDepSaraI */ | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 269 | KSpecialDepFlags | KPreVowelFlag | KPostVowelAAFlag | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 270 | | KPostVowelAFlag | KOutOfRangeFlag, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 271 | /* Prev Char EDepOther */ | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 272 | KSpecialDepFlags | KPreVowelFlag | KPostVowelAAFlag | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 273 | | KPostVowelAFlag | KConsOtherFlag | KConsDigraphFlag | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 274 | | KConsWoWeanFlag | KConsHoHipFlag | KOutOfRangeFlag | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 275 | }; | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 276 | |
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 277 | ThaiLinebreakRules::TCharClassification ThaiLinebreakRules::Class(TInt a) | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 278 |     {
 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 279 | return static_cast<TCharClassification>( | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 280 | (KThaiCodePageStart <= a && a < KThaiCodePageEnd) ? | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 281 | KCharClassifications[a - KThaiCodePageStart] : | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 282 | EOutOfRange); | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 283 | } | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 284 | |
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 285 | TBool ThaiLinebreakRules::IsCombiningChar(TInt aChar, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 286 | const MLineBreaker& aBreaker) | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 287 | 	{
 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 288 | TUint dummy1, dummy2; | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 289 | return aBreaker.LineBreakClass(aChar, dummy1, dummy2) == MLineBreaker::ECmLineBreakClass; | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 290 | } | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 291 | |
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 292 | ThaiLinebreakRules::TCharClassification ThaiLinebreakRules::DerivedClass( | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 293 | const TText* aChar, const TText* aStart, const MLineBreaker& aBreaker) | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 294 | 	{
 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 295 | ThaiLinebreakRules::TCharClassification c = Class(*aChar); | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 296 | while (c == EOutOfRange && aChar != aStart | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 297 | && IsCombiningChar(*aChar, aBreaker)) | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 298 | 		{
 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 299 | --aChar; | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 300 | c = Class(*aChar); | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 301 | } | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 302 | return c; | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 303 | } | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 304 | |
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 305 | TBool ThaiLinebreakRules::BreakAllowedBetween( | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 306 | ThaiLinebreakRules::TCharClassification aClass, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 307 | ThaiLinebreakRules::TCharClassification aNextClass) | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 308 | 	{
 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 309 | return KRules[aClass] & (1 << aNextClass); | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 310 | } | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 311 | |
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 312 | TBool ThaiLinebreakRules::BreakAllowedAt(const TText* aChar, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 313 | const TText* aStart, const MLineBreaker& aBreaker) | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 314 | 	{
 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 315 | __ASSERT_DEBUG(aStart < aChar, User::Invariant()); | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 316 | TCharClassification c = Class(*aChar); | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 317 | if (c == EOutOfRange && IsCombiningChar(*aChar, aBreaker)) | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 318 | return EFalse; | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 319 | return BreakAllowedBetween(DerivedClass(aChar - 1, aStart, aBreaker), c); | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 320 | } | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 321 | |
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 322 | /** | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 323 | Returns whether a line break is possible within a run of characters all having | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 324 | the class ESaLineBreakClass (Complex content). Languages with Unicocde | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 325 | characters having such a class include: Thai, Lao, Myanmar and Khmer. This | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 326 | default implementation of the GetLineBreakInContext() method only supports the | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 327 | Thai script. Breaks are determined in Thai based on a simple understanding of | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 328 | syllable boundaries. When characters from the other unsupported Sa class | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 329 | languages are found the method exits with EFalse. | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 330 | @param aText | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 331 | The text to be searched, which is a contiguous run of characters of class SA | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 332 | (or CM attatched to SA). The break position may be restricted further by | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 333 | aMinBreakPos and aMaxBreakPos, but more text is provided for extra context | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 334 | should it be needed. | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 335 | @param aMinBreakPos | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 336 | The start of the text to be considered for line breaks. | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 337 | @param aMaxBreakPos | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 338 | The end of the text to be considered for line breaks. | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 339 | @param aForwards | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 340 | ETrue if aBreakPos is to be set with the first legal break position, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 341 | EFalse if aBreakPos is to be set with the last legal break position. | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 342 | @param aBreakPos | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 343 | If break position found on exit its value is >= Min and <= Max | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 344 | positions supplied. | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 345 | @return TBool | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 346 | ETrue if and only if a legal break was found, EFalse otherwise. | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 347 | @publishedAll | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 348 | @released | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 349 | */ | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 350 | EXPORT_C TBool MLineBreaker::GetLineBreakInContext(const TDesC16& aText, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 351 | TInt aMinBreakPos, TInt aMaxBreakPos, TBool aForwards, | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 352 | TInt& aBreakPos) const | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 353 | 	{
 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 354 | __ASSERT_DEBUG (0 <= aMinBreakPos && aMaxBreakPos <= aText.Length(), | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 355 | Panic(ELineBreakPanic_InvalidInputParam)); | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 356 | |
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 357 | TInt length = aText.Length(); | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 358 | |
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 359 | if (aMinBreakPos < 1) | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 360 | aMinBreakPos = 1; | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 361 | if (length - 1 < aMaxBreakPos) | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 362 | aMaxBreakPos = length - 1; | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 363 | if (aMaxBreakPos < aMinBreakPos) | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 364 | return EFalse; | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 365 | |
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 366 | const TText16* text = aText.Ptr(); | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 367 | |
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 368 | if (*text == KZeroWidthSpace) | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 369 | 		{
 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 370 | aBreakPos = aMinBreakPos; | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 371 | return ETrue; | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 372 | } | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 373 | else if (*(text+length-1) == KZeroWidthSpace) | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 374 | return EFalse; | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 375 | |
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 376 | TInt start = aForwards? aMinBreakPos : aMaxBreakPos; | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 377 | TInt end = aForwards? aMaxBreakPos + 1 : aMinBreakPos - 1; | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 378 | TInt direction = aForwards? 1 : -1; | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 379 | for (TInt i = start; i != end; i += direction) | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 380 | 		{
 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 381 | if (ThaiLinebreakRules::BreakAllowedAt(text + i, text, *this)) | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 382 | 			{
 | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 383 | aBreakPos = i; | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 384 | return ETrue; | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 385 | } | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 386 | } | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 387 | return EFalse; | 
| 
5d03bc08d59c
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 388 | } |