graphicsdeviceinterface/gdi/sgdi/FontIndic.h
changeset 183 6a1564a2f3e6
parent 168 2bd88482bfe5
child 194 18f84489a694
--- a/graphicsdeviceinterface/gdi/sgdi/FontIndic.h	Thu Sep 02 21:50:40 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,487 +0,0 @@
-// Copyright (c) 2005-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:
-//
-
-#ifndef __FONTINDIC_H__
-#define __FONTINDIC_H__
-
-#include "GlyphSel.h"
-
-/** Defines the maximum ammount of text thats can be shaped at one time.
-Change this number to suit optimisation, as increasing it or decreasing it may 
-make Devanagari text faster/slower.*/
-const TInt KMaxTextToShape = 16;
-
-enum TIndicCodeType
-	{
-	// These values must not change without also changing
-	// KStateResponse table accordingly
-	EIndicCodeOther = 0,
-	EIndicCodeCombiningSign = 1,
-	EIndicCodeIndependentVowel = 2,
-	EIndicCodeConsonant = 3,
-	EIndicCodeDependentVowel = 4,
-	EIndicCodeVirama = 5,
-	EIndicCodeNukta = 6,
-	EIndicCodeZWJ = 7,
-	EIndicCodeNuktaConsonant = 8,
-	EIndicCodeIndependentVowelA = 9,
-	EIndicCodeDependentVowelCandraE = 10,
-	EIndicCodeConsonantKannadaBengaliRa = 11,
-	EIndicCodeSplitVowel1 = 12,
-	EIndicCodeSplitVowel2 = 13,
-	EIndicCodeTamilLengthMarkAU = 14,
-	//Gurmukhi specific types: EIndicCodeGurBeraer* for specific bearer
-	//EIndicCodeGurDependentVowel* for dependent vowles which can be combined 
-	//with corresponding bearer to form an independent vowlel
-	EIndicCodeGurBearerA = 15,
-	EIndicCodeGurBearerU = 16,
-	EIndicCodeGurBearerI = 17,
-	EIndicCodeGurDependentVowelA = 18,
-	EIndicCodeGurDependentVowelU = 19,
-	EIndicCodeGurDependentVowelI = 20,
-	EIndicCodeConsonantMalaChillu = 21,
-	EIndicCodeConsonantMalaChilluNA = 22,
-	EIndicCodeConsonantMalaRRA = 23
-	};
-	
-struct TIndicCodeMapping
-	{
-	TInt16 iFirstCodeInRange;
-	TInt16 iCodeType;	// From TIndicCodeType
-	};
-
-/** Holds the types of all the symbols in the devanagari range, so that we can
-work out where the syllable boundaries begin and end. */
-static const TIndicCodeMapping KDevCodeMap[] =
-	{
-	{0, EIndicCodeOther},
-	{0x901, EIndicCodeCombiningSign},
-	{0x904, EIndicCodeIndependentVowel},
-	{0x905, EIndicCodeIndependentVowelA},
-	{0x906, EIndicCodeIndependentVowel},
-	{0x915, EIndicCodeConsonant},
-	{0x929, EIndicCodeNuktaConsonant},
-	{0x92A, EIndicCodeConsonant},
-	{0x931, EIndicCodeNuktaConsonant},
-	{0x932, EIndicCodeConsonant},
-	{0x934, EIndicCodeNuktaConsonant},
-	{0x935, EIndicCodeConsonant},
-	{0x93A, EIndicCodeOther},
-	{0x93C, EIndicCodeNukta},
-	{0x93D, EIndicCodeOther},
-	{0x93E, EIndicCodeDependentVowel},
-	{0x945, EIndicCodeDependentVowelCandraE},
-	{0x946, EIndicCodeDependentVowel},
-	{0x94D, EIndicCodeVirama},
-	{0x94E, EIndicCodeOther},
-	{0x951, EIndicCodeCombiningSign},
-	{0x955, EIndicCodeConsonant},
-	{0x958, EIndicCodeNuktaConsonant},
-	{0x960, EIndicCodeIndependentVowel},
-	{0x962, EIndicCodeDependentVowel},
-	{0x964, EIndicCodeOther},
-	{0x200D, EIndicCodeZWJ},
-	{0x200E, EIndicCodeOther}
-	};
-	
-/** Holds the types of all the symbols in the Kannada range, so that we can
-work out where the syllable boundaries begin and end. */
-static const TIndicCodeMapping KKanCodeMap[] =
-	{
-	{0, EIndicCodeOther},
-	{0xC82, EIndicCodeCombiningSign},
-	{0xC85, EIndicCodeIndependentVowel},
-	{0xC95, EIndicCodeConsonant},
-	{0xCB0, EIndicCodeConsonantKannadaBengaliRa},
-	{0xCB1, EIndicCodeConsonant},
-	{0xCB4, EIndicCodeOther},
-	{0xCB5, EIndicCodeConsonant},
-	{0xCBA, EIndicCodeOther},
-	{0xCBC, EIndicCodeNukta},
-	{0xCBD, EIndicCodeOther},
-	{0xCBE, EIndicCodeDependentVowel},
-	{0xCC5, EIndicCodeOther},
-	{0xCC6, EIndicCodeDependentVowel},
-	{0xCCD, EIndicCodeVirama},
-	{0xCD5, EIndicCodeCombiningSign},
-	{0xCDE, EIndicCodeConsonant},
-	{0xCE0, EIndicCodeIndependentVowel},
-	{0xCE2, EIndicCodeDependentVowel},
-	{0xCE4, EIndicCodeOther},
-	{0x200D, EIndicCodeZWJ},
-	{0x200E, EIndicCodeOther}
-	};
-
-/** Holds the types of all the symbols in the Gujarati range, so that we can
-work out where the syllable boundaries begin and end. */
-static const TIndicCodeMapping KGujCodeMap[] =
-	{
-	{0, EIndicCodeOther},
-	{0xA81, EIndicCodeCombiningSign},
-	{0xA85, EIndicCodeIndependentVowel},
-	{0xA8E, EIndicCodeOther},
-	{0xA8F, EIndicCodeIndependentVowel},
-	{0xA92, EIndicCodeOther},
-	{0xA93, EIndicCodeIndependentVowel},
-	{0xA95, EIndicCodeConsonant},
-	{0xAA9, EIndicCodeOther},
-	{0xAAA, EIndicCodeConsonant},
-	{0xAB1, EIndicCodeOther},
-	{0xAB2, EIndicCodeConsonant},
-	{0xAB4, EIndicCodeOther},
-	{0xAB5, EIndicCodeConsonant},
-	{0xABC, EIndicCodeNukta},
-	{0xABD, EIndicCodeOther},
-	{0xABE, EIndicCodeDependentVowel},
-	{0xAC6, EIndicCodeOther},
-	{0xAC7, EIndicCodeDependentVowel},
-	{0xACA, EIndicCodeOther},
-	{0xACB, EIndicCodeDependentVowel},
-	{0xACD, EIndicCodeVirama},
-	{0xACE, EIndicCodeOther},
-	{0xAE0, EIndicCodeIndependentVowel},
-	{0xAE2, EIndicCodeDependentVowel},
-	{0xAE4, EIndicCodeOther},
-	{0x200D, EIndicCodeZWJ},
-	{0x200E, EIndicCodeOther}
-	};
-	
-/** Holds the types of all the symbols in the Gurmukhi range, so that we can
-work out where the syllable boundaries begin and end. */
-static const TIndicCodeMapping KGurCodeMap[] =
-	{
-	{0, EIndicCodeOther},
-	{0xA01, EIndicCodeCombiningSign},
-	{0xA04, EIndicCodeOther},
-	{0xA05, EIndicCodeGurBearerA},
-	{0xA06, EIndicCodeIndependentVowel},
-	{0xA0B, EIndicCodeOther},
-	{0xA0F, EIndicCodeIndependentVowel},
-	{0xA11, EIndicCodeOther},
-	{0xA13, EIndicCodeIndependentVowel},
-	{0xA15, EIndicCodeConsonant},
-	{0xA29, EIndicCodeOther},
-	{0xA2A, EIndicCodeConsonant},
-	{0xA31, EIndicCodeOther},
-	{0xA32, EIndicCodeConsonant},
-	{0xA33, EIndicCodeNuktaConsonant},
-	{0xA34, EIndicCodeOther},
-	{0xA35, EIndicCodeConsonant},
-	{0xA36, EIndicCodeNuktaConsonant},
-	{0xA37, EIndicCodeOther},
-	{0xA38, EIndicCodeConsonant},
-	{0xA3A, EIndicCodeOther},
-	{0xA3C, EIndicCodeNukta},
-	{0xA3D, EIndicCodeOther},
-	{0xA3E, EIndicCodeGurDependentVowelA},
-	{0xA3F, EIndicCodeGurDependentVowelI},
-	{0xA41, EIndicCodeGurDependentVowelU},
-	{0xA43, EIndicCodeOther},
-	{0xA47, EIndicCodeGurDependentVowelI},
-	{0xA48, EIndicCodeGurDependentVowelA},
-	{0xA49, EIndicCodeOther},
-	{0xA4B, EIndicCodeGurDependentVowelU},
-	{0xA4C, EIndicCodeGurDependentVowelA},
-	{0xA4D, EIndicCodeVirama},
-	{0xA4E, EIndicCodeOther},
-	{0xA59, EIndicCodeNuktaConsonant},
-	{0xA5C, EIndicCodeConsonant},
-	{0xA5D, EIndicCodeOther},
-	{0xA5E, EIndicCodeNuktaConsonant},
-	{0xA5F, EIndicCodeOther},
-	{0xA70, EIndicCodeCombiningSign},
-	{0xA71, EIndicCodeCombiningSign},
-	{0xA72, EIndicCodeGurBearerI},
-	{0xA73, EIndicCodeGurBearerU},
-	{0xA74, EIndicCodeOther},
-	{0x200D, EIndicCodeZWJ},
-	{0x200E, EIndicCodeOther}
-	};
-
-/** Holds the types of all the symbols in the Bengali range, so that we can
-work out where the syllable boundaries begin and end. */
-static const TIndicCodeMapping KBenCodeMap[] =
-	{
-	{0, EIndicCodeOther},
-	{0x981 , EIndicCodeCombiningSign},
-	{0x985 , EIndicCodeIndependentVowel},
-	{0x995 , EIndicCodeConsonant},
-	{0x9B0 , EIndicCodeConsonantKannadaBengaliRa},
-	{0x9B1 , EIndicCodeConsonant},
-	{0x9BA , EIndicCodeOther},
-	{0x9BC , EIndicCodeNukta},
-	{0x9BD , EIndicCodeOther},
-	{0x9BE , EIndicCodeDependentVowel},
-	{0x9C9 , EIndicCodeOther},
-	{0x9CB , EIndicCodeDependentVowel},
-	{0x9CD , EIndicCodeVirama},
-	{0x9CE , EIndicCodeOther},
-	{0x9D7 , EIndicCodeDependentVowel},
-	{0x9DC , EIndicCodeConsonant},
-	{0x9E0 , EIndicCodeIndependentVowel},
-	{0x9E2 , EIndicCodeDependentVowel},
-	{0x9E4 , EIndicCodeOther},
-	{0x200D, EIndicCodeZWJ},
-	{0x200E, EIndicCodeOther}
-	};
-
-/** Holds the types of all the symbols in the Tamil range, so that we can
-work out where the syllable boundaries begin and end. */
-static const TIndicCodeMapping KTamCodeMap[] =
-	{
-	{0, EIndicCodeOther},
-	{0xB82 , EIndicCodeCombiningSign},
-	{0xB83 , EIndicCodeIndependentVowel},
-	{0xB84 , EIndicCodeOther},
-	{0xB85 , EIndicCodeIndependentVowel},
-	{0xB92 , EIndicCodeIndependentVowelA},
-	{0xB93 , EIndicCodeIndependentVowel},
-	{0xB95 , EIndicCodeConsonant},
-	{0xBBE , EIndicCodeSplitVowel2},
-	{0xBBF , EIndicCodeDependentVowel},
-	{0xBC6 , EIndicCodeSplitVowel1},
-	{0xBC8 , EIndicCodeDependentVowel},
-	{0xBCD , EIndicCodeVirama},
-	{0xBCE , EIndicCodeOther},
-	{0xBD7 , EIndicCodeTamilLengthMarkAU},
-	{0xBE4 , EIndicCodeOther},
-	{0x200D, EIndicCodeZWJ},
-	{0x200E, EIndicCodeOther}
-	};
-
-/** Holds the types of all the symbols in the Telugu range, so that we can
-work out where the syllable boundaries begin and end. */
-static const TIndicCodeMapping KTelCodeMap[] =
-	{
-	{0, EIndicCodeOther},
-	{0xC01, EIndicCodeCombiningSign},
-	{0xC04, EIndicCodeOther},
-	{0xC05, EIndicCodeIndependentVowel},
-	{0xC15, EIndicCodeConsonant},
-	{0xC3A, EIndicCodeOther},
-	{0xC3E, EIndicCodeDependentVowel},
-	{0xC4D, EIndicCodeVirama},
-	{0xC4E, EIndicCodeOther},
-	{0xC55, EIndicCodeDependentVowel},
-	{0xC57, EIndicCodeOther},
-	{0xC60, EIndicCodeIndependentVowel},
-	{0xC62, EIndicCodeOther}
-	};
-
-/** Holds the types of all the symbols in the Malayalam range, so that we can
-work out where the syllable boundaries begin and end. */
-static const TIndicCodeMapping KMalaCodeMap[] =
-	{
-	{0, EIndicCodeOther}, // NOT USED D00 - D01
-	{0xD02, EIndicCodeCombiningSign}, // Modifiers
-	{0xD04, EIndicCodeOther}, // NOT USED
-	{0xD05, EIndicCodeIndependentVowel},
-//	{0xD0D, EIndicCodeOther}, // Reserved
-//	{0xD0E, EIndicCodeIndependentVowel},
-//	{0xD11, EIndicCodeOther}, // Reserved
-//	{0xD12, EIndicCodeIndependentVowel},
-	{0xD15, EIndicCodeConsonant},
-	{0xD23, EIndicCodeConsonantMalaChillu}, // NNA
-	{0xD24, EIndicCodeConsonant},
-	{0xD28, EIndicCodeConsonantMalaChilluNA}, // NA
-	{0xD29, EIndicCodeOther}, // Reserved
-	{0xD2A, EIndicCodeConsonant},
-	{0xD30, EIndicCodeConsonantMalaChillu}, // RA
-	{0xD31, EIndicCodeConsonantMalaRRA}, // RRA
-	{0xD32, EIndicCodeConsonantMalaChillu}, // LA,  LLA
-	{0xD34, EIndicCodeConsonant},
-	{0xD3A, EIndicCodeOther}, // NOT USED D3A - D3D
-	{0xD3E, EIndicCodeSplitVowel2},
-	{0xD3F, EIndicCodeDependentVowel},
-//	{0xD44, EIndicCodeOther}, // Reserved D44 - D45
-	{0xD46, EIndicCodeSplitVowel1},
-	{0xD48, EIndicCodeDependentVowel},
-//	{0xD49, EIndicCodeOther}, // Reserved D49
-//	{0xD4A, EIndicCodeDependentVowel},
-	{0xD4D, EIndicCodeVirama},
-	{0xD4E, EIndicCodeOther}, //Reserved D4E - D56
-	{0xD57, EIndicCodeTamilLengthMarkAU}, // EIndicCodeDependentVowel for Telugu ???
-	{0xD58, EIndicCodeOther}, // NOT USED D58 - D5F
-	{0xD60, EIndicCodeIndependentVowel}, // RR, LL
-	{0xD62, EIndicCodeOther}, // NOT USED D62 - D65, digits D66 - D6F	
-	{0x200D, EIndicCodeZWJ},
-	{0x200E, EIndicCodeOther}
-	};
-
-/* Holds all parameters specific to scripts */
-struct TIndicScriptProcessorParameters{
-	TUint32 iLanguageCode;
-	TUint32 iScriptCode;
-	TUint iUCLow;
-	TUint iUCHigh;
-	TUint iMapLen;
-	const TIndicCodeMapping *iCodeMap;
-};
-
-static const TIndicScriptProcessorParameters KIndicDevParameters = {
-	0x48494E20, //KHindiLanguageCode,	
-	0x64657661, //KDevanagariScriptCode,	
-	0x0900, //KDevLow,
-	0x0970, //KDevHigh,	
-	sizeof(KDevCodeMap)/sizeof(KDevCodeMap[0]),
-	KDevCodeMap
-};
-
-static const TIndicScriptProcessorParameters KIndicKanParameters = {
-	0x4B414E20, //KKannadaLanguageCode,	
-	0x6B6E6461, //KKannadaScriptCode,	
-	0x0C80, //KKanLow,
-	0x0CFF, //KKanHigh,	
-	sizeof(KKanCodeMap)/sizeof(KKanCodeMap[0]),
-	KKanCodeMap
-};
-
-static const TIndicScriptProcessorParameters KIndicGujParameters = {
-	0x47554A20, //KGujaratiLanguageCode,	
-	0x67756A72, //KGujaratiScriptCode,	
-	0x0A80, //KGujLow,
-	0x0AFF, //KGujHigh,	
-	sizeof(KGujCodeMap)/sizeof(KGujCodeMap[0]),
-	KGujCodeMap
-};
-
-static const TIndicScriptProcessorParameters KIndicBenParameters = {
-	0x42454E20, //KBengaliLanguageCode,	
-	0x62656E67, //KBengaliScriptCode,	
-	0x0980, //KBenLow,
-	0x09FF, //KBenHigh,	
-	sizeof(KBenCodeMap)/sizeof(KBenCodeMap[0]),
-	KBenCodeMap
-};
-
-static const TIndicScriptProcessorParameters KIndicTamParameters = {
-	0x54414D20, //KTamilLanguageCode,	
-	0x74616D6C, //KTamilScriptCode,
-	0x0B80, //KTamLow,
-	0x0BFF, //KTamHigh,	
-	sizeof(KTamCodeMap)/sizeof(KTamCodeMap[0]),
-	KTamCodeMap
-};
-
-static const TIndicScriptProcessorParameters KIndicTelParameters = {
-	0x54454C20, //KTeluguLanguageCode,	
-	0x74656C75, //KTeluguScriptCode,
-	0x0C00, //KTelLow,
-	0x0C7F, //KTelHigh,	
-	sizeof(KTelCodeMap)/sizeof(KTelCodeMap[0]),
-	KTelCodeMap
-};
-
-static const TIndicScriptProcessorParameters KIndicGurParameters = {
-	0x00000000,	//KGurmukhiLanguageCode,
-	0x67757275, //KGurmukhiScriptCode,
-	0x0A00, //KGurLow,
-	0x0A7F, //KGurHigh,
-	sizeof(KGurCodeMap)/sizeof(KGurCodeMap[0]),
-	KGurCodeMap
-};
-
-static const TIndicScriptProcessorParameters KIndicMalParameters = {
-	0x4D4C5220, //KMalayalamLanguageCode,	
-	0x6D6C796D, //KMalayalamScriptCode,
-	0x0D00, //KMalaLow,
-	0x0D7F, //KMalaHigh,	
-	sizeof(KMalaCodeMap)/sizeof(KMalaCodeMap[0]),
-	KMalaCodeMap
-};
-
-/** This is the default glyph selector class for Devanagari characters in the
-range 0x0900..0x097F.
-@internalComponent
-*/
-class GlyphSelector_Devanagari
-	{
-public:
-	static TBool Process(TGlyphSelectionState& aGss, RShapeInfo&);
-	};
-
-
-/** This is the default glyph selector class for Kannada characters in the
-range 0x0C80..0x0CFF.
-@internalComponent
-*/
-class GlyphSelector_Kannada
-	{
-public:
-	static TBool Process(TGlyphSelectionState& aGss, RShapeInfo&);
-	};
-	
-
-/** This is the default glyph selector class for Gujarati characters in the
-range 0x0A80..0x0AFF.
-@internalComponent
-*/
-class GlyphSelector_Gujarati
-	{
-public:
-	static TBool Process(TGlyphSelectionState& aGss, RShapeInfo&);
-	};
-	
-/** This is the default glyph selector class for Bengali characters in the
-range 0x0980..0x09FF.
-@internalComponent
-*/
-class GlyphSelector_Bengali
-	{
-public:
-	static TBool Process(TGlyphSelectionState& aGss, RShapeInfo&);
-	};
-	
-/** This is the default glyph selector class for Tamil characters in the
-range 0x0B80..0x0BFF.
-@internalComponent
-*/
-class GlyphSelector_Tamil
-	{
-public:
-	static TBool Process(TGlyphSelectionState& aGss, RShapeInfo&);
-	};
-
-/** This is the default glyph selector class for Telugu characters in the
-range 0x0C00..0x0C7F.
-@internalComponent
-*/
-class GlyphSelector_Telugu
-	{
-public:
-	static TBool Process(TGlyphSelectionState& aGss, RShapeInfo&);
-	};
-
-/** This is the default glyph selector class for Gurmukhi characters in the
-range 0x0A00..0x0A7F.
-@internalComponent
-*/
-class GlyphSelector_Gurmukhi
-	{
-public:
-	static TBool Process(TGlyphSelectionState& aGss, RShapeInfo&);
-	};
-
-/** This is the default glyph selector class for Malayalam characters in the
-range 0x0D00..0x0D7F.
-@internalComponent
-*/
-class GlyphSelector_Malayalam
-	{
-public:
-	static TBool Process(TGlyphSelectionState& aGss, RShapeInfo&);
-	};
-
-#endif