diff -r ba33815114d6 -r abcbdabaa4c5 fontsupport/fontprovider/Src/FontProvider.cpp --- a/fontsupport/fontprovider/Src/FontProvider.cpp Thu Jan 07 13:25:09 2010 +0200 +++ b/fontsupport/fontprovider/Src/FontProvider.cpp Mon Jan 18 21:12:52 2010 +0200 @@ -100,15 +100,6 @@ _LIT(KS60TCHKHRSANSTTLSMBLDLF, "S60TCHKHRSANSTTLSMBLDLF"); //end -//browser link fonts start -//Western Content Linked fonts -_LIT(KS60LATAMTREG, "S60LATAMTREG"); -_LIT(KS60LATAMTBLD, "S60LATAMTBLD"); -_LIT(KS60LATTHOREG, "S60LATTHOREG"); -_LIT(KS60LATTHOBLD, "S60LATTHOBLD"); -_LIT(KS60LATCUMREG, "S60LATCUMREG"); -_LIT(KS60LATCUMBLD, "S60LATCUMBLD"); -//browser link fonts stop // Texts for measuring maximum ascents and descents: _LIT(KWesternFontMaxExtentText, "\x00C1\x00C7" ); @@ -135,9 +126,6 @@ //chinese adaptation #define ELanguageSupportChineseFontLinking 0x00400000 //end -//additional browser fonts -#define ELanguageAdditionalContentFonts 0x00800000 -//end #define ELanguageSupportDevanagari 0x01000000 #define ELanguageSupportS60PrivateUseArea1 0x10000000 @@ -228,16 +216,11 @@ | ELanguageSupportChineseHiRes \ | ELanguageSupportChineseFontLinking ) //end -//browser -#define EElafLangsBrowserFonts ( EElafLangs \ - |ELanguageAdditionalContentFonts) -//end + // Wildcard value for langs (font is to be used for all languages) #define EAnyLangs 0xffffffff const TInt KAknFontStylesSupported(3); -const TInt KAknAdditionalBrowserFonts(6); - enum TAknLinkedFontTypes { EAknSystemLinkedFonts, @@ -496,17 +479,10 @@ _LIT(KSerif, "serif"); _LIT(KMonospace, "monospaced"); _LIT(KCourier, "courier"); -_LIT(KCourierNew, "courier new"); -_LIT(KBaskerville, "Baskerville"); -_LIT(KTrebuchet, "Trebuchet"); // Group names _LIT(KS60Group, "S60Group"); -//new browser fonts start -_LIT(KArialGroup, "ArialGroup"); -_LIT(KTnrGroup, "TnrGroup"); -_LIT(KCourGroup, "CourGroup"); -//new browser fonts end + // Default _LIT(KDefaultGroupName, "S60Group"); @@ -552,16 +528,13 @@ { LIT_AS_DESC_PTR(KSansSerif) ,LIT_AS_DESC_PTR(KS60Group), &languagesAndTypefaceTable, ETrue }, { LIT_AS_DESC_PTR(KSerif) ,LIT_AS_DESC_PTR(KS60Group), &languagesAndTypefaceTable, ETrue }, { LIT_AS_DESC_PTR(KMonospace) ,LIT_AS_DESC_PTR(KS60Group), &languagesAndTypefaceTable, ETrue }, - { LIT_AS_DESC_PTR(KTrebuchet) ,LIT_AS_DESC_PTR(KArialGroup), &languagesAndTypefaceTable, EFalse }, - { LIT_AS_DESC_PTR(KArial) ,LIT_AS_DESC_PTR(KArialGroup), &languagesAndTypefaceTable, EFalse }, + { LIT_AS_DESC_PTR(KArial) ,LIT_AS_DESC_PTR(KS60Group), &languagesAndTypefaceTable, EFalse }, { LIT_AS_DESC_PTR(KVerdana),LIT_AS_DESC_PTR(KS60Group), &languagesAndTypefaceTable, EFalse }, { LIT_AS_DESC_PTR(KHelvetica),LIT_AS_DESC_PTR(KS60Group), &languagesAndTypefaceTable, EFalse }, - { LIT_AS_DESC_PTR(KBaskerville),LIT_AS_DESC_PTR(KTnrGroup), &languagesAndTypefaceTable, EFalse }, - { LIT_AS_DESC_PTR(KGeorgia),LIT_AS_DESC_PTR(KTnrGroup), &languagesAndTypefaceTable, EFalse }, - { LIT_AS_DESC_PTR(KTimes),LIT_AS_DESC_PTR(KTnrGroup), &languagesAndTypefaceTable, EFalse }, - { LIT_AS_DESC_PTR(KTimesNewRoman) ,LIT_AS_DESC_PTR(KTnrGroup), &languagesAndTypefaceTable, EFalse }, - { LIT_AS_DESC_PTR(KCourier) ,LIT_AS_DESC_PTR(KCourGroup), &languagesAndTypefaceTable, EFalse }, - { LIT_AS_DESC_PTR(KCourierNew) ,LIT_AS_DESC_PTR(KCourGroup), &languagesAndTypefaceTable, EFalse }, + { LIT_AS_DESC_PTR(KGeorgia),LIT_AS_DESC_PTR(KS60Group), &languagesAndTypefaceTable, EFalse }, + { LIT_AS_DESC_PTR(KTimes),LIT_AS_DESC_PTR(KS60Group), &languagesAndTypefaceTable, EFalse }, + { LIT_AS_DESC_PTR(KTimesNewRoman) ,LIT_AS_DESC_PTR(KS60Group), &languagesAndTypefaceTable, EFalse }, + { LIT_AS_DESC_PTR(KCourier) ,LIT_AS_DESC_PTR(KS60Group), &languagesAndTypefaceTable, EFalse }, { LIT_AS_DESC_PTR(KNullDesC) ,LIT_AS_DESC_PTR(KS60Group), &languagesAndTypefaceTable, EFalse } }; @@ -682,20 +655,7 @@ { EAknFontCategoryPrimarySmall, 0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKHiResLF, LIT_AS_DESC_PTR(KS60TCHKHRSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL }, { EAknFontCategoryPrimary, 0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKHiResLF, LIT_AS_DESC_PTR(KS60TCHKHRSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL }, { EAknFontCategoryTitle, 0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKHiResLF, LIT_AS_DESC_PTR(KS60TCHKHRSANSTTLSMBLDLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL }, - { EAknFontCategoryAny, 0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKHiResLF, LIT_AS_DESC_PTR(KS60TCHKHRSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL }, - - //new browser fonts start - //western tnr - { EAknFontCategoryAny, 0, EAny, EStrokeWeightBold, EAny, EAny, ENotBold, EAntialiase, EElafLangsBrowserFonts, LIT_AS_DESC_PTR(KS60LATTHOBLD), LIT_AS_DESC_PTR(KTnrGroup), NULL, &latinHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) }, - { EAknFontCategoryAny, 0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EElafLangsBrowserFonts, LIT_AS_DESC_PTR(KS60LATTHOREG), LIT_AS_DESC_PTR(KTnrGroup), NULL, &latinHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) }, - //western arial - { EAknFontCategoryAny, 0, EAny, EStrokeWeightBold, EAny, EAny, ENotBold, EAntialiase, EElafLangsBrowserFonts, LIT_AS_DESC_PTR(KS60LATAMTBLD), LIT_AS_DESC_PTR(KArialGroup), NULL, &latinHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) }, - { EAknFontCategoryAny, 0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EElafLangsBrowserFonts, LIT_AS_DESC_PTR(KS60LATAMTREG), LIT_AS_DESC_PTR(KArialGroup), NULL, &latinHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) }, - //western courier - { EAknFontCategoryAny, 0, EAny, EStrokeWeightBold, EAny, EAny, ENotBold, EAntialiase, EElafLangsBrowserFonts, LIT_AS_DESC_PTR(KS60LATCUMBLD), LIT_AS_DESC_PTR(KCourGroup), NULL, &latinHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText)}, - { EAknFontCategoryAny, 0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EElafLangsBrowserFonts, LIT_AS_DESC_PTR(KS60LATCUMREG), LIT_AS_DESC_PTR(KCourGroup), NULL, &latinHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) }, - - //new browser fonts end + { EAknFontCategoryAny, 0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKHiResLF, LIT_AS_DESC_PTR(KS60TCHKHRSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL } //end }; // ============================ GLOBAL FUNCTIONS ======================================== @@ -1133,15 +1093,14 @@ */ LOCAL_C TBool TypefaceAvailableL( CGraphicsDevice& aDevice, - const TTypeface& aTypeface, - TInt aTypefaceType =EGulNoSymbolFonts ) + const TTypeface& aTypeface ) { TBool found(EFalse); CDesCArray* array = new(ELeave) CDesCArrayFlat( 6 ); CleanupStack::PushL( array ); - FontUtils::GetAvailableFontsL(aDevice, *array, aTypefaceType); + FontUtils::GetAvailableFontsL(aDevice, *array, EGulNoSymbolFonts); for ( TInt i = 0; i < array->Count(); i++ ) { TPtrC fontName((*array)[i]); @@ -1238,23 +1197,6 @@ // Ensure proportionality flag is set. Assumes all S60 fonts are proportional aFontSpec.iTypeface.SetIsProportional(ETrue); - - TInt reqLangs = FontProviderRequiredLangs(); - if((reqLangs == EChineseLangsPRC) || (reqLangs ==EChineseLangsTaiwanHK)|| - (reqLangs ==EChineseLangsPRCLF) ||(reqLangs ==EChineseLangsTaiwanHKLF)) - { - if((aFontSpec.iHeight > 21) && ( EAntiAliasedGlyphBitmap != aFontSpec.iFontStyle.BitmapType())) - aFontSpec.iFontStyle.SetBitmapType(EAntiAliasedGlyphBitmap); - //stroke font files used, not to use bold - aFontSpec.iFontStyle.SetStrokeWeight(EStrokeWeightNormal ); - } - else if(reqLangs == EKoreanLangs) - { - if((aFontSpec.iHeight > 17) && ( EAntiAliasedGlyphBitmap != aFontSpec.iFontStyle.BitmapType())) - aFontSpec.iFontStyle.SetBitmapType(EAntiAliasedGlyphBitmap); - } - else if((aFontSpec.iHeight > 16) && ( EAntiAliasedGlyphBitmap != aFontSpec.iFontStyle.BitmapType())) - aFontSpec.iFontStyle.SetBitmapType(EAntiAliasedGlyphBitmap); } LOCAL_C TBool HasRequiredLanguages( @@ -1405,20 +1347,8 @@ } TBool specIsSetUp(EFalse); - - //new browser fonts start - //checking whether the typeface is installed - TInt numberOfRows = sizeof( productFontTable )/ sizeof( SAknProductFontTableLine ); - SAknProductFontTableLine line = productFontTable[aFoundIndex]; - TTypeface pftTypeface; - TBool available(ETrue); - if(aFoundIndex>=0 && aFoundIndexLeft((KMaxTypefaceNameLength)); - TRAP_IGNORE( available = TypefaceAvailableL( *aDevice, pftTypeface,EGulAllFonts ) ); - } - //end - if ( (aFoundIndex == KErrNotFound) || ((TInt)EFalse == available)) + + if ( aFoundIndex == KErrNotFound) { // Note that because the alias table has language matching, the direct typeface name should be // appropriate at least for language. @@ -1877,12 +1807,13 @@ //chinese adaptation TBool fChLinkedFonts = FeatureManager::FeatureSupported(KFeatureIdFfLinkedFontsChinese); TBool fChinese = FeatureManager::FeatureSupported(KFeatureIdChinese); - TBool fAdditionalFonts = FeatureManager::FeatureSupported(KFeatureIdFfAdditionalFonts); - if((fChinese && fChLinkedFonts) || fAdditionalFonts) + if(fChinese && fChLinkedFonts) { //attempt to create linked font only once if(!LinkTypefacesInstalled()) { + //TRAP call necessary + //not need to handle return value, hanled by LinkTypefacesInstalled() TRAP_IGNORE(IntializeLinkedFontL()); } } @@ -2188,8 +2119,6 @@ _LIT(KSCHRStop, "[SCHR_LINK_STOP]"); _LIT(KTCHKHRStart, "[TCHKHR_LINK_START]"); _LIT(KTCHKHRStop, "[TCHKHR_LINK_STOP]"); - _LIT(KWESTBROWStart, "[WESTERN_BROWSER_START]"); - _LIT(KWESTBROWStop, "[WESTERN_BROWSER_STOP]"); TInt ret = KErrNone; RPointerArray fontfiles; @@ -2212,10 +2141,6 @@ KFeatureIdChinesePrcFonts); TBool fHiResFonts = FeatureManager::FeatureSupported( KFeatureIdChineseFontsHires); - TBool fAdditionalFonts = FeatureManager::FeatureSupported( - KFeatureIdFfAdditionalFonts); - TBool fChinese = FeatureManager::FeatureSupported( - KFeatureIdChinese); if (fChLinkedFonts) @@ -2251,16 +2176,6 @@ } } - if(fAdditionalFonts) - { - if((!fChinese) && (!fSCFonts) && (!fTCHKFonts) && (!fHiResFonts))//must be western variant - { - startTok.Copy(KWESTBROWStart); - stopTok.Copy(KWESTBROWStop); - tfile.Seek(ESeekStart); - ret = DoPopulateAndCreateLinkFontsL(tfile, startTok, stopTok); - } - } rFile.Close(); @@ -2295,8 +2210,6 @@ KFeatureIdChinesePrcFonts); TBool fHiResFonts = FeatureManager::FeatureSupported( KFeatureIdChineseFontsHires); - TBool fAdditionalFonts = FeatureManager::FeatureSupported( - KFeatureIdFfAdditionalFonts); TBool ret = EFalse; @@ -2308,14 +2221,6 @@ if(fTCHKFonts) ref +=KAknFontStylesSupported; } - if( (EAknAllLinkedFonts == aFonttype) || (EAknContentLinkedFonts == aFonttype)) - { - if(fAdditionalFonts) - { - if((!fSCFonts) && (!fTCHKFonts) &&(!fHiResFonts)) - ref +=KAknAdditionalBrowserFonts; - } - } for (TInt i = 0; i < noOfTypefaces; i++) { TTypefaceSupport typefaceInfo; @@ -2363,27 +2268,7 @@ } } } - if( (EAknAllLinkedFonts == aFonttype) || (EAknContentLinkedFonts == aFonttype)) - { - if(fAdditionalFonts) - { - if( (!fSCFonts) && (!fTCHKFonts) && (!fHiResFonts)) - { - if (typefaceInfo.iTypeface.iName.Compare(KS60LATAMTREG)==0|| - typefaceInfo.iTypeface.iName.Compare(KS60LATAMTBLD)==0|| - typefaceInfo.iTypeface.iName.Compare(KS60LATTHOREG)==0|| - typefaceInfo.iTypeface.iName.Compare(KS60LATTHOBLD)==0|| - typefaceInfo.iTypeface.iName.Compare(KS60LATCUMREG)==0|| - typefaceInfo.iTypeface.iName.Compare(KS60LATCUMBLD)==0) - { - files++; - } - } - } - } - - - } + } if (ref == files) ret = ETrue; return ret;