1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/os/graphics/graphicsdeviceinterface/gdi/sgdi/FontIndic.h Fri Jun 15 03:10:57 2012 +0200
1.3 @@ -0,0 +1,487 @@
1.4 +// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
1.5 +// All rights reserved.
1.6 +// This component and the accompanying materials are made available
1.7 +// under the terms of "Eclipse Public License v1.0"
1.8 +// which accompanies this distribution, and is available
1.9 +// at the URL "http://www.eclipse.org/legal/epl-v10.html".
1.10 +//
1.11 +// Initial Contributors:
1.12 +// Nokia Corporation - initial contribution.
1.13 +//
1.14 +// Contributors:
1.15 +//
1.16 +// Description:
1.17 +//
1.18 +
1.19 +#ifndef __FONTINDIC_H__
1.20 +#define __FONTINDIC_H__
1.21 +
1.22 +#include "GlyphSel.h"
1.23 +
1.24 +/** Defines the maximum ammount of text thats can be shaped at one time.
1.25 +Change this number to suit optimisation, as increasing it or decreasing it may
1.26 +make Devanagari text faster/slower.*/
1.27 +const TInt KMaxTextToShape = 16;
1.28 +
1.29 +enum TIndicCodeType
1.30 + {
1.31 + // These values must not change without also changing
1.32 + // KStateResponse table accordingly
1.33 + EIndicCodeOther = 0,
1.34 + EIndicCodeCombiningSign = 1,
1.35 + EIndicCodeIndependentVowel = 2,
1.36 + EIndicCodeConsonant = 3,
1.37 + EIndicCodeDependentVowel = 4,
1.38 + EIndicCodeVirama = 5,
1.39 + EIndicCodeNukta = 6,
1.40 + EIndicCodeZWJ = 7,
1.41 + EIndicCodeNuktaConsonant = 8,
1.42 + EIndicCodeIndependentVowelA = 9,
1.43 + EIndicCodeDependentVowelCandraE = 10,
1.44 + EIndicCodeConsonantKannadaBengaliRa = 11,
1.45 + EIndicCodeSplitVowel1 = 12,
1.46 + EIndicCodeSplitVowel2 = 13,
1.47 + EIndicCodeTamilLengthMarkAU = 14,
1.48 + //Gurmukhi specific types: EIndicCodeGurBeraer* for specific bearer
1.49 + //EIndicCodeGurDependentVowel* for dependent vowles which can be combined
1.50 + //with corresponding bearer to form an independent vowlel
1.51 + EIndicCodeGurBearerA = 15,
1.52 + EIndicCodeGurBearerU = 16,
1.53 + EIndicCodeGurBearerI = 17,
1.54 + EIndicCodeGurDependentVowelA = 18,
1.55 + EIndicCodeGurDependentVowelU = 19,
1.56 + EIndicCodeGurDependentVowelI = 20,
1.57 + EIndicCodeConsonantMalaChillu = 21,
1.58 + EIndicCodeConsonantMalaChilluNA = 22,
1.59 + EIndicCodeConsonantMalaRRA = 23
1.60 + };
1.61 +
1.62 +struct TIndicCodeMapping
1.63 + {
1.64 + TInt16 iFirstCodeInRange;
1.65 + TInt16 iCodeType; // From TIndicCodeType
1.66 + };
1.67 +
1.68 +/** Holds the types of all the symbols in the devanagari range, so that we can
1.69 +work out where the syllable boundaries begin and end. */
1.70 +static const TIndicCodeMapping KDevCodeMap[] =
1.71 + {
1.72 + {0, EIndicCodeOther},
1.73 + {0x901, EIndicCodeCombiningSign},
1.74 + {0x904, EIndicCodeIndependentVowel},
1.75 + {0x905, EIndicCodeIndependentVowelA},
1.76 + {0x906, EIndicCodeIndependentVowel},
1.77 + {0x915, EIndicCodeConsonant},
1.78 + {0x929, EIndicCodeNuktaConsonant},
1.79 + {0x92A, EIndicCodeConsonant},
1.80 + {0x931, EIndicCodeNuktaConsonant},
1.81 + {0x932, EIndicCodeConsonant},
1.82 + {0x934, EIndicCodeNuktaConsonant},
1.83 + {0x935, EIndicCodeConsonant},
1.84 + {0x93A, EIndicCodeOther},
1.85 + {0x93C, EIndicCodeNukta},
1.86 + {0x93D, EIndicCodeOther},
1.87 + {0x93E, EIndicCodeDependentVowel},
1.88 + {0x945, EIndicCodeDependentVowelCandraE},
1.89 + {0x946, EIndicCodeDependentVowel},
1.90 + {0x94D, EIndicCodeVirama},
1.91 + {0x94E, EIndicCodeOther},
1.92 + {0x951, EIndicCodeCombiningSign},
1.93 + {0x955, EIndicCodeConsonant},
1.94 + {0x958, EIndicCodeNuktaConsonant},
1.95 + {0x960, EIndicCodeIndependentVowel},
1.96 + {0x962, EIndicCodeDependentVowel},
1.97 + {0x964, EIndicCodeOther},
1.98 + {0x200D, EIndicCodeZWJ},
1.99 + {0x200E, EIndicCodeOther}
1.100 + };
1.101 +
1.102 +/** Holds the types of all the symbols in the Kannada range, so that we can
1.103 +work out where the syllable boundaries begin and end. */
1.104 +static const TIndicCodeMapping KKanCodeMap[] =
1.105 + {
1.106 + {0, EIndicCodeOther},
1.107 + {0xC82, EIndicCodeCombiningSign},
1.108 + {0xC85, EIndicCodeIndependentVowel},
1.109 + {0xC95, EIndicCodeConsonant},
1.110 + {0xCB0, EIndicCodeConsonantKannadaBengaliRa},
1.111 + {0xCB1, EIndicCodeConsonant},
1.112 + {0xCB4, EIndicCodeOther},
1.113 + {0xCB5, EIndicCodeConsonant},
1.114 + {0xCBA, EIndicCodeOther},
1.115 + {0xCBC, EIndicCodeNukta},
1.116 + {0xCBD, EIndicCodeOther},
1.117 + {0xCBE, EIndicCodeDependentVowel},
1.118 + {0xCC5, EIndicCodeOther},
1.119 + {0xCC6, EIndicCodeDependentVowel},
1.120 + {0xCCD, EIndicCodeVirama},
1.121 + {0xCD5, EIndicCodeCombiningSign},
1.122 + {0xCDE, EIndicCodeConsonant},
1.123 + {0xCE0, EIndicCodeIndependentVowel},
1.124 + {0xCE2, EIndicCodeDependentVowel},
1.125 + {0xCE4, EIndicCodeOther},
1.126 + {0x200D, EIndicCodeZWJ},
1.127 + {0x200E, EIndicCodeOther}
1.128 + };
1.129 +
1.130 +/** Holds the types of all the symbols in the Gujarati range, so that we can
1.131 +work out where the syllable boundaries begin and end. */
1.132 +static const TIndicCodeMapping KGujCodeMap[] =
1.133 + {
1.134 + {0, EIndicCodeOther},
1.135 + {0xA81, EIndicCodeCombiningSign},
1.136 + {0xA85, EIndicCodeIndependentVowel},
1.137 + {0xA8E, EIndicCodeOther},
1.138 + {0xA8F, EIndicCodeIndependentVowel},
1.139 + {0xA92, EIndicCodeOther},
1.140 + {0xA93, EIndicCodeIndependentVowel},
1.141 + {0xA95, EIndicCodeConsonant},
1.142 + {0xAA9, EIndicCodeOther},
1.143 + {0xAAA, EIndicCodeConsonant},
1.144 + {0xAB1, EIndicCodeOther},
1.145 + {0xAB2, EIndicCodeConsonant},
1.146 + {0xAB4, EIndicCodeOther},
1.147 + {0xAB5, EIndicCodeConsonant},
1.148 + {0xABC, EIndicCodeNukta},
1.149 + {0xABD, EIndicCodeOther},
1.150 + {0xABE, EIndicCodeDependentVowel},
1.151 + {0xAC6, EIndicCodeOther},
1.152 + {0xAC7, EIndicCodeDependentVowel},
1.153 + {0xACA, EIndicCodeOther},
1.154 + {0xACB, EIndicCodeDependentVowel},
1.155 + {0xACD, EIndicCodeVirama},
1.156 + {0xACE, EIndicCodeOther},
1.157 + {0xAE0, EIndicCodeIndependentVowel},
1.158 + {0xAE2, EIndicCodeDependentVowel},
1.159 + {0xAE4, EIndicCodeOther},
1.160 + {0x200D, EIndicCodeZWJ},
1.161 + {0x200E, EIndicCodeOther}
1.162 + };
1.163 +
1.164 +/** Holds the types of all the symbols in the Gurmukhi range, so that we can
1.165 +work out where the syllable boundaries begin and end. */
1.166 +static const TIndicCodeMapping KGurCodeMap[] =
1.167 + {
1.168 + {0, EIndicCodeOther},
1.169 + {0xA01, EIndicCodeCombiningSign},
1.170 + {0xA04, EIndicCodeOther},
1.171 + {0xA05, EIndicCodeGurBearerA},
1.172 + {0xA06, EIndicCodeIndependentVowel},
1.173 + {0xA0B, EIndicCodeOther},
1.174 + {0xA0F, EIndicCodeIndependentVowel},
1.175 + {0xA11, EIndicCodeOther},
1.176 + {0xA13, EIndicCodeIndependentVowel},
1.177 + {0xA15, EIndicCodeConsonant},
1.178 + {0xA29, EIndicCodeOther},
1.179 + {0xA2A, EIndicCodeConsonant},
1.180 + {0xA31, EIndicCodeOther},
1.181 + {0xA32, EIndicCodeConsonant},
1.182 + {0xA33, EIndicCodeNuktaConsonant},
1.183 + {0xA34, EIndicCodeOther},
1.184 + {0xA35, EIndicCodeConsonant},
1.185 + {0xA36, EIndicCodeNuktaConsonant},
1.186 + {0xA37, EIndicCodeOther},
1.187 + {0xA38, EIndicCodeConsonant},
1.188 + {0xA3A, EIndicCodeOther},
1.189 + {0xA3C, EIndicCodeNukta},
1.190 + {0xA3D, EIndicCodeOther},
1.191 + {0xA3E, EIndicCodeGurDependentVowelA},
1.192 + {0xA3F, EIndicCodeGurDependentVowelI},
1.193 + {0xA41, EIndicCodeGurDependentVowelU},
1.194 + {0xA43, EIndicCodeOther},
1.195 + {0xA47, EIndicCodeGurDependentVowelI},
1.196 + {0xA48, EIndicCodeGurDependentVowelA},
1.197 + {0xA49, EIndicCodeOther},
1.198 + {0xA4B, EIndicCodeGurDependentVowelU},
1.199 + {0xA4C, EIndicCodeGurDependentVowelA},
1.200 + {0xA4D, EIndicCodeVirama},
1.201 + {0xA4E, EIndicCodeOther},
1.202 + {0xA59, EIndicCodeNuktaConsonant},
1.203 + {0xA5C, EIndicCodeConsonant},
1.204 + {0xA5D, EIndicCodeOther},
1.205 + {0xA5E, EIndicCodeNuktaConsonant},
1.206 + {0xA5F, EIndicCodeOther},
1.207 + {0xA70, EIndicCodeCombiningSign},
1.208 + {0xA71, EIndicCodeCombiningSign},
1.209 + {0xA72, EIndicCodeGurBearerI},
1.210 + {0xA73, EIndicCodeGurBearerU},
1.211 + {0xA74, EIndicCodeOther},
1.212 + {0x200D, EIndicCodeZWJ},
1.213 + {0x200E, EIndicCodeOther}
1.214 + };
1.215 +
1.216 +/** Holds the types of all the symbols in the Bengali range, so that we can
1.217 +work out where the syllable boundaries begin and end. */
1.218 +static const TIndicCodeMapping KBenCodeMap[] =
1.219 + {
1.220 + {0, EIndicCodeOther},
1.221 + {0x981 , EIndicCodeCombiningSign},
1.222 + {0x985 , EIndicCodeIndependentVowel},
1.223 + {0x995 , EIndicCodeConsonant},
1.224 + {0x9B0 , EIndicCodeConsonantKannadaBengaliRa},
1.225 + {0x9B1 , EIndicCodeConsonant},
1.226 + {0x9BA , EIndicCodeOther},
1.227 + {0x9BC , EIndicCodeNukta},
1.228 + {0x9BD , EIndicCodeOther},
1.229 + {0x9BE , EIndicCodeDependentVowel},
1.230 + {0x9C9 , EIndicCodeOther},
1.231 + {0x9CB , EIndicCodeDependentVowel},
1.232 + {0x9CD , EIndicCodeVirama},
1.233 + {0x9CE , EIndicCodeOther},
1.234 + {0x9D7 , EIndicCodeDependentVowel},
1.235 + {0x9DC , EIndicCodeConsonant},
1.236 + {0x9E0 , EIndicCodeIndependentVowel},
1.237 + {0x9E2 , EIndicCodeDependentVowel},
1.238 + {0x9E4 , EIndicCodeOther},
1.239 + {0x200D, EIndicCodeZWJ},
1.240 + {0x200E, EIndicCodeOther}
1.241 + };
1.242 +
1.243 +/** Holds the types of all the symbols in the Tamil range, so that we can
1.244 +work out where the syllable boundaries begin and end. */
1.245 +static const TIndicCodeMapping KTamCodeMap[] =
1.246 + {
1.247 + {0, EIndicCodeOther},
1.248 + {0xB82 , EIndicCodeCombiningSign},
1.249 + {0xB83 , EIndicCodeIndependentVowel},
1.250 + {0xB84 , EIndicCodeOther},
1.251 + {0xB85 , EIndicCodeIndependentVowel},
1.252 + {0xB92 , EIndicCodeIndependentVowelA},
1.253 + {0xB93 , EIndicCodeIndependentVowel},
1.254 + {0xB95 , EIndicCodeConsonant},
1.255 + {0xBBE , EIndicCodeSplitVowel2},
1.256 + {0xBBF , EIndicCodeDependentVowel},
1.257 + {0xBC6 , EIndicCodeSplitVowel1},
1.258 + {0xBC8 , EIndicCodeDependentVowel},
1.259 + {0xBCD , EIndicCodeVirama},
1.260 + {0xBCE , EIndicCodeOther},
1.261 + {0xBD7 , EIndicCodeTamilLengthMarkAU},
1.262 + {0xBE4 , EIndicCodeOther},
1.263 + {0x200D, EIndicCodeZWJ},
1.264 + {0x200E, EIndicCodeOther}
1.265 + };
1.266 +
1.267 +/** Holds the types of all the symbols in the Telugu range, so that we can
1.268 +work out where the syllable boundaries begin and end. */
1.269 +static const TIndicCodeMapping KTelCodeMap[] =
1.270 + {
1.271 + {0, EIndicCodeOther},
1.272 + {0xC01, EIndicCodeCombiningSign},
1.273 + {0xC04, EIndicCodeOther},
1.274 + {0xC05, EIndicCodeIndependentVowel},
1.275 + {0xC15, EIndicCodeConsonant},
1.276 + {0xC3A, EIndicCodeOther},
1.277 + {0xC3E, EIndicCodeDependentVowel},
1.278 + {0xC4D, EIndicCodeVirama},
1.279 + {0xC4E, EIndicCodeOther},
1.280 + {0xC55, EIndicCodeDependentVowel},
1.281 + {0xC57, EIndicCodeOther},
1.282 + {0xC60, EIndicCodeIndependentVowel},
1.283 + {0xC62, EIndicCodeOther}
1.284 + };
1.285 +
1.286 +/** Holds the types of all the symbols in the Malayalam range, so that we can
1.287 +work out where the syllable boundaries begin and end. */
1.288 +static const TIndicCodeMapping KMalaCodeMap[] =
1.289 + {
1.290 + {0, EIndicCodeOther}, // NOT USED D00 - D01
1.291 + {0xD02, EIndicCodeCombiningSign}, // Modifiers
1.292 + {0xD04, EIndicCodeOther}, // NOT USED
1.293 + {0xD05, EIndicCodeIndependentVowel},
1.294 +// {0xD0D, EIndicCodeOther}, // Reserved
1.295 +// {0xD0E, EIndicCodeIndependentVowel},
1.296 +// {0xD11, EIndicCodeOther}, // Reserved
1.297 +// {0xD12, EIndicCodeIndependentVowel},
1.298 + {0xD15, EIndicCodeConsonant},
1.299 + {0xD23, EIndicCodeConsonantMalaChillu}, // NNA
1.300 + {0xD24, EIndicCodeConsonant},
1.301 + {0xD28, EIndicCodeConsonantMalaChilluNA}, // NA
1.302 + {0xD29, EIndicCodeOther}, // Reserved
1.303 + {0xD2A, EIndicCodeConsonant},
1.304 + {0xD30, EIndicCodeConsonantMalaChillu}, // RA
1.305 + {0xD31, EIndicCodeConsonantMalaRRA}, // RRA
1.306 + {0xD32, EIndicCodeConsonantMalaChillu}, // LA, LLA
1.307 + {0xD34, EIndicCodeConsonant},
1.308 + {0xD3A, EIndicCodeOther}, // NOT USED D3A - D3D
1.309 + {0xD3E, EIndicCodeSplitVowel2},
1.310 + {0xD3F, EIndicCodeDependentVowel},
1.311 +// {0xD44, EIndicCodeOther}, // Reserved D44 - D45
1.312 + {0xD46, EIndicCodeSplitVowel1},
1.313 + {0xD48, EIndicCodeDependentVowel},
1.314 +// {0xD49, EIndicCodeOther}, // Reserved D49
1.315 +// {0xD4A, EIndicCodeDependentVowel},
1.316 + {0xD4D, EIndicCodeVirama},
1.317 + {0xD4E, EIndicCodeOther}, //Reserved D4E - D56
1.318 + {0xD57, EIndicCodeTamilLengthMarkAU}, // EIndicCodeDependentVowel for Telugu ???
1.319 + {0xD58, EIndicCodeOther}, // NOT USED D58 - D5F
1.320 + {0xD60, EIndicCodeIndependentVowel}, // RR, LL
1.321 + {0xD62, EIndicCodeOther}, // NOT USED D62 - D65, digits D66 - D6F
1.322 + {0x200D, EIndicCodeZWJ},
1.323 + {0x200E, EIndicCodeOther}
1.324 + };
1.325 +
1.326 +/* Holds all parameters specific to scripts */
1.327 +struct TIndicScriptProcessorParameters{
1.328 + TUint32 iLanguageCode;
1.329 + TUint32 iScriptCode;
1.330 + TUint iUCLow;
1.331 + TUint iUCHigh;
1.332 + TUint iMapLen;
1.333 + const TIndicCodeMapping *iCodeMap;
1.334 +};
1.335 +
1.336 +static const TIndicScriptProcessorParameters KIndicDevParameters = {
1.337 + 0x48494E20, //KHindiLanguageCode,
1.338 + 0x64657661, //KDevanagariScriptCode,
1.339 + 0x0900, //KDevLow,
1.340 + 0x0970, //KDevHigh,
1.341 + sizeof(KDevCodeMap)/sizeof(KDevCodeMap[0]),
1.342 + KDevCodeMap
1.343 +};
1.344 +
1.345 +static const TIndicScriptProcessorParameters KIndicKanParameters = {
1.346 + 0x4B414E20, //KKannadaLanguageCode,
1.347 + 0x6B6E6461, //KKannadaScriptCode,
1.348 + 0x0C80, //KKanLow,
1.349 + 0x0CFF, //KKanHigh,
1.350 + sizeof(KKanCodeMap)/sizeof(KKanCodeMap[0]),
1.351 + KKanCodeMap
1.352 +};
1.353 +
1.354 +static const TIndicScriptProcessorParameters KIndicGujParameters = {
1.355 + 0x47554A20, //KGujaratiLanguageCode,
1.356 + 0x67756A72, //KGujaratiScriptCode,
1.357 + 0x0A80, //KGujLow,
1.358 + 0x0AFF, //KGujHigh,
1.359 + sizeof(KGujCodeMap)/sizeof(KGujCodeMap[0]),
1.360 + KGujCodeMap
1.361 +};
1.362 +
1.363 +static const TIndicScriptProcessorParameters KIndicBenParameters = {
1.364 + 0x42454E20, //KBengaliLanguageCode,
1.365 + 0x62656E67, //KBengaliScriptCode,
1.366 + 0x0980, //KBenLow,
1.367 + 0x09FF, //KBenHigh,
1.368 + sizeof(KBenCodeMap)/sizeof(KBenCodeMap[0]),
1.369 + KBenCodeMap
1.370 +};
1.371 +
1.372 +static const TIndicScriptProcessorParameters KIndicTamParameters = {
1.373 + 0x54414D20, //KTamilLanguageCode,
1.374 + 0x74616D6C, //KTamilScriptCode,
1.375 + 0x0B80, //KTamLow,
1.376 + 0x0BFF, //KTamHigh,
1.377 + sizeof(KTamCodeMap)/sizeof(KTamCodeMap[0]),
1.378 + KTamCodeMap
1.379 +};
1.380 +
1.381 +static const TIndicScriptProcessorParameters KIndicTelParameters = {
1.382 + 0x54454C20, //KTeluguLanguageCode,
1.383 + 0x74656C75, //KTeluguScriptCode,
1.384 + 0x0C00, //KTelLow,
1.385 + 0x0C7F, //KTelHigh,
1.386 + sizeof(KTelCodeMap)/sizeof(KTelCodeMap[0]),
1.387 + KTelCodeMap
1.388 +};
1.389 +
1.390 +static const TIndicScriptProcessorParameters KIndicGurParameters = {
1.391 + 0x00000000, //KGurmukhiLanguageCode,
1.392 + 0x67757275, //KGurmukhiScriptCode,
1.393 + 0x0A00, //KGurLow,
1.394 + 0x0A7F, //KGurHigh,
1.395 + sizeof(KGurCodeMap)/sizeof(KGurCodeMap[0]),
1.396 + KGurCodeMap
1.397 +};
1.398 +
1.399 +static const TIndicScriptProcessorParameters KIndicMalParameters = {
1.400 + 0x4D4C5220, //KMalayalamLanguageCode,
1.401 + 0x6D6C796D, //KMalayalamScriptCode,
1.402 + 0x0D00, //KMalaLow,
1.403 + 0x0D7F, //KMalaHigh,
1.404 + sizeof(KMalaCodeMap)/sizeof(KMalaCodeMap[0]),
1.405 + KMalaCodeMap
1.406 +};
1.407 +
1.408 +/** This is the default glyph selector class for Devanagari characters in the
1.409 +range 0x0900..0x097F.
1.410 +@internalComponent
1.411 +*/
1.412 +class GlyphSelector_Devanagari
1.413 + {
1.414 +public:
1.415 + static TBool Process(TGlyphSelectionState& aGss, RShapeInfo&);
1.416 + };
1.417 +
1.418 +
1.419 +/** This is the default glyph selector class for Kannada characters in the
1.420 +range 0x0C80..0x0CFF.
1.421 +@internalComponent
1.422 +*/
1.423 +class GlyphSelector_Kannada
1.424 + {
1.425 +public:
1.426 + static TBool Process(TGlyphSelectionState& aGss, RShapeInfo&);
1.427 + };
1.428 +
1.429 +
1.430 +/** This is the default glyph selector class for Gujarati characters in the
1.431 +range 0x0A80..0x0AFF.
1.432 +@internalComponent
1.433 +*/
1.434 +class GlyphSelector_Gujarati
1.435 + {
1.436 +public:
1.437 + static TBool Process(TGlyphSelectionState& aGss, RShapeInfo&);
1.438 + };
1.439 +
1.440 +/** This is the default glyph selector class for Bengali characters in the
1.441 +range 0x0980..0x09FF.
1.442 +@internalComponent
1.443 +*/
1.444 +class GlyphSelector_Bengali
1.445 + {
1.446 +public:
1.447 + static TBool Process(TGlyphSelectionState& aGss, RShapeInfo&);
1.448 + };
1.449 +
1.450 +/** This is the default glyph selector class for Tamil characters in the
1.451 +range 0x0B80..0x0BFF.
1.452 +@internalComponent
1.453 +*/
1.454 +class GlyphSelector_Tamil
1.455 + {
1.456 +public:
1.457 + static TBool Process(TGlyphSelectionState& aGss, RShapeInfo&);
1.458 + };
1.459 +
1.460 +/** This is the default glyph selector class for Telugu characters in the
1.461 +range 0x0C00..0x0C7F.
1.462 +@internalComponent
1.463 +*/
1.464 +class GlyphSelector_Telugu
1.465 + {
1.466 +public:
1.467 + static TBool Process(TGlyphSelectionState& aGss, RShapeInfo&);
1.468 + };
1.469 +
1.470 +/** This is the default glyph selector class for Gurmukhi characters in the
1.471 +range 0x0A00..0x0A7F.
1.472 +@internalComponent
1.473 +*/
1.474 +class GlyphSelector_Gurmukhi
1.475 + {
1.476 +public:
1.477 + static TBool Process(TGlyphSelectionState& aGss, RShapeInfo&);
1.478 + };
1.479 +
1.480 +/** This is the default glyph selector class for Malayalam characters in the
1.481 +range 0x0D00..0x0D7F.
1.482 +@internalComponent
1.483 +*/
1.484 +class GlyphSelector_Malayalam
1.485 + {
1.486 +public:
1.487 + static TBool Process(TGlyphSelectionState& aGss, RShapeInfo&);
1.488 + };
1.489 +
1.490 +#endif