fontsupport/fontprovider/Src/FontProvider.cpp
changeset 42 2398a337fa76
parent 2 abcbdabaa4c5
child 53 8f0f421d3d0f
equal deleted inserted replaced
21:4ab28fdd25ad 42:2398a337fa76
    71 // Font names to be used in the tables
    71 // Font names to be used in the tables
    72 //
    72 //
    73 
    73 
    74 _LIT(KS60TCAndHK,"Sans MT  UniT_HKSCS_S60");
    74 _LIT(KS60TCAndHK,"Sans MT  UniT_HKSCS_S60");
    75 _LIT(KS60SC,"Sans MT 936_S60");
    75 _LIT(KS60SC,"Sans MT 936_S60");
    76 _LIT(KS60TCAndHKHiRes,"Sans MT TC Big5HK_S60C");
    76 _LIT(KS60TCAndHKHiRes,"MHeiC-Medium-Big5HKSCS-S60");
    77 _LIT(KS60SCHiRes,"Sans MT SC 936_S60C");
    77 _LIT(KS60SCHiRes,"MHeiGB18030C-Medium-S60");
    78 _LIT(KJapaneseHensei,"Heisei Kaku Gothic S60");
    78 _LIT(KJapaneseHensei,"Heisei Kaku Gothic S60");
    79 _LIT(KS60Digital, "Series 60 ZDigi");
    79 _LIT(KS60Digital, "Series 60 ZDigi");
    80 _LIT(KS60Sans, "Series 60 Sans");
    80 _LIT(KS60Sans, "Series 60 Sans");
    81 _LIT(KS60SansTitleSemiBold, "Series 60 Sans TitleSmBd");
    81 _LIT(KS60SansTitleSemiBold, "Series 60 Sans TitleSmBd");
    82 
    82 
    98 _LIT(KS60TCHKHRSANSRLF, "S60TCHKHRSANSRLF");
    98 _LIT(KS60TCHKHRSANSRLF, "S60TCHKHRSANSRLF");
    99 _LIT(KS60TCHKHRSANSSBLF, "S60TCHKHRSANSSBLF");
    99 _LIT(KS60TCHKHRSANSSBLF, "S60TCHKHRSANSSBLF");
   100 _LIT(KS60TCHKHRSANSTTLSMBLDLF, "S60TCHKHRSANSTTLSMBLDLF");
   100 _LIT(KS60TCHKHRSANSTTLSMBLDLF, "S60TCHKHRSANSTTLSMBLDLF");
   101 //end
   101 //end
   102 
   102 
       
   103 //all font files
       
   104 _LIT(KS60JAPSANSRLF, "S60JAPSANSRLF");
       
   105 _LIT(KS60JAPSANSSBLF, "S60JAPSANSSBLF");
       
   106 _LIT(KS60JAPSANSTTLSMBLDLF, "S60JAPSANSTTLSMBLDLF");
       
   107 
       
   108 _LIT(KS60KORSANSRLF, "S60KORSANSRLF");
       
   109 _LIT(KS60KORSANSSBLF, "S60KORSANSSBLF");
       
   110 _LIT(KS60KORSANSTTLSMBLDLF, "S60KORSANSTTLSMBLDLF");
       
   111 //end
   103 
   112 
   104 // Texts for measuring maximum ascents and descents:
   113 // Texts for measuring maximum ascents and descents:
   105 _LIT(KWesternFontMaxExtentText, "\x00C1\x00C7" );
   114 _LIT(KWesternFontMaxExtentText, "\x00C1\x00C7" );
   106 
   115 
   107 // Language support map
   116 // Language support map
   122 #define ELanguageSupportCJKUnifiedIdeographsLevel1  0x00040000
   131 #define ELanguageSupportCJKUnifiedIdeographsLevel1  0x00040000
   123 #define ELanguageSupportJapanese                    0x00080000
   132 #define ELanguageSupportJapanese                    0x00080000
   124 #define ELanguageSupportKorean                      0x00100000
   133 #define ELanguageSupportKorean                      0x00100000
   125 #define ELanguageSupportHangul                      0x00200000
   134 #define ELanguageSupportHangul                      0x00200000
   126 //chinese adaptation
   135 //chinese adaptation
   127 #define ELanguageSupportChineseFontLinking          0x00400000
   136 #define ELanguageSupportFontLinking          0x00400000
       
   137 //end
   128 //end
   138 //end
   129 #define ELanguageSupportDevanagari                  0x01000000
   139 #define ELanguageSupportDevanagari                  0x01000000
   130 #define ELanguageSupportS60PrivateUseArea1          0x10000000
   140 #define ELanguageSupportS60PrivateUseArea1          0x10000000
   131 
   141 
   132 // Test characters for language support
   142 // Test characters for language support
   173 #define EThaiLangs        (   EApacCommonLangs \
   183 #define EThaiLangs        (   EApacCommonLangs \
   174                                       | ELanguageSupportThai )
   184                                       | ELanguageSupportThai )
   175 
   185 
   176 #define EJapaneseLangs    (  EApacCommonLangs \
   186 #define EJapaneseLangs    (  EApacCommonLangs \
   177                                      | ELanguageSupportJapanese )
   187                                      | ELanguageSupportJapanese )
   178 
   188 #define EJapaneseLFLangs    (  EApacCommonLangs \
       
   189                                      | ELanguageSupportJapanese \
       
   190                                      | ELanguageSupportFontLinking )
   179 #define EKoreanLangs    (  EApacCommonLangs \
   191 #define EKoreanLangs    (  EApacCommonLangs \
   180                                      | ELanguageSupportKorean )
   192                                      | ELanguageSupportKorean )
       
   193 
       
   194 #define EKoreanLFLangs    (  EApacCommonLangs \
       
   195                                      | ELanguageSupportKorean \
       
   196                                      | ELanguageSupportFontLinking )
   181 
   197 
   182 #define EChineseLangs     ( EApacCommonLangs \
   198 #define EChineseLangs     ( EApacCommonLangs \
   183                                     | ELanguageSupportCJKUnifiedIdeographsLevel0 \
   199                                     | ELanguageSupportCJKUnifiedIdeographsLevel0 \
   184                                     | ELanguageSupportCJKUnifiedIdeographsLevel1 )
   200                                     | ELanguageSupportCJKUnifiedIdeographsLevel1 )
   185 
   201 
   198                                         | ELanguageSupportChineseHiRes)
   214                                         | ELanguageSupportChineseHiRes)
   199 
   215 
   200 //chinese adaptation
   216 //chinese adaptation
   201 #define EChineseLangsPRCLF     ( EChineseLangs \
   217 #define EChineseLangsPRCLF     ( EChineseLangs \
   202                                     | ELanguageSupportChinesePRC \
   218                                     | ELanguageSupportChinesePRC \
   203                                     | ELanguageSupportChineseFontLinking )
   219                                     | ELanguageSupportFontLinking )
   204 
   220 
   205 #define EChineseLangsTaiwanHKLF     ( EChineseLangs \
   221 #define EChineseLangsTaiwanHKLF     ( EChineseLangs \
   206                                     | ELanguageSupportChineseTaiwanHK \
   222                                     | ELanguageSupportChineseTaiwanHK \
   207                                     | ELanguageSupportChineseFontLinking )
   223                                     | ELanguageSupportFontLinking )
   208 
   224 
   209 #define EChineseLangsPRCHiResLF     ( EChineseLangs \
   225 #define EChineseLangsPRCHiResLF     ( EChineseLangs \
   210                                     | ELanguageSupportChinesePRC \
   226                                     | ELanguageSupportChinesePRC \
   211                                     | ELanguageSupportChineseHiRes \
   227                                     | ELanguageSupportChineseHiRes \
   212                                     | ELanguageSupportChineseFontLinking )
   228                                     | ELanguageSupportFontLinking )
   213 
   229 
   214 #define EChineseLangsTaiwanHKHiResLF     ( EChineseLangs \
   230 #define EChineseLangsTaiwanHKHiResLF     ( EChineseLangs \
   215                                         | ELanguageSupportChineseTaiwanHK \
   231                                         | ELanguageSupportChineseTaiwanHK \
   216                                         | ELanguageSupportChineseHiRes \
   232                                         | ELanguageSupportChineseHiRes \
   217                                         | ELanguageSupportChineseFontLinking )
   233                                         | ELanguageSupportFontLinking )
   218 //end                                    
   234 //end                                    
   219 
   235 
   220 
   236 
   221 // Wildcard value for langs (font is to be used for all languages)
   237 // Wildcard value for langs (font is to be used for all languages)
   222 #define EAnyLangs           0xffffffff
   238 #define EAnyLangs           0xffffffff
   445         { 79, 72 }, 
   461         { 79, 72 }, 
   446         { 218, 200 }, 
   462         { 218, 200 }, 
   447     }
   463     }
   448 CDL_ARRAY_END(SHeightRequest, chnlinkedFontHeightRequestArray);
   464 CDL_ARRAY_END(SHeightRequest, chnlinkedFontHeightRequestArray);
   449 
   465 
       
   466 CDL_ARRAY_START( SHeightRequest, japaneseLFHeightRequestArray)
       
   467     {
       
   468         {  2,  2 }, 
       
   469         { 10,  8 }, 
       
   470         { 11,  9 }, 
       
   471         { 13, 10 }, 
       
   472         { 14, 12 }, 
       
   473         { 15, 12 }, 
       
   474         { 16, 14 }, 
       
   475         { 17, 14 }, 
       
   476         { 18, 14 }, 
       
   477         { 19, 16 }, 
       
   478         { 20, 16 }, 
       
   479         { 21, 18 }, 
       
   480         { 24, 21 }, 
       
   481         { 25, 22 }, 
       
   482         { 26, 24 }, 
       
   483         { 27, 25 }, 
       
   484         { 28, 26 }, 
       
   485         { 29, 26 }, 
       
   486         { 30, 27 }, 
       
   487         { 79, 72 }, 
       
   488         { 218, 200 }, 
       
   489     }
       
   490 CDL_ARRAY_END(SHeightRequest, japaneseLFHeightRequestArray);
       
   491 
       
   492 CDL_ARRAY_START( SHeightRequest, koreanLFHeightRequestArray)
       
   493     {
       
   494         {  2,  2 }, 
       
   495         { 8, 6 },
       
   496         { 9, 6 },
       
   497         { 10,  8 }, 
       
   498         { 11,  8 }, 
       
   499         { 13, 11 }, 
       
   500         { 14, 12 }, 
       
   501         { 15, 12 },
       
   502         { 16, 14 },
       
   503         { 17, 14 },
       
   504         { 18, 16 },
       
   505         { 19, 16 },
       
   506         { 20, 18 },
       
   507         { 21, 18 },
       
   508         { 22, 20 },
       
   509         { 23, 20 },
       
   510         { 24, 22 },
       
   511         { 25, 22 },
       
   512         { 26, 24 },
       
   513         { 27, 24 },
       
   514         { 28, 26 }, 
       
   515         { 29, 26 }, 
       
   516         { 30, 27 }, 
       
   517         { 79, 72 }, 
       
   518         { 218, 200 }, 
       
   519     }
       
   520 CDL_ARRAY_END(SHeightRequest, koreanLFHeightRequestArray);
       
   521 
   450 // Typeface Aliasing
   522 // Typeface Aliasing
   451 
   523 
   452 // Minimum length for alias substring matching
   524 // Minimum length for alias substring matching
   453 #define KMinAliasLength 2
   525 #define KMinAliasLength 2
   454 
   526 
   504         //chinese adaptation
   576         //chinese adaptation
   505         { EChineseLangsPRCLF, LIT_AS_DESC_PTR(KS60SCSANSRLF) },
   577         { EChineseLangsPRCLF, LIT_AS_DESC_PTR(KS60SCSANSRLF) },
   506         { EChineseLangsTaiwanHKLF, LIT_AS_DESC_PTR(KS60TCHKSANSRLF) },
   578         { EChineseLangsTaiwanHKLF, LIT_AS_DESC_PTR(KS60TCHKSANSRLF) },
   507         { EChineseLangsPRCHiResLF, LIT_AS_DESC_PTR(KS60SCHRSANSRLF) },
   579         { EChineseLangsPRCHiResLF, LIT_AS_DESC_PTR(KS60SCHRSANSRLF) },
   508         { EChineseLangsTaiwanHKHiResLF, LIT_AS_DESC_PTR(KS60TCHKHRSANSRLF) },
   580         { EChineseLangsTaiwanHKHiResLF, LIT_AS_DESC_PTR(KS60TCHKHRSANSRLF) },
       
   581         { EJapaneseLFLangs, LIT_AS_DESC_PTR(KS60JAPSANSRLF) },
       
   582         { EKoreanLFLangs, LIT_AS_DESC_PTR(KS60KORSANSRLF) },
   509         //end
   583         //end
   510         { EAnyLangs, LIT_AS_DESC_PTR(KS60Sans) } // Ultimate fallback
   584         { EAnyLangs, LIT_AS_DESC_PTR(KS60Sans) } // Ultimate fallback
   511     }
   585     }
   512 CDL_ARRAY_END(SAknLanguagesAndTypefaceTableLine, languagesAndTypefaceTable);
   586 CDL_ARRAY_END(SAknLanguagesAndTypefaceTableLine, languagesAndTypefaceTable);
   513 
   587 
   621     { EAknFontCategoryTitle,        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) },
   695     { EAknFontCategoryTitle,        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) },
   622     { EAknFontCategoryTitle,        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) },
   696     { EAknFontCategoryTitle,        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) },
   623     { 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) },
   697     { 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) },
   624     { 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) },
   698     { 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) },
   625 //chinese adaptation
   699 //chinese adaptation
   626     { EAknFontCategorySecondary,    12,   21,   EAny, 0,    EAny, ENotBold, ENotAntialiase, EChineseLangsPRCLF, LIT_AS_DESC_PTR(KS60SCSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
   700     { EAknFontCategorySecondary,    12,   21,   EStrokeWeightNormal, 0,    EAny, ENotBold, ENotAntialiase, EChineseLangsPRCLF, LIT_AS_DESC_PTR(KS60SCSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
   627     { EAknFontCategorySecondary,    EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsPRCLF, LIT_AS_DESC_PTR(KS60SCSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
   701     { EAknFontCategorySecondary,    EAny, EAny, EStrokeWeightNormal, EAny, EAny, ENotBold, EAntialiase, EChineseLangsPRCLF, LIT_AS_DESC_PTR(KS60SCSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
       
   702     { EAknFontCategorySecondary,    12,   21,   EStrokeWeightBold,   0,    EAny, ENotBold, ENotAntialiase, EChineseLangsPRCLF, LIT_AS_DESC_PTR(KS60SCSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
       
   703     { EAknFontCategorySecondary,    EAny, EAny, EStrokeWeightBold,   EAny, EAny, ENotBold, EAntialiase,    EChineseLangsPRCLF, LIT_AS_DESC_PTR(KS60SCSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
   628     { EAknFontCategoryPrimarySmall, 12,   21,   EAny, 0,    EAny, ENotBold, ENotAntialiase, EChineseLangsPRCLF, LIT_AS_DESC_PTR(KS60SCSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
   704     { EAknFontCategoryPrimarySmall, 12,   21,   EAny, 0,    EAny, ENotBold, ENotAntialiase, EChineseLangsPRCLF, LIT_AS_DESC_PTR(KS60SCSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
   629     { EAknFontCategoryPrimarySmall, EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsPRCLF, LIT_AS_DESC_PTR(KS60SCSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
   705     { EAknFontCategoryPrimarySmall, EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsPRCLF, LIT_AS_DESC_PTR(KS60SCSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
   630     { EAknFontCategoryPrimary,      12,   21,   EAny, 0,    EAny, ENotBold, ENotAntialiase, EChineseLangsPRCLF, LIT_AS_DESC_PTR(KS60SCSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
   706     { EAknFontCategoryPrimary,      12,   21,   EAny, 0,    EAny, ENotBold, ENotAntialiase, EChineseLangsPRCLF, LIT_AS_DESC_PTR(KS60SCSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
   631     { EAknFontCategoryPrimary,      EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsPRCLF, LIT_AS_DESC_PTR(KS60SCSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
   707     { EAknFontCategoryPrimary,      EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsPRCLF, LIT_AS_DESC_PTR(KS60SCSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
   632     { EAknFontCategoryTitle,        12,   21,   EAny, 0,    EAny, ENotBold, ENotAntialiase, EChineseLangsPRCLF, LIT_AS_DESC_PTR(KS60SCSANSTTLSMBLDLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
   708     { EAknFontCategoryTitle,        12,   21,   EAny, 0,    EAny, ENotBold, ENotAntialiase, EChineseLangsPRCLF, LIT_AS_DESC_PTR(KS60SCSANSTTLSMBLDLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
   633     { EAknFontCategoryTitle,        EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsPRCLF, LIT_AS_DESC_PTR(KS60SCSANSTTLSMBLDLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
   709     { EAknFontCategoryTitle,        EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsPRCLF, LIT_AS_DESC_PTR(KS60SCSANSTTLSMBLDLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
   634     { EAknFontCategoryAny,          12,   21,   EAny, 0,    EAny, ENotBold, ENotAntialiase, EChineseLangsPRCLF, LIT_AS_DESC_PTR(KS60SCSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
   710     { EAknFontCategoryAny,          12,   21,   EAny, 0,    EAny, ENotBold, ENotAntialiase, EChineseLangsPRCLF, LIT_AS_DESC_PTR(KS60SCSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
   635     { EAknFontCategoryAny,          EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsPRCLF, LIT_AS_DESC_PTR(KS60SCSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
   711     { EAknFontCategoryAny,          EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsPRCLF, LIT_AS_DESC_PTR(KS60SCSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
   636 
   712 
   637     { EAknFontCategorySecondary,    12,   21,   EAny, 0,    EAny, ENotBold, ENotAntialiase, EChineseLangsTaiwanHKLF, LIT_AS_DESC_PTR(KS60TCHKSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
   713     { EAknFontCategorySecondary,    12,   21,   EStrokeWeightNormal, 0,    EAny, ENotBold, ENotAntialiase, EChineseLangsTaiwanHKLF, LIT_AS_DESC_PTR(KS60TCHKSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
   638     { EAknFontCategorySecondary,    EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKLF, LIT_AS_DESC_PTR(KS60TCHKSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
   714     { EAknFontCategorySecondary,    EAny, EAny, EStrokeWeightNormal, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKLF, LIT_AS_DESC_PTR(KS60TCHKSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
       
   715     { EAknFontCategorySecondary,    12,   21,   EStrokeWeightBold,   0,    EAny, ENotBold, ENotAntialiase, EChineseLangsTaiwanHKLF, LIT_AS_DESC_PTR(KS60TCHKSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
       
   716     { EAknFontCategorySecondary,    EAny, EAny, EStrokeWeightBold,   EAny, EAny, ENotBold, EAntialiase,    EChineseLangsTaiwanHKLF, LIT_AS_DESC_PTR(KS60TCHKSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
   639     { EAknFontCategoryPrimarySmall, 12,   21,   EAny, 0,    EAny, ENotBold, ENotAntialiase, EChineseLangsTaiwanHKLF, LIT_AS_DESC_PTR(KS60TCHKSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
   717     { EAknFontCategoryPrimarySmall, 12,   21,   EAny, 0,    EAny, ENotBold, ENotAntialiase, EChineseLangsTaiwanHKLF, LIT_AS_DESC_PTR(KS60TCHKSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
   640     { EAknFontCategoryPrimarySmall, EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKLF, LIT_AS_DESC_PTR(KS60TCHKSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
   718     { EAknFontCategoryPrimarySmall, EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKLF, LIT_AS_DESC_PTR(KS60TCHKSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
   641     { EAknFontCategoryPrimary,      12,   21,   EAny, 0,    EAny, ENotBold, ENotAntialiase, EChineseLangsTaiwanHKLF, LIT_AS_DESC_PTR(KS60TCHKSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
   719     { EAknFontCategoryPrimary,      12,   21,   EAny, 0,    EAny, ENotBold, ENotAntialiase, EChineseLangsTaiwanHKLF, LIT_AS_DESC_PTR(KS60TCHKSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
   642     { EAknFontCategoryPrimary,      EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKLF, LIT_AS_DESC_PTR(KS60TCHKSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
   720     { EAknFontCategoryPrimary,      EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKLF, LIT_AS_DESC_PTR(KS60TCHKSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
   643     { EAknFontCategoryTitle,        12,   21,   EAny, 0,    EAny, ENotBold, ENotAntialiase, EChineseLangsTaiwanHKLF, LIT_AS_DESC_PTR(KS60TCHKSANSTTLSMBLDLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
   721     { EAknFontCategoryTitle,        12,   21,   EAny, 0,    EAny, ENotBold, ENotAntialiase, EChineseLangsTaiwanHKLF, LIT_AS_DESC_PTR(KS60TCHKSANSTTLSMBLDLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
   644     { EAknFontCategoryTitle,        EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKLF, LIT_AS_DESC_PTR(KS60TCHKSANSTTLSMBLDLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
   722     { EAknFontCategoryTitle,        EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKLF, LIT_AS_DESC_PTR(KS60TCHKSANSTTLSMBLDLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
   645     { EAknFontCategoryAny,          12,   21,   EAny, 0,    EAny, ENotBold, ENotAntialiase, EChineseLangsTaiwanHKLF, LIT_AS_DESC_PTR(KS60TCHKSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
   723     { EAknFontCategoryAny,          12,   21,   EAny, 0,    EAny, ENotBold, ENotAntialiase, EChineseLangsTaiwanHKLF, LIT_AS_DESC_PTR(KS60TCHKSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
   646     { EAknFontCategoryAny,          EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKLF, LIT_AS_DESC_PTR(KS60TCHKSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
   724     { EAknFontCategoryAny,          EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKLF, LIT_AS_DESC_PTR(KS60TCHKSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
   647 
   725 
   648     { EAknFontCategorySecondary,    0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsPRCHiResLF, LIT_AS_DESC_PTR(KS60SCHRSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL },
   726     { EAknFontCategorySecondary,    0, EAny, EStrokeWeightNormal, EAny, EAny, ENotBold, EAntialiase, EChineseLangsPRCHiResLF, LIT_AS_DESC_PTR(KS60SCHRSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL },    
       
   727     { EAknFontCategorySecondary,    0, EAny, EStrokeWeightBold, EAny, EAny, ENotBold, EAntialiase, EChineseLangsPRCHiResLF, LIT_AS_DESC_PTR(KS60SCHRSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL },
   649     { EAknFontCategoryPrimarySmall, 0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsPRCHiResLF, LIT_AS_DESC_PTR(KS60SCHRSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL },
   728     { EAknFontCategoryPrimarySmall, 0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsPRCHiResLF, LIT_AS_DESC_PTR(KS60SCHRSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL },
   650     { EAknFontCategoryPrimary,      0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsPRCHiResLF, LIT_AS_DESC_PTR(KS60SCHRSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL },
   729     { EAknFontCategoryPrimary,      0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsPRCHiResLF, LIT_AS_DESC_PTR(KS60SCHRSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL },
   651     { EAknFontCategoryTitle,        0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsPRCHiResLF, LIT_AS_DESC_PTR(KS60SCHRSANSTTLSMBLDLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL },
   730     { EAknFontCategoryTitle,        0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsPRCHiResLF, LIT_AS_DESC_PTR(KS60SCHRSANSTTLSMBLDLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL },
   652     { EAknFontCategoryAny,          0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsPRCHiResLF, LIT_AS_DESC_PTR(KS60SCHRSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL },
   731     { EAknFontCategoryAny,          0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsPRCHiResLF, LIT_AS_DESC_PTR(KS60SCHRSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL },
   653 
   732 
   654     { EAknFontCategorySecondary,    0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKHiResLF, LIT_AS_DESC_PTR(KS60TCHKHRSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL },
   733     { EAknFontCategorySecondary,    0, EAny, EStrokeWeightNormal, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKHiResLF, LIT_AS_DESC_PTR(KS60TCHKHRSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL }, 
       
   734     { EAknFontCategorySecondary,    0, EAny, EStrokeWeightBold, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKHiResLF, LIT_AS_DESC_PTR(KS60TCHKHRSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL },
   655     { EAknFontCategoryPrimarySmall, 0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKHiResLF, LIT_AS_DESC_PTR(KS60TCHKHRSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL },
   735     { EAknFontCategoryPrimarySmall, 0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKHiResLF, LIT_AS_DESC_PTR(KS60TCHKHRSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL },
   656     { EAknFontCategoryPrimary,      0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKHiResLF, LIT_AS_DESC_PTR(KS60TCHKHRSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL },
   736     { EAknFontCategoryPrimary,      0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKHiResLF, LIT_AS_DESC_PTR(KS60TCHKHRSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL },
   657     { EAknFontCategoryTitle,        0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKHiResLF, LIT_AS_DESC_PTR(KS60TCHKHRSANSTTLSMBLDLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL },
   737     { EAknFontCategoryTitle,        0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKHiResLF, LIT_AS_DESC_PTR(KS60TCHKHRSANSTTLSMBLDLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL },
   658     { EAknFontCategoryAny,          0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKHiResLF, LIT_AS_DESC_PTR(KS60TCHKHRSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL }
   738     { EAknFontCategoryAny,          0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKHiResLF, LIT_AS_DESC_PTR(KS60TCHKHRSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL },
       
   739 //end
       
   740 //jap link
       
   741     { EAknFontCategorySecondary,    12,   15,   EBold, 0,    EAny, ENotBold, ENotAntialiase, EJapaneseLFLangs, LIT_AS_DESC_PTR(KS60JAPSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &heiseiBaselineArray, &japaneseLFHeightRequestArray, NULL },
       
   742     { EAknFontCategorySecondary,    12,   15,   EAny, 0,    EAny, ENotBold, ENotAntialiase, EJapaneseLFLangs, LIT_AS_DESC_PTR(KS60JAPSANSRLF), LIT_AS_DESC_PTR(KS60Group), &heiseiBaselineArray, &japaneseLFHeightRequestArray, NULL },
       
   743     { EAknFontCategorySecondary,    EAny, EAny, EBold, EAny, EAny, ENotBold, EAntialiase, EJapaneseLFLangs, LIT_AS_DESC_PTR(KS60JAPSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &heiseiBaselineArray, &japaneseLFHeightRequestArray, NULL },
       
   744     { EAknFontCategorySecondary,    EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EJapaneseLFLangs, LIT_AS_DESC_PTR(KS60JAPSANSRLF), LIT_AS_DESC_PTR(KS60Group), &heiseiBaselineArray, &japaneseLFHeightRequestArray, NULL },
       
   745     { EAknFontCategoryPrimarySmall, 12,   15,   EAny, 0,    EAny, ENotBold, ENotAntialiase, EJapaneseLFLangs, LIT_AS_DESC_PTR(KS60JAPSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &heiseiBaselineArray, &japaneseLFHeightRequestArray, NULL },
       
   746     { EAknFontCategoryPrimarySmall, EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EJapaneseLFLangs, LIT_AS_DESC_PTR(KS60JAPSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &heiseiBaselineArray, &japaneseLFHeightRequestArray, NULL },
       
   747     { EAknFontCategoryPrimary,      12,   15,   EAny, 0,    EAny, ENotBold, ENotAntialiase, EJapaneseLFLangs, LIT_AS_DESC_PTR(KS60JAPSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &heiseiBaselineArray, &japaneseLFHeightRequestArray, NULL },
       
   748     { EAknFontCategoryPrimary,      EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EJapaneseLFLangs, LIT_AS_DESC_PTR(KS60JAPSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &heiseiBaselineArray, &japaneseLFHeightRequestArray, NULL },
       
   749     { EAknFontCategoryTitle,        12,   15,   EAny, 0,    EAny, ENotBold, ENotAntialiase, EJapaneseLFLangs, LIT_AS_DESC_PTR(KS60JAPSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &heiseiBaselineArray, &japaneseLFHeightRequestArray, NULL },
       
   750     { EAknFontCategoryTitle,        EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EJapaneseLFLangs, LIT_AS_DESC_PTR(KS60JAPSANSTTLSMBLDLF), LIT_AS_DESC_PTR(KS60Group), &heiseiBaselineArray, &japaneseLFHeightRequestArray, NULL },
       
   751     { EAknFontCategoryAny,          12,   15,   EAny, 0,    EAny, ENotBold, ENotAntialiase, EJapaneseLFLangs, LIT_AS_DESC_PTR(KS60JAPSANSRLF), LIT_AS_DESC_PTR(KS60Group), &heiseiBaselineArray, &japaneseLFHeightRequestArray, NULL },
       
   752     { EAknFontCategoryAny,          EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EJapaneseLFLangs, LIT_AS_DESC_PTR(KS60JAPSANSRLF), LIT_AS_DESC_PTR(KS60Group), &heiseiBaselineArray, &japaneseLFHeightRequestArray, NULL },
       
   753 
       
   754 //kor link    
       
   755     { 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) },
       
   756     { 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) },
       
   757     { 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) },
       
   758     { 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) },
       
   759     { 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) },
       
   760     { 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) },
       
   761     { 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) },
       
   762     { 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) },
       
   763     { 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) },
       
   764     { 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) },
       
   765     { 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) },
       
   766     { 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) },
   659 //end
   767 //end
   660     };
   768     };
   661 // ============================ GLOBAL FUNCTIONS ========================================
   769 // ============================ GLOBAL FUNCTIONS ========================================
   662 
   770 
   663 /**
   771 /**
   718     TBool fTCHKFonts = FeatureManager::FeatureSupported(KFeatureIdChineseTaiwanHkFonts);
   826     TBool fTCHKFonts = FeatureManager::FeatureSupported(KFeatureIdChineseTaiwanHkFonts);
   719     TBool fSCFonts = FeatureManager::FeatureSupported(KFeatureIdChinesePrcFonts);
   827     TBool fSCFonts = FeatureManager::FeatureSupported(KFeatureIdChinesePrcFonts);
   720     TBool fHiResFonts = FeatureManager::FeatureSupported(KFeatureIdChineseFontsHires);
   828     TBool fHiResFonts = FeatureManager::FeatureSupported(KFeatureIdChineseFontsHires);
   721     TBool fKorean = FeatureManager::FeatureSupported(KFeatureIdKorean);
   829     TBool fKorean = FeatureManager::FeatureSupported(KFeatureIdKorean);
   722    //chinese adaptation
   830    //chinese adaptation
   723     TBool fChLinkFlag = FeatureManager::FeatureSupported(KFeatureIdFfLinkedFontsChinese);
   831     TBool fLinkedFontsFeature = FeatureManager::FeatureSupported(KFeatureIdFfLinkedFontsChinese);
   724     TBool fChLinkedFonts = EFalse;
   832     TBool fLinkedFonts = EFalse;
   725     //handling error here
   833     //handling error here
   726     //fontlinking unsuccessful, handle with normal font files as earlier
   834     //fontlinking unsuccessful, handle with normal font files as earlier
   727     if(fChLinkFlag)
   835     if(fLinkedFontsFeature)
   728         {
   836         {
   729       if(!LinkTypefacesInstalled(EAknSystemLinkedFonts))
   837       if(!LinkTypefacesInstalled(EAknSystemLinkedFonts))
   730         fChLinkedFonts = EFalse;
   838         fLinkedFonts = EFalse;
   731     else
   839     else
   732         fChLinkedFonts = ETrue;
   840         fLinkedFonts = ETrue;
   733         }
   841         }
   734     //end
   842     //end
   735 
   843 
   736     if(fKorean)
   844     if(fKorean)
   737         {
   845         {
   738         requiredLangs |= EKoreanLangs;
   846         if (fLinkedFonts)
       
   847             requiredLangs |= EKoreanLFLangs;
       
   848         else
       
   849             requiredLangs |= EKoreanLangs;
   739         }
   850         }
   740     else if (fJapanese)
   851     else if (fJapanese)
   741         {
   852         {
   742         requiredLangs |= EJapaneseLangs;
   853         if (fLinkedFonts)
       
   854             requiredLangs |= EJapaneseLFLangs;
       
   855         else
       
   856             requiredLangs |= EJapaneseLangs;
   743         }
   857         }
   744     else if (fTCHKFonts)
   858     else if (fTCHKFonts)
   745         {
   859         {
   746         // TCHK, but use PRC fonts, if lang settings say it's PRC English
   860         // TCHK, but use PRC fonts, if lang settings say it's PRC English
   747         if ((fSCFonts) && (uilang == KLangPrcEnglish || uilang == ELangPrcChinese))
   861         if ((fSCFonts) && (uilang == KLangPrcEnglish || uilang == ELangPrcChinese))
   748             {
   862             {
   749             //chinese adaptation
   863             //chinese adaptation
   750             if (fChLinkedFonts && fHiResFonts)
   864             if (fLinkedFonts && fHiResFonts)
   751                 {
   865                 {
   752                 requiredLangs |= EChineseLangsPRCHiResLF;
   866                 requiredLangs |= EChineseLangsPRCHiResLF;
   753                 }
   867                 }
   754             else if(fChLinkedFonts)
   868             else if(fLinkedFonts)
   755                 {
   869                 {
   756                 requiredLangs |= EChineseLangsPRCLF;
   870                 requiredLangs |= EChineseLangsPRCLF;
   757                 }            
   871                 }            
   758             //end
   872             //end
   759             else if (fHiResFonts)
   873             else if (fHiResFonts)
   766                 }
   880                 }
   767             }
   881             }
   768         else
   882         else
   769             {
   883             {
   770             //chinese adaptation
   884             //chinese adaptation
   771             if (fChLinkedFonts && fHiResFonts)
   885             if (fLinkedFonts && fHiResFonts)
   772                 {
   886                 {
   773                 requiredLangs |= EChineseLangsTaiwanHKHiResLF;
   887                 requiredLangs |= EChineseLangsTaiwanHKHiResLF;
   774                 }  
   888                 }  
   775             else if(fChLinkedFonts)
   889             else if(fLinkedFonts)
   776                 {
   890                 {
   777                 requiredLangs |= EChineseLangsTaiwanHKLF;
   891                 requiredLangs |= EChineseLangsTaiwanHKLF;
   778                 }
   892                 }
   779             //end
   893             //end
   780             else if (fHiResFonts)
   894             else if (fHiResFonts)
   788             }
   902             }
   789         }
   903         }
   790     else if (fSCFonts)
   904     else if (fSCFonts)
   791         {
   905         {
   792         //chinese adaptation
   906         //chinese adaptation
   793         if (fChLinkedFonts && fHiResFonts)
   907         if (fLinkedFonts && fHiResFonts)
   794             {
   908             {
   795             requiredLangs |= EChineseLangsPRCHiResLF;
   909             requiredLangs |= EChineseLangsPRCHiResLF;
   796             }
   910             }
   797         else if(fChLinkedFonts)
   911         else if(fLinkedFonts)
   798             {
   912             {
   799             requiredLangs |= EChineseLangsPRCLF;
   913             requiredLangs |= EChineseLangsPRCLF;
   800             }
   914             }
   801         //end
   915         //end
   802         // PRC (SC)
   916         // PRC (SC)
  1803     }
  1917     }
  1804 
  1918 
  1805 EXPORT_C void AknFontProvider::InitializeSystemL ( const CEikonEnv& aEnv )
  1919 EXPORT_C void AknFontProvider::InitializeSystemL ( const CEikonEnv& aEnv )
  1806     {
  1920     {
  1807     //chinese adaptation
  1921     //chinese adaptation
  1808     TBool fChLinkedFonts = FeatureManager::FeatureSupported(KFeatureIdFfLinkedFontsChinese);
  1922     TBool fLinkedFonts = FeatureManager::FeatureSupported(KFeatureIdFfLinkedFontsChinese);
  1809     TBool fChinese = FeatureManager::FeatureSupported(KFeatureIdChinese);
  1923     if(fLinkedFonts)
  1810     if(fChinese && fChLinkedFonts)
       
  1811       {
  1924       {
  1812       //attempt to create linked font only once
  1925       //attempt to create linked font only once
  1813       if(!LinkTypefacesInstalled())
  1926       if(!LinkTypefacesInstalled())
  1814 	    {
  1927 	    {
  1815 	     //TRAP call necessary
  1928 	     //TRAP call necessary
  2117     _LIT(KTCHKStop, "[TCHK_LINK_STOP]");
  2230     _LIT(KTCHKStop, "[TCHK_LINK_STOP]");
  2118     _LIT(KSCHRStart, "[SCHR_LINK_START]");
  2231     _LIT(KSCHRStart, "[SCHR_LINK_START]");
  2119     _LIT(KSCHRStop, "[SCHR_LINK_STOP]");
  2232     _LIT(KSCHRStop, "[SCHR_LINK_STOP]");
  2120     _LIT(KTCHKHRStart, "[TCHKHR_LINK_START]");
  2233     _LIT(KTCHKHRStart, "[TCHKHR_LINK_START]");
  2121     _LIT(KTCHKHRStop, "[TCHKHR_LINK_STOP]");
  2234     _LIT(KTCHKHRStop, "[TCHKHR_LINK_STOP]");
       
  2235     _LIT(KJAPStart, "[JAP_LINK_START]");
       
  2236     _LIT(KJAPStop, "[JAP_LINK_STOP]");
       
  2237     _LIT(KKORStart, "[KOR_LINK_START]");
       
  2238     _LIT(KKORStop, "[KOR_LINK_STOP]");
  2122 
  2239 
  2123     TInt ret = KErrNone;
  2240     TInt ret = KErrNone;
  2124     RPointerArray<SLinkedFontDetails> fontfiles;
  2241     RPointerArray<SLinkedFontDetails> fontfiles;
  2125     RFs fs;
  2242     RFs fs;
  2126     RFile rFile;
  2243     RFile rFile;
  2131     tfile.Set(rFile);
  2248     tfile.Set(rFile);
  2132     TBuf<256> filedatabuf;
  2249     TBuf<256> filedatabuf;
  2133     TBuf<50> startTok;
  2250     TBuf<50> startTok;
  2134     TBuf<50> stopTok;
  2251     TBuf<50> stopTok;
  2135 
  2252 
  2136     TBool fChLinkedFonts = FeatureManager::FeatureSupported(
  2253     TBool fLinkedFonts = FeatureManager::FeatureSupported(
  2137             KFeatureIdFfLinkedFontsChinese);
  2254             KFeatureIdFfLinkedFontsChinese);
  2138     TBool fTCHKFonts = FeatureManager::FeatureSupported(
  2255     TBool fTCHKFonts = FeatureManager::FeatureSupported(
  2139             KFeatureIdChineseTaiwanHkFonts);
  2256             KFeatureIdChineseTaiwanHkFonts);
  2140     TBool fSCFonts = FeatureManager::FeatureSupported(
  2257     TBool fSCFonts = FeatureManager::FeatureSupported(
  2141             KFeatureIdChinesePrcFonts);
  2258             KFeatureIdChinesePrcFonts);
  2142     TBool fHiResFonts = FeatureManager::FeatureSupported(
  2259     TBool fHiResFonts = FeatureManager::FeatureSupported(
  2143             KFeatureIdChineseFontsHires);
  2260             KFeatureIdChineseFontsHires);
  2144 
  2261 
       
  2262     TBool fJapanese = FeatureManager::FeatureSupported(KFeatureIdJapanese);
       
  2263     TBool fKorean = FeatureManager::FeatureSupported(KFeatureIdKorean);
       
  2264     TBool fChinese = FeatureManager::FeatureSupported(
       
  2265             KFeatureIdChinese);
  2145     
  2266     
  2146     if (fChLinkedFonts)
  2267     if (fLinkedFonts)
  2147         {
  2268         {
  2148 
  2269 
  2149         if (fSCFonts && fHiResFonts)
  2270         if (fSCFonts && fHiResFonts)
  2150             {
  2271             {
  2151             startTok.Copy(KSCHRStart);
  2272             startTok.Copy(KSCHRStart);
  2172             startTok.Copy(KTCHKStart);
  2293             startTok.Copy(KTCHKStart);
  2173             stopTok.Copy(KTCHKStop);
  2294             stopTok.Copy(KTCHKStop);
  2174             tfile.Seek(ESeekStart);
  2295             tfile.Seek(ESeekStart);
  2175             ret = DoPopulateAndCreateLinkFontsL(tfile, startTok, stopTok);
  2296             ret = DoPopulateAndCreateLinkFontsL(tfile, startTok, stopTok);
  2176             }
  2297             }
       
  2298 		if(fJapanese)
       
  2299             {
       
  2300             startTok.Copy(KJAPStart);
       
  2301             stopTok.Copy(KJAPStop);
       
  2302             tfile.Seek(ESeekStart);
       
  2303             ret = DoPopulateAndCreateLinkFontsL(tfile, startTok, stopTok);   
       
  2304             }    
       
  2305         if(fKorean)
       
  2306             {
       
  2307             startTok.Copy(KKORStart);
       
  2308             stopTok.Copy(KKORStop);
       
  2309             tfile.Seek(ESeekStart);
       
  2310             ret = DoPopulateAndCreateLinkFontsL(tfile, startTok, stopTok);
       
  2311             }			
  2177         
  2312         
  2178         }
  2313         }
       
  2314         
  2179 
  2315 
  2180     
  2316     
  2181     rFile.Close();
  2317     rFile.Close();
  2182     fs.Close();
  2318     fs.Close();
  2183     return ret;
  2319     return ret;
  2208             KFeatureIdChineseTaiwanHkFonts);
  2344             KFeatureIdChineseTaiwanHkFonts);
  2209     TBool fSCFonts = FeatureManager::FeatureSupported(
  2345     TBool fSCFonts = FeatureManager::FeatureSupported(
  2210             KFeatureIdChinesePrcFonts);
  2346             KFeatureIdChinesePrcFonts);
  2211     TBool fHiResFonts = FeatureManager::FeatureSupported(
  2347     TBool fHiResFonts = FeatureManager::FeatureSupported(
  2212             KFeatureIdChineseFontsHires);
  2348             KFeatureIdChineseFontsHires);
       
  2349    TBool fChinese = FeatureManager::FeatureSupported(
       
  2350             KFeatureIdChinese);
       
  2351     TBool fJapanese = FeatureManager::FeatureSupported(KFeatureIdJapanese);
       
  2352     TBool fKorean = FeatureManager::FeatureSupported(KFeatureIdKorean);
  2213 
  2353 
  2214     
  2354     
  2215     TBool ret = EFalse;
  2355     TBool ret = EFalse;
  2216     TInt files = 0, ref = 0;
  2356     TInt files = 0, ref = 0;
  2217     if( (EAknAllLinkedFonts == aFonttype) || (EAknSystemLinkedFonts == aFonttype))
  2357     if( (EAknAllLinkedFonts == aFonttype) || (EAknSystemLinkedFonts == aFonttype))
  2218         {
  2358         {
  2219         if(fSCFonts)
  2359         if( (fChinese && fSCFonts ))
  2220            ref +=KAknFontStylesSupported;
  2360            ref +=KAknFontStylesSupported;
  2221         if(fTCHKFonts)
  2361         if(fChinese && fTCHKFonts)
  2222            ref +=KAknFontStylesSupported;
  2362            ref +=KAknFontStylesSupported;
       
  2363         if(fJapanese)
       
  2364             ref +=KAknFontStylesSupported;
       
  2365         if(fKorean)
       
  2366             ref +=KAknFontStylesSupported;
  2223         }
  2367         }
  2224     for (TInt i = 0; i < noOfTypefaces; i++)
  2368     for (TInt i = 0; i < noOfTypefaces; i++)
  2225         {
  2369         {
  2226         TTypefaceSupport typefaceInfo;
  2370         TTypefaceSupport typefaceInfo;
  2227         screenDevice->TypefaceSupport(typefaceInfo, i);
  2371         screenDevice->TypefaceSupport(typefaceInfo, i);
  2265                 typefaceInfo.iTypeface.iName.Compare(KS60TCHKSANSTTLSMBLDLF)==0)
  2409                 typefaceInfo.iTypeface.iName.Compare(KS60TCHKSANSTTLSMBLDLF)==0)
  2266                 {
  2410                 {
  2267                 files++;
  2411                 files++;
  2268                 }
  2412                 }
  2269             }
  2413             }
  2270         }
  2414             if (fJapanese)
  2271       }
  2415                 {
  2272     if (ref == files)
  2416                 if (typefaceInfo.iTypeface.iName.Compare(KS60JAPSANSRLF)==0|| 
       
  2417                     typefaceInfo.iTypeface.iName.Compare(KS60JAPSANSSBLF)==0||
       
  2418                     typefaceInfo.iTypeface.iName.Compare(KS60JAPSANSTTLSMBLDLF)==0)
       
  2419                     {
       
  2420                     files++;
       
  2421                     }
       
  2422 
       
  2423                 }
       
  2424             if (fKorean)
       
  2425                 {
       
  2426                 if (typefaceInfo.iTypeface.iName.Compare(KS60KORSANSRLF)==0|| 
       
  2427                     typefaceInfo.iTypeface.iName.Compare(KS60KORSANSSBLF)==0|| 
       
  2428                     typefaceInfo.iTypeface.iName.Compare(KS60KORSANSTTLSMBLDLF) == 0)
       
  2429                     {
       
  2430                     files++;
       
  2431                     }
       
  2432 
       
  2433                 }
       
  2434             }
       
  2435         }
       
  2436     if (files && (ref == files) )
  2273         ret = ETrue;
  2437         ret = ETrue;
  2274     return ret;
  2438     return ret;
  2275     }
  2439     }
  2276  
  2440  
  2277 //  End of File
  2441 //  End of File