diff -r 4ab28fdd25ad -r 2398a337fa76 fontsupport/fontprovider/Src/FontProvider.cpp --- a/fontsupport/fontprovider/Src/FontProvider.cpp Tue Feb 02 00:52:22 2010 +0200 +++ b/fontsupport/fontprovider/Src/FontProvider.cpp Fri Mar 19 09:48:44 2010 +0200 @@ -73,8 +73,8 @@ _LIT(KS60TCAndHK,"Sans MT UniT_HKSCS_S60"); _LIT(KS60SC,"Sans MT 936_S60"); -_LIT(KS60TCAndHKHiRes,"Sans MT TC Big5HK_S60C"); -_LIT(KS60SCHiRes,"Sans MT SC 936_S60C"); +_LIT(KS60TCAndHKHiRes,"MHeiC-Medium-Big5HKSCS-S60"); +_LIT(KS60SCHiRes,"MHeiGB18030C-Medium-S60"); _LIT(KJapaneseHensei,"Heisei Kaku Gothic S60"); _LIT(KS60Digital, "Series 60 ZDigi"); _LIT(KS60Sans, "Series 60 Sans"); @@ -100,6 +100,15 @@ _LIT(KS60TCHKHRSANSTTLSMBLDLF, "S60TCHKHRSANSTTLSMBLDLF"); //end +//all font files +_LIT(KS60JAPSANSRLF, "S60JAPSANSRLF"); +_LIT(KS60JAPSANSSBLF, "S60JAPSANSSBLF"); +_LIT(KS60JAPSANSTTLSMBLDLF, "S60JAPSANSTTLSMBLDLF"); + +_LIT(KS60KORSANSRLF, "S60KORSANSRLF"); +_LIT(KS60KORSANSSBLF, "S60KORSANSSBLF"); +_LIT(KS60KORSANSTTLSMBLDLF, "S60KORSANSTTLSMBLDLF"); +//end // Texts for measuring maximum ascents and descents: _LIT(KWesternFontMaxExtentText, "\x00C1\x00C7" ); @@ -124,7 +133,8 @@ #define ELanguageSupportKorean 0x00100000 #define ELanguageSupportHangul 0x00200000 //chinese adaptation -#define ELanguageSupportChineseFontLinking 0x00400000 +#define ELanguageSupportFontLinking 0x00400000 +//end //end #define ELanguageSupportDevanagari 0x01000000 #define ELanguageSupportS60PrivateUseArea1 0x10000000 @@ -175,10 +185,16 @@ #define EJapaneseLangs ( EApacCommonLangs \ | ELanguageSupportJapanese ) - +#define EJapaneseLFLangs ( EApacCommonLangs \ + | ELanguageSupportJapanese \ + | ELanguageSupportFontLinking ) #define EKoreanLangs ( EApacCommonLangs \ | ELanguageSupportKorean ) +#define EKoreanLFLangs ( EApacCommonLangs \ + | ELanguageSupportKorean \ + | ELanguageSupportFontLinking ) + #define EChineseLangs ( EApacCommonLangs \ | ELanguageSupportCJKUnifiedIdeographsLevel0 \ | ELanguageSupportCJKUnifiedIdeographsLevel1 ) @@ -200,21 +216,21 @@ //chinese adaptation #define EChineseLangsPRCLF ( EChineseLangs \ | ELanguageSupportChinesePRC \ - | ELanguageSupportChineseFontLinking ) + | ELanguageSupportFontLinking ) #define EChineseLangsTaiwanHKLF ( EChineseLangs \ | ELanguageSupportChineseTaiwanHK \ - | ELanguageSupportChineseFontLinking ) + | ELanguageSupportFontLinking ) #define EChineseLangsPRCHiResLF ( EChineseLangs \ | ELanguageSupportChinesePRC \ | ELanguageSupportChineseHiRes \ - | ELanguageSupportChineseFontLinking ) + | ELanguageSupportFontLinking ) #define EChineseLangsTaiwanHKHiResLF ( EChineseLangs \ | ELanguageSupportChineseTaiwanHK \ | ELanguageSupportChineseHiRes \ - | ELanguageSupportChineseFontLinking ) + | ELanguageSupportFontLinking ) //end @@ -447,6 +463,62 @@ } CDL_ARRAY_END(SHeightRequest, chnlinkedFontHeightRequestArray); +CDL_ARRAY_START( SHeightRequest, japaneseLFHeightRequestArray) + { + { 2, 2 }, + { 10, 8 }, + { 11, 9 }, + { 13, 10 }, + { 14, 12 }, + { 15, 12 }, + { 16, 14 }, + { 17, 14 }, + { 18, 14 }, + { 19, 16 }, + { 20, 16 }, + { 21, 18 }, + { 24, 21 }, + { 25, 22 }, + { 26, 24 }, + { 27, 25 }, + { 28, 26 }, + { 29, 26 }, + { 30, 27 }, + { 79, 72 }, + { 218, 200 }, + } +CDL_ARRAY_END(SHeightRequest, japaneseLFHeightRequestArray); + +CDL_ARRAY_START( SHeightRequest, koreanLFHeightRequestArray) + { + { 2, 2 }, + { 8, 6 }, + { 9, 6 }, + { 10, 8 }, + { 11, 8 }, + { 13, 11 }, + { 14, 12 }, + { 15, 12 }, + { 16, 14 }, + { 17, 14 }, + { 18, 16 }, + { 19, 16 }, + { 20, 18 }, + { 21, 18 }, + { 22, 20 }, + { 23, 20 }, + { 24, 22 }, + { 25, 22 }, + { 26, 24 }, + { 27, 24 }, + { 28, 26 }, + { 29, 26 }, + { 30, 27 }, + { 79, 72 }, + { 218, 200 }, + } +CDL_ARRAY_END(SHeightRequest, koreanLFHeightRequestArray); + // Typeface Aliasing // Minimum length for alias substring matching @@ -506,6 +578,8 @@ { EChineseLangsTaiwanHKLF, LIT_AS_DESC_PTR(KS60TCHKSANSRLF) }, { EChineseLangsPRCHiResLF, LIT_AS_DESC_PTR(KS60SCHRSANSRLF) }, { EChineseLangsTaiwanHKHiResLF, LIT_AS_DESC_PTR(KS60TCHKHRSANSRLF) }, + { EJapaneseLFLangs, LIT_AS_DESC_PTR(KS60JAPSANSRLF) }, + { EKoreanLFLangs, LIT_AS_DESC_PTR(KS60KORSANSRLF) }, //end { EAnyLangs, LIT_AS_DESC_PTR(KS60Sans) } // Ultimate fallback } @@ -623,8 +697,10 @@ { EAknFontCategoryAny, 8, 17, EAny, EAny, EAny, ENotBold, ENotAntialiase, EKoreanLangs, LIT_AS_DESC_PTR(KS60Korean), LIT_AS_DESC_PTR(KS60Group), &koreanVectorFontBaselineArray, &koreanFontHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) }, { EAknFontCategoryAny, EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EKoreanLangs, LIT_AS_DESC_PTR(KS60Korean), LIT_AS_DESC_PTR(KS60Group), &koreanVectorFontBaselineArray, &koreanFontHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) }, //chinese adaptation - { EAknFontCategorySecondary, 12, 21, EAny, 0, EAny, ENotBold, ENotAntialiase, EChineseLangsPRCLF, LIT_AS_DESC_PTR(KS60SCSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL }, - { EAknFontCategorySecondary, EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsPRCLF, LIT_AS_DESC_PTR(KS60SCSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL }, + { EAknFontCategorySecondary, 12, 21, EStrokeWeightNormal, 0, EAny, ENotBold, ENotAntialiase, EChineseLangsPRCLF, LIT_AS_DESC_PTR(KS60SCSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL }, + { EAknFontCategorySecondary, EAny, EAny, EStrokeWeightNormal, EAny, EAny, ENotBold, EAntialiase, EChineseLangsPRCLF, LIT_AS_DESC_PTR(KS60SCSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL }, + { EAknFontCategorySecondary, 12, 21, EStrokeWeightBold, 0, EAny, ENotBold, ENotAntialiase, EChineseLangsPRCLF, LIT_AS_DESC_PTR(KS60SCSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL }, + { EAknFontCategorySecondary, EAny, EAny, EStrokeWeightBold, EAny, EAny, ENotBold, EAntialiase, EChineseLangsPRCLF, LIT_AS_DESC_PTR(KS60SCSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL }, { EAknFontCategoryPrimarySmall, 12, 21, EAny, 0, EAny, ENotBold, ENotAntialiase, EChineseLangsPRCLF, LIT_AS_DESC_PTR(KS60SCSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL }, { EAknFontCategoryPrimarySmall, EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsPRCLF, LIT_AS_DESC_PTR(KS60SCSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL }, { EAknFontCategoryPrimary, 12, 21, EAny, 0, EAny, ENotBold, ENotAntialiase, EChineseLangsPRCLF, LIT_AS_DESC_PTR(KS60SCSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL }, @@ -634,8 +710,10 @@ { EAknFontCategoryAny, 12, 21, EAny, 0, EAny, ENotBold, ENotAntialiase, EChineseLangsPRCLF, LIT_AS_DESC_PTR(KS60SCSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL }, { EAknFontCategoryAny, EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsPRCLF, LIT_AS_DESC_PTR(KS60SCSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL }, - { EAknFontCategorySecondary, 12, 21, EAny, 0, EAny, ENotBold, ENotAntialiase, EChineseLangsTaiwanHKLF, LIT_AS_DESC_PTR(KS60TCHKSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL }, - { EAknFontCategorySecondary, EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKLF, LIT_AS_DESC_PTR(KS60TCHKSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL }, + { EAknFontCategorySecondary, 12, 21, EStrokeWeightNormal, 0, EAny, ENotBold, ENotAntialiase, EChineseLangsTaiwanHKLF, LIT_AS_DESC_PTR(KS60TCHKSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL }, + { EAknFontCategorySecondary, EAny, EAny, EStrokeWeightNormal, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKLF, LIT_AS_DESC_PTR(KS60TCHKSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL }, + { EAknFontCategorySecondary, 12, 21, EStrokeWeightBold, 0, EAny, ENotBold, ENotAntialiase, EChineseLangsTaiwanHKLF, LIT_AS_DESC_PTR(KS60TCHKSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL }, + { EAknFontCategorySecondary, EAny, EAny, EStrokeWeightBold, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKLF, LIT_AS_DESC_PTR(KS60TCHKSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL }, { EAknFontCategoryPrimarySmall, 12, 21, EAny, 0, EAny, ENotBold, ENotAntialiase, EChineseLangsTaiwanHKLF, LIT_AS_DESC_PTR(KS60TCHKSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL }, { EAknFontCategoryPrimarySmall, EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKLF, LIT_AS_DESC_PTR(KS60TCHKSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL }, { EAknFontCategoryPrimary, 12, 21, EAny, 0, EAny, ENotBold, ENotAntialiase, EChineseLangsTaiwanHKLF, LIT_AS_DESC_PTR(KS60TCHKSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL }, @@ -645,17 +723,47 @@ { EAknFontCategoryAny, 12, 21, EAny, 0, EAny, ENotBold, ENotAntialiase, EChineseLangsTaiwanHKLF, LIT_AS_DESC_PTR(KS60TCHKSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL }, { EAknFontCategoryAny, EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKLF, LIT_AS_DESC_PTR(KS60TCHKSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL }, - { EAknFontCategorySecondary, 0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsPRCHiResLF, LIT_AS_DESC_PTR(KS60SCHRSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL }, + { EAknFontCategorySecondary, 0, EAny, EStrokeWeightNormal, EAny, EAny, ENotBold, EAntialiase, EChineseLangsPRCHiResLF, LIT_AS_DESC_PTR(KS60SCHRSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL }, + { EAknFontCategorySecondary, 0, EAny, EStrokeWeightBold, EAny, EAny, ENotBold, EAntialiase, EChineseLangsPRCHiResLF, LIT_AS_DESC_PTR(KS60SCHRSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL }, { EAknFontCategoryPrimarySmall, 0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsPRCHiResLF, LIT_AS_DESC_PTR(KS60SCHRSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL }, { EAknFontCategoryPrimary, 0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsPRCHiResLF, LIT_AS_DESC_PTR(KS60SCHRSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL }, { EAknFontCategoryTitle, 0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsPRCHiResLF, LIT_AS_DESC_PTR(KS60SCHRSANSTTLSMBLDLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL }, { EAknFontCategoryAny, 0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsPRCHiResLF, LIT_AS_DESC_PTR(KS60SCHRSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL }, - { EAknFontCategorySecondary, 0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKHiResLF, LIT_AS_DESC_PTR(KS60TCHKHRSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL }, + { EAknFontCategorySecondary, 0, EAny, EStrokeWeightNormal, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKHiResLF, LIT_AS_DESC_PTR(KS60TCHKHRSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL }, + { EAknFontCategorySecondary, 0, EAny, EStrokeWeightBold, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKHiResLF, LIT_AS_DESC_PTR(KS60TCHKHRSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL }, { 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 } + { EAknFontCategoryAny, 0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKHiResLF, LIT_AS_DESC_PTR(KS60TCHKHRSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL }, +//end +//jap link + { EAknFontCategorySecondary, 12, 15, EBold, 0, EAny, ENotBold, ENotAntialiase, EJapaneseLFLangs, LIT_AS_DESC_PTR(KS60JAPSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &heiseiBaselineArray, &japaneseLFHeightRequestArray, NULL }, + { EAknFontCategorySecondary, 12, 15, EAny, 0, EAny, ENotBold, ENotAntialiase, EJapaneseLFLangs, LIT_AS_DESC_PTR(KS60JAPSANSRLF), LIT_AS_DESC_PTR(KS60Group), &heiseiBaselineArray, &japaneseLFHeightRequestArray, NULL }, + { EAknFontCategorySecondary, EAny, EAny, EBold, EAny, EAny, ENotBold, EAntialiase, EJapaneseLFLangs, LIT_AS_DESC_PTR(KS60JAPSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &heiseiBaselineArray, &japaneseLFHeightRequestArray, NULL }, + { EAknFontCategorySecondary, EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EJapaneseLFLangs, LIT_AS_DESC_PTR(KS60JAPSANSRLF), LIT_AS_DESC_PTR(KS60Group), &heiseiBaselineArray, &japaneseLFHeightRequestArray, NULL }, + { EAknFontCategoryPrimarySmall, 12, 15, EAny, 0, EAny, ENotBold, ENotAntialiase, EJapaneseLFLangs, LIT_AS_DESC_PTR(KS60JAPSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &heiseiBaselineArray, &japaneseLFHeightRequestArray, NULL }, + { EAknFontCategoryPrimarySmall, EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EJapaneseLFLangs, LIT_AS_DESC_PTR(KS60JAPSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &heiseiBaselineArray, &japaneseLFHeightRequestArray, NULL }, + { EAknFontCategoryPrimary, 12, 15, EAny, 0, EAny, ENotBold, ENotAntialiase, EJapaneseLFLangs, LIT_AS_DESC_PTR(KS60JAPSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &heiseiBaselineArray, &japaneseLFHeightRequestArray, NULL }, + { EAknFontCategoryPrimary, EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EJapaneseLFLangs, LIT_AS_DESC_PTR(KS60JAPSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &heiseiBaselineArray, &japaneseLFHeightRequestArray, NULL }, + { EAknFontCategoryTitle, 12, 15, EAny, 0, EAny, ENotBold, ENotAntialiase, EJapaneseLFLangs, LIT_AS_DESC_PTR(KS60JAPSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &heiseiBaselineArray, &japaneseLFHeightRequestArray, NULL }, + { EAknFontCategoryTitle, EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EJapaneseLFLangs, LIT_AS_DESC_PTR(KS60JAPSANSTTLSMBLDLF), LIT_AS_DESC_PTR(KS60Group), &heiseiBaselineArray, &japaneseLFHeightRequestArray, NULL }, + { EAknFontCategoryAny, 12, 15, EAny, 0, EAny, ENotBold, ENotAntialiase, EJapaneseLFLangs, LIT_AS_DESC_PTR(KS60JAPSANSRLF), LIT_AS_DESC_PTR(KS60Group), &heiseiBaselineArray, &japaneseLFHeightRequestArray, NULL }, + { EAknFontCategoryAny, EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EJapaneseLFLangs, LIT_AS_DESC_PTR(KS60JAPSANSRLF), LIT_AS_DESC_PTR(KS60Group), &heiseiBaselineArray, &japaneseLFHeightRequestArray, NULL }, + +//kor link + { EAknFontCategorySecondary, 8, 17, EBold, EAny, EAny, ENotBold, ENotAntialiase, EKoreanLFLangs, LIT_AS_DESC_PTR(KS60KORSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &koreanVectorFontBaselineArray, &koreanLFHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) }, + { EAknFontCategorySecondary, 8, 17, EAny, EAny, EAny, ENotBold, ENotAntialiase, EKoreanLFLangs, LIT_AS_DESC_PTR(KS60KORSANSRLF), LIT_AS_DESC_PTR(KS60Group), &koreanVectorFontBaselineArray, &koreanLFHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) }, + { EAknFontCategorySecondary, EAny, EAny, EBold, EAny, EAny, ENotBold, EAntialiase, EKoreanLFLangs, LIT_AS_DESC_PTR(KS60KORSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &koreanVectorFontBaselineArray, &koreanLFHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) }, + { EAknFontCategorySecondary, EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EKoreanLFLangs, LIT_AS_DESC_PTR(KS60KORSANSRLF), LIT_AS_DESC_PTR(KS60Group), &koreanVectorFontBaselineArray, &koreanLFHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) }, + { EAknFontCategoryPrimarySmall, 8, 17, EAny, EAny, EAny, ENotBold, ENotAntialiase, EKoreanLFLangs, LIT_AS_DESC_PTR(KS60KORSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &koreanVectorFontBaselineArray, &koreanLFHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) }, + { EAknFontCategoryPrimarySmall, EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EKoreanLFLangs, LIT_AS_DESC_PTR(KS60KORSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &koreanVectorFontBaselineArray, &koreanLFHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) }, + { EAknFontCategoryPrimary, 8, 17, EAny, EAny, EAny, ENotBold, ENotAntialiase, EKoreanLFLangs, LIT_AS_DESC_PTR(KS60KORSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &koreanVectorFontBaselineArray, &koreanLFHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) }, + { EAknFontCategoryPrimary, EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EKoreanLFLangs, LIT_AS_DESC_PTR(KS60KORSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &koreanVectorFontBaselineArray, &koreanLFHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) }, + { EAknFontCategoryTitle, 8, 17, EAny, EAny, EAny, ENotBold, ENotAntialiase, EKoreanLFLangs, LIT_AS_DESC_PTR(KS60KORSANSTTLSMBLDLF), LIT_AS_DESC_PTR(KS60Group), &koreanVectorFontBaselineArray, &koreanLFHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) }, + { EAknFontCategoryTitle, EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EKoreanLFLangs, LIT_AS_DESC_PTR(KS60KORSANSTTLSMBLDLF), LIT_AS_DESC_PTR(KS60Group), &koreanVectorFontBaselineArray, &koreanLFHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) }, + { EAknFontCategoryAny, 8, 17, EAny, EAny, EAny, ENotBold, ENotAntialiase, EKoreanLFLangs, LIT_AS_DESC_PTR(KS60Korean), LIT_AS_DESC_PTR(KS60Group), &koreanVectorFontBaselineArray, &koreanLFHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) }, + { EAknFontCategoryAny, EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EKoreanLFLangs, LIT_AS_DESC_PTR(KS60Korean), LIT_AS_DESC_PTR(KS60Group), &koreanVectorFontBaselineArray, &koreanLFHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) }, //end }; // ============================ GLOBAL FUNCTIONS ======================================== @@ -720,26 +828,32 @@ TBool fHiResFonts = FeatureManager::FeatureSupported(KFeatureIdChineseFontsHires); TBool fKorean = FeatureManager::FeatureSupported(KFeatureIdKorean); //chinese adaptation - TBool fChLinkFlag = FeatureManager::FeatureSupported(KFeatureIdFfLinkedFontsChinese); - TBool fChLinkedFonts = EFalse; + TBool fLinkedFontsFeature = FeatureManager::FeatureSupported(KFeatureIdFfLinkedFontsChinese); + TBool fLinkedFonts = EFalse; //handling error here //fontlinking unsuccessful, handle with normal font files as earlier - if(fChLinkFlag) + if(fLinkedFontsFeature) { if(!LinkTypefacesInstalled(EAknSystemLinkedFonts)) - fChLinkedFonts = EFalse; + fLinkedFonts = EFalse; else - fChLinkedFonts = ETrue; + fLinkedFonts = ETrue; } //end if(fKorean) { - requiredLangs |= EKoreanLangs; + if (fLinkedFonts) + requiredLangs |= EKoreanLFLangs; + else + requiredLangs |= EKoreanLangs; } else if (fJapanese) { - requiredLangs |= EJapaneseLangs; + if (fLinkedFonts) + requiredLangs |= EJapaneseLFLangs; + else + requiredLangs |= EJapaneseLangs; } else if (fTCHKFonts) { @@ -747,11 +861,11 @@ if ((fSCFonts) && (uilang == KLangPrcEnglish || uilang == ELangPrcChinese)) { //chinese adaptation - if (fChLinkedFonts && fHiResFonts) + if (fLinkedFonts && fHiResFonts) { requiredLangs |= EChineseLangsPRCHiResLF; } - else if(fChLinkedFonts) + else if(fLinkedFonts) { requiredLangs |= EChineseLangsPRCLF; } @@ -768,11 +882,11 @@ else { //chinese adaptation - if (fChLinkedFonts && fHiResFonts) + if (fLinkedFonts && fHiResFonts) { requiredLangs |= EChineseLangsTaiwanHKHiResLF; } - else if(fChLinkedFonts) + else if(fLinkedFonts) { requiredLangs |= EChineseLangsTaiwanHKLF; } @@ -790,11 +904,11 @@ else if (fSCFonts) { //chinese adaptation - if (fChLinkedFonts && fHiResFonts) + if (fLinkedFonts && fHiResFonts) { requiredLangs |= EChineseLangsPRCHiResLF; } - else if(fChLinkedFonts) + else if(fLinkedFonts) { requiredLangs |= EChineseLangsPRCLF; } @@ -1805,9 +1919,8 @@ EXPORT_C void AknFontProvider::InitializeSystemL ( const CEikonEnv& aEnv ) { //chinese adaptation - TBool fChLinkedFonts = FeatureManager::FeatureSupported(KFeatureIdFfLinkedFontsChinese); - TBool fChinese = FeatureManager::FeatureSupported(KFeatureIdChinese); - if(fChinese && fChLinkedFonts) + TBool fLinkedFonts = FeatureManager::FeatureSupported(KFeatureIdFfLinkedFontsChinese); + if(fLinkedFonts) { //attempt to create linked font only once if(!LinkTypefacesInstalled()) @@ -2119,6 +2232,10 @@ _LIT(KSCHRStop, "[SCHR_LINK_STOP]"); _LIT(KTCHKHRStart, "[TCHKHR_LINK_START]"); _LIT(KTCHKHRStop, "[TCHKHR_LINK_STOP]"); + _LIT(KJAPStart, "[JAP_LINK_START]"); + _LIT(KJAPStop, "[JAP_LINK_STOP]"); + _LIT(KKORStart, "[KOR_LINK_START]"); + _LIT(KKORStop, "[KOR_LINK_STOP]"); TInt ret = KErrNone; RPointerArray fontfiles; @@ -2133,7 +2250,7 @@ TBuf<50> startTok; TBuf<50> stopTok; - TBool fChLinkedFonts = FeatureManager::FeatureSupported( + TBool fLinkedFonts = FeatureManager::FeatureSupported( KFeatureIdFfLinkedFontsChinese); TBool fTCHKFonts = FeatureManager::FeatureSupported( KFeatureIdChineseTaiwanHkFonts); @@ -2142,8 +2259,12 @@ TBool fHiResFonts = FeatureManager::FeatureSupported( KFeatureIdChineseFontsHires); + TBool fJapanese = FeatureManager::FeatureSupported(KFeatureIdJapanese); + TBool fKorean = FeatureManager::FeatureSupported(KFeatureIdKorean); + TBool fChinese = FeatureManager::FeatureSupported( + KFeatureIdChinese); - if (fChLinkedFonts) + if (fLinkedFonts) { if (fSCFonts && fHiResFonts) @@ -2174,8 +2295,23 @@ tfile.Seek(ESeekStart); ret = DoPopulateAndCreateLinkFontsL(tfile, startTok, stopTok); } + if(fJapanese) + { + startTok.Copy(KJAPStart); + stopTok.Copy(KJAPStop); + tfile.Seek(ESeekStart); + ret = DoPopulateAndCreateLinkFontsL(tfile, startTok, stopTok); + } + if(fKorean) + { + startTok.Copy(KKORStart); + stopTok.Copy(KKORStop); + tfile.Seek(ESeekStart); + ret = DoPopulateAndCreateLinkFontsL(tfile, startTok, stopTok); + } } + rFile.Close(); @@ -2210,16 +2346,24 @@ KFeatureIdChinesePrcFonts); TBool fHiResFonts = FeatureManager::FeatureSupported( KFeatureIdChineseFontsHires); + TBool fChinese = FeatureManager::FeatureSupported( + KFeatureIdChinese); + TBool fJapanese = FeatureManager::FeatureSupported(KFeatureIdJapanese); + TBool fKorean = FeatureManager::FeatureSupported(KFeatureIdKorean); TBool ret = EFalse; TInt files = 0, ref = 0; if( (EAknAllLinkedFonts == aFonttype) || (EAknSystemLinkedFonts == aFonttype)) { - if(fSCFonts) + if( (fChinese && fSCFonts )) + ref +=KAknFontStylesSupported; + if(fChinese && fTCHKFonts) ref +=KAknFontStylesSupported; - if(fTCHKFonts) - ref +=KAknFontStylesSupported; + if(fJapanese) + ref +=KAknFontStylesSupported; + if(fKorean) + ref +=KAknFontStylesSupported; } for (TInt i = 0; i < noOfTypefaces; i++) { @@ -2267,9 +2411,29 @@ files++; } } + if (fJapanese) + { + if (typefaceInfo.iTypeface.iName.Compare(KS60JAPSANSRLF)==0|| + typefaceInfo.iTypeface.iName.Compare(KS60JAPSANSSBLF)==0|| + typefaceInfo.iTypeface.iName.Compare(KS60JAPSANSTTLSMBLDLF)==0) + { + files++; + } + + } + if (fKorean) + { + if (typefaceInfo.iTypeface.iName.Compare(KS60KORSANSRLF)==0|| + typefaceInfo.iTypeface.iName.Compare(KS60KORSANSSBLF)==0|| + typefaceInfo.iTypeface.iName.Compare(KS60KORSANSTTLSMBLDLF) == 0) + { + files++; + } + + } + } } - } - if (ref == files) + if (files && (ref == files) ) ret = ETrue; return ret; }