fontsupport/fontprovider/Src/FontProvider.cpp
branchRCL_3
changeset 106 e4e3998ddda2
parent 100 9dbe1b043bea
child 107 9f95a5546443
equal deleted inserted replaced
100:9dbe1b043bea 106:e4e3998ddda2
    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,"MHeiM-C-B5HK-S60");
    77 _LIT(KS60SCHiRes,"Sans MT SC 936_S60C");
    77 _LIT(KS60SCHiRes,"MHeiM-C-GB18030-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 
       
   237 #define EElafLFLoReLangs   (  EElafLangs \
       
   238                                | EChineseLangsPRCLF)
       
   239 
       
   240 
       
   241 #define EElafLFHiReLangs   (  EElafLangs \
       
   242                                | EChineseLangsPRCHiResLF)
   221 // Wildcard value for langs (font is to be used for all languages)
   243 // Wildcard value for langs (font is to be used for all languages)
   222 #define EAnyLangs           0xffffffff
   244 #define EAnyLangs           0xffffffff
   223 const TInt KAknFontStylesSupported(3);
   245 const TInt KAknFontStylesSupported(3);
   224 enum TAknLinkedFontTypes
   246 enum TAknLinkedFontTypes
   225     {
   247     {
   316         { 79, 72 }, 
   338         { 79, 72 }, 
   317         { 218, 200 }, 
   339         { 218, 200 }, 
   318     }
   340     }
   319 CDL_ARRAY_END(SHeightRequest, latinHeightRequestArray);
   341 CDL_ARRAY_END(SHeightRequest, latinHeightRequestArray);
   320 
   342 
       
   343 CDL_ARRAY_START( SHeightRequest, latinLFHeightRequestArray)
       
   344     {
       
   345         {  2,  2 }, 
       
   346         { 10,  8 }, 
       
   347         { 11,  9 }, 
       
   348         { 13, 11 }, 
       
   349         { 14, 12 }, 
       
   350         { 14, 13 }, 
       
   351         { 16, 14 }, 
       
   352         { 18, 15 }, 
       
   353         { 19, 16 }, 
       
   354         { 24, 21 }, 
       
   355         { 25, 22 }, 
       
   356         { 26, 24 }, 
       
   357         { 27, 25 }, 
       
   358         { 28, 26 }, 
       
   359         { 29, 26 }, 
       
   360         { 30, 27 }, 
       
   361         { 79, 72 }, 
       
   362         { 218, 200 }, 
       
   363     }
       
   364 CDL_ARRAY_END(SHeightRequest, latinLFHeightRequestArray);
   321 
   365 
   322 CDL_ARRAY_START( SHeightRequest, agfaDigitalHeightRequestArray)
   366 CDL_ARRAY_START( SHeightRequest, agfaDigitalHeightRequestArray)
   323     {
   367     {
   324         { 5, 5 },
   368         { 5, 5 },
   325         { 18, 16 },
   369         { 18, 16 },
   445         { 79, 72 }, 
   489         { 79, 72 }, 
   446         { 218, 200 }, 
   490         { 218, 200 }, 
   447     }
   491     }
   448 CDL_ARRAY_END(SHeightRequest, chnlinkedFontHeightRequestArray);
   492 CDL_ARRAY_END(SHeightRequest, chnlinkedFontHeightRequestArray);
   449 
   493 
   450 CDL_ARRAY_START( SHeightRequest, chnHrLftHeightRequestArray)
   494 CDL_ARRAY_START( SHeightRequest, japaneseLFHeightRequestArray)
   451     {
   495     {
   452         {  2,  2 }, 
   496         {  2,  2 }, 
   453         { 10,  10 }, 
   497         { 10,  8 }, 
   454         { 11,  10 }, 
   498         { 11,  9 }, 
   455         { 13, 12 }, 
   499         { 13, 10 }, 
   456         { 14, 14 }, 
   500         { 14, 12 }, 
   457         { 15, 14 }, 
   501         { 15, 12 }, 
   458         { 16, 16 }, 
   502         { 16, 14 }, 
   459         { 18, 18 }, 
   503         { 17, 14 }, 
   460         { 19, 18 }, 
   504         { 18, 14 }, 
   461         { 24, 23 }, 
   505         { 19, 16 }, 
   462         { 25, 25 }, 
   506         { 20, 16 }, 
   463         { 26, 26 }, 
   507         { 21, 18 }, 
   464         { 27, 27 }, 
   508         { 24, 21 }, 
   465         { 28, 28 }, 
   509         { 25, 22 }, 
   466         { 29, 29 }, 
   510         { 26, 24 }, 
   467         { 30, 30 }, 
   511         { 27, 25 }, 
       
   512         { 28, 26 }, 
       
   513         { 29, 26 }, 
       
   514         { 30, 27 }, 
   468         { 79, 72 }, 
   515         { 79, 72 }, 
   469         { 218, 200 }, 
   516         { 218, 200 }, 
   470     }
   517     }
   471 CDL_ARRAY_END(SHeightRequest, chnHrLftHeightRequestArray);
   518 CDL_ARRAY_END(SHeightRequest, japaneseLFHeightRequestArray);
       
   519 
       
   520 CDL_ARRAY_START( SHeightRequest, koreanLFHeightRequestArray)
       
   521     {
       
   522         {  2,  2 }, 
       
   523         { 8, 6 },
       
   524         { 9, 6 },
       
   525         { 10,  8 }, 
       
   526         { 11,  8 }, 
       
   527         { 13, 11 }, 
       
   528         { 14, 12 }, 
       
   529         { 15, 12 },
       
   530         { 16, 14 },
       
   531         { 17, 14 },
       
   532         { 18, 16 },
       
   533         { 19, 16 },
       
   534         { 20, 18 },
       
   535         { 21, 18 },
       
   536         { 22, 20 },
       
   537         { 23, 20 },
       
   538         { 24, 22 },
       
   539         { 25, 22 },
       
   540         { 26, 24 },
       
   541         { 27, 24 },
       
   542         { 28, 26 }, 
       
   543         { 29, 26 }, 
       
   544         { 30, 27 }, 
       
   545         { 79, 72 }, 
       
   546         { 218, 200 }, 
       
   547     }
       
   548 CDL_ARRAY_END(SHeightRequest, koreanLFHeightRequestArray);
   472 
   549 
   473 // Typeface Aliasing
   550 // Typeface Aliasing
   474 
   551 
   475 // Minimum length for alias substring matching
   552 // Minimum length for alias substring matching
   476 #define KMinAliasLength 2
   553 #define KMinAliasLength 2
   527         //chinese adaptation
   604         //chinese adaptation
   528         { EChineseLangsPRCLF, LIT_AS_DESC_PTR(KS60SCSANSRLF) },
   605         { EChineseLangsPRCLF, LIT_AS_DESC_PTR(KS60SCSANSRLF) },
   529         { EChineseLangsTaiwanHKLF, LIT_AS_DESC_PTR(KS60TCHKSANSRLF) },
   606         { EChineseLangsTaiwanHKLF, LIT_AS_DESC_PTR(KS60TCHKSANSRLF) },
   530         { EChineseLangsPRCHiResLF, LIT_AS_DESC_PTR(KS60SCHRSANSRLF) },
   607         { EChineseLangsPRCHiResLF, LIT_AS_DESC_PTR(KS60SCHRSANSRLF) },
   531         { EChineseLangsTaiwanHKHiResLF, LIT_AS_DESC_PTR(KS60TCHKHRSANSRLF) },
   608         { EChineseLangsTaiwanHKHiResLF, LIT_AS_DESC_PTR(KS60TCHKHRSANSRLF) },
   532         //end
   609         { EJapaneseLFLangs, LIT_AS_DESC_PTR(KS60JAPSANSRLF) },
       
   610         { EKoreanLFLangs, LIT_AS_DESC_PTR(KS60KORSANSRLF) },
       
   611         { EElafLFHiReLangs, LIT_AS_DESC_PTR(KS60SCHRSANSRLF) },
       
   612         { EElafLFLoReLangs, LIT_AS_DESC_PTR(KS60SCSANSRLF) },
       
   613         //end        
   533         { EAnyLangs, LIT_AS_DESC_PTR(KS60Sans) } // Ultimate fallback
   614         { EAnyLangs, LIT_AS_DESC_PTR(KS60Sans) } // Ultimate fallback
   534     }
   615     }
   535 CDL_ARRAY_END(SAknLanguagesAndTypefaceTableLine, languagesAndTypefaceTable);
   616 CDL_ARRAY_END(SAknLanguagesAndTypefaceTableLine, languagesAndTypefaceTable);
   536 
   617 
   537 
   618 
   670     { EAknFontCategoryTitle,        12,   21,   EAny, 0,    EAny, ENotBold, ENotAntialiase, EChineseLangsTaiwanHKLF, LIT_AS_DESC_PTR(KS60TCHKSANSTTLSMBLDLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
   751     { EAknFontCategoryTitle,        12,   21,   EAny, 0,    EAny, ENotBold, ENotAntialiase, EChineseLangsTaiwanHKLF, LIT_AS_DESC_PTR(KS60TCHKSANSTTLSMBLDLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
   671     { EAknFontCategoryTitle,        EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKLF, LIT_AS_DESC_PTR(KS60TCHKSANSTTLSMBLDLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
   752     { EAknFontCategoryTitle,        EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKLF, LIT_AS_DESC_PTR(KS60TCHKSANSTTLSMBLDLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
   672     { EAknFontCategoryAny,          12,   21,   EAny, 0,    EAny, ENotBold, ENotAntialiase, EChineseLangsTaiwanHKLF, LIT_AS_DESC_PTR(KS60TCHKSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
   753     { EAknFontCategoryAny,          12,   21,   EAny, 0,    EAny, ENotBold, ENotAntialiase, EChineseLangsTaiwanHKLF, LIT_AS_DESC_PTR(KS60TCHKSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
   673     { EAknFontCategoryAny,          EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKLF, LIT_AS_DESC_PTR(KS60TCHKSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
   754     { EAknFontCategoryAny,          EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKLF, LIT_AS_DESC_PTR(KS60TCHKSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, &chnlinkedFontHeightRequestArray, NULL },
   674 
   755 
   675     { EAknFontCategorySecondary,    0, EAny, EStrokeWeightNormal, EAny, EAny, ENotBold, EAntialiase, EChineseLangsPRCHiResLF, LIT_AS_DESC_PTR(KS60SCHRSANSRLF), LIT_AS_DESC_PTR(KS60Group), NULL, &chnHrLftHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) },    
   756     { EAknFontCategorySecondary,    0, EAny, EStrokeWeightNormal, EAny, EAny, ENotBold, EAntialiase, EChineseLangsPRCHiResLF, LIT_AS_DESC_PTR(KS60SCHRSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL },    
   676     { EAknFontCategorySecondary,    0, EAny, EStrokeWeightBold, EAny, EAny, ENotBold, EAntialiase, EChineseLangsPRCHiResLF, LIT_AS_DESC_PTR(KS60SCHRSANSSBLF), LIT_AS_DESC_PTR(KS60Group), NULL, &chnHrLftHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) },
   757     { EAknFontCategorySecondary,    0, EAny, EStrokeWeightBold, EAny, EAny, ENotBold, EAntialiase, EChineseLangsPRCHiResLF, LIT_AS_DESC_PTR(KS60SCHRSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL },
   677     { EAknFontCategoryPrimarySmall, 0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsPRCHiResLF, LIT_AS_DESC_PTR(KS60SCHRSANSSBLF), LIT_AS_DESC_PTR(KS60Group), NULL, &chnHrLftHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) },
   758     { EAknFontCategoryPrimarySmall, 0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsPRCHiResLF, LIT_AS_DESC_PTR(KS60SCHRSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL },
   678     { EAknFontCategoryPrimary,      0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsPRCHiResLF, LIT_AS_DESC_PTR(KS60SCHRSANSSBLF), LIT_AS_DESC_PTR(KS60Group), NULL, &chnHrLftHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) },
   759     { EAknFontCategoryPrimary,      0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsPRCHiResLF, LIT_AS_DESC_PTR(KS60SCHRSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL },
   679     { EAknFontCategoryTitle,        0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsPRCHiResLF, LIT_AS_DESC_PTR(KS60SCHRSANSTTLSMBLDLF), LIT_AS_DESC_PTR(KS60Group), NULL, &chnHrLftHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) },
   760     { EAknFontCategoryTitle,        0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsPRCHiResLF, LIT_AS_DESC_PTR(KS60SCHRSANSTTLSMBLDLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL },
   680     { EAknFontCategoryAny,          0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsPRCHiResLF, LIT_AS_DESC_PTR(KS60SCHRSANSRLF), LIT_AS_DESC_PTR(KS60Group), NULL, &chnHrLftHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) },
   761     { EAknFontCategoryAny,          0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsPRCHiResLF, LIT_AS_DESC_PTR(KS60SCHRSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL },
   681 
   762 
   682     { EAknFontCategorySecondary,    0, EAny, EStrokeWeightNormal, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKHiResLF, LIT_AS_DESC_PTR(KS60TCHKHRSANSRLF), LIT_AS_DESC_PTR(KS60Group), NULL, &chnHrLftHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) }, 
   763     { EAknFontCategorySecondary,    0, EAny, EStrokeWeightNormal, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKHiResLF, LIT_AS_DESC_PTR(KS60TCHKHRSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL }, 
   683     { EAknFontCategorySecondary,    0, EAny, EStrokeWeightBold, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKHiResLF, LIT_AS_DESC_PTR(KS60TCHKHRSANSSBLF), LIT_AS_DESC_PTR(KS60Group), NULL, &chnHrLftHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) },
   764     { EAknFontCategorySecondary,    0, EAny, EStrokeWeightBold, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKHiResLF, LIT_AS_DESC_PTR(KS60TCHKHRSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL },
   684     { EAknFontCategoryPrimarySmall, 0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKHiResLF, LIT_AS_DESC_PTR(KS60TCHKHRSANSSBLF), LIT_AS_DESC_PTR(KS60Group), NULL, &chnHrLftHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) },
   765     { EAknFontCategoryPrimarySmall, 0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKHiResLF, LIT_AS_DESC_PTR(KS60TCHKHRSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL },
   685     { EAknFontCategoryPrimary,      0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKHiResLF, LIT_AS_DESC_PTR(KS60TCHKHRSANSSBLF), LIT_AS_DESC_PTR(KS60Group), NULL, &chnHrLftHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) },
   766     { EAknFontCategoryPrimary,      0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKHiResLF, LIT_AS_DESC_PTR(KS60TCHKHRSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL },
   686     { EAknFontCategoryTitle,        0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKHiResLF, LIT_AS_DESC_PTR(KS60TCHKHRSANSTTLSMBLDLF), LIT_AS_DESC_PTR(KS60Group), NULL, &chnHrLftHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) },
   767     { EAknFontCategoryTitle,        0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKHiResLF, LIT_AS_DESC_PTR(KS60TCHKHRSANSTTLSMBLDLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL },
   687     { EAknFontCategoryAny,          0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKHiResLF, LIT_AS_DESC_PTR(KS60TCHKHRSANSRLF), LIT_AS_DESC_PTR(KS60Group), NULL, &chnHrLftHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) }
   768     { EAknFontCategoryAny,          0, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EChineseLangsTaiwanHKHiResLF, LIT_AS_DESC_PTR(KS60TCHKHRSANSRLF), LIT_AS_DESC_PTR(KS60Group), &apacVectorFontBaselineArray, NULL, NULL },
       
   769 //end
       
   770 //jap link
       
   771     { EAknFontCategorySecondary,    12,   15,   EBold, 0,    EAny, ENotBold, ENotAntialiase, EJapaneseLFLangs, LIT_AS_DESC_PTR(KS60JAPSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &heiseiBaselineArray, &japaneseLFHeightRequestArray, NULL },
       
   772     { EAknFontCategorySecondary,    12,   15,   EAny, 0,    EAny, ENotBold, ENotAntialiase, EJapaneseLFLangs, LIT_AS_DESC_PTR(KS60JAPSANSRLF), LIT_AS_DESC_PTR(KS60Group), &heiseiBaselineArray, &japaneseLFHeightRequestArray, NULL },
       
   773     { EAknFontCategorySecondary,    EAny, EAny, EBold, EAny, EAny, ENotBold, EAntialiase, EJapaneseLFLangs, LIT_AS_DESC_PTR(KS60JAPSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &heiseiBaselineArray, &japaneseLFHeightRequestArray, NULL },
       
   774     { EAknFontCategorySecondary,    EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EJapaneseLFLangs, LIT_AS_DESC_PTR(KS60JAPSANSRLF), LIT_AS_DESC_PTR(KS60Group), &heiseiBaselineArray, &japaneseLFHeightRequestArray, NULL },
       
   775     { EAknFontCategoryPrimarySmall, 12,   15,   EAny, 0,    EAny, ENotBold, ENotAntialiase, EJapaneseLFLangs, LIT_AS_DESC_PTR(KS60JAPSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &heiseiBaselineArray, &japaneseLFHeightRequestArray, NULL },
       
   776     { EAknFontCategoryPrimarySmall, EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EJapaneseLFLangs, LIT_AS_DESC_PTR(KS60JAPSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &heiseiBaselineArray, &japaneseLFHeightRequestArray, NULL },
       
   777     { EAknFontCategoryPrimary,      12,   15,   EAny, 0,    EAny, ENotBold, ENotAntialiase, EJapaneseLFLangs, LIT_AS_DESC_PTR(KS60JAPSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &heiseiBaselineArray, &japaneseLFHeightRequestArray, NULL },
       
   778     { EAknFontCategoryPrimary,      EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EJapaneseLFLangs, LIT_AS_DESC_PTR(KS60JAPSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &heiseiBaselineArray, &japaneseLFHeightRequestArray, NULL },
       
   779     { EAknFontCategoryTitle,        12,   15,   EAny, 0,    EAny, ENotBold, ENotAntialiase, EJapaneseLFLangs, LIT_AS_DESC_PTR(KS60JAPSANSSBLF), LIT_AS_DESC_PTR(KS60Group), &heiseiBaselineArray, &japaneseLFHeightRequestArray, NULL },
       
   780     { EAknFontCategoryTitle,        EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EJapaneseLFLangs, LIT_AS_DESC_PTR(KS60JAPSANSTTLSMBLDLF), LIT_AS_DESC_PTR(KS60Group), &heiseiBaselineArray, &japaneseLFHeightRequestArray, NULL },
       
   781     { EAknFontCategoryAny,          12,   15,   EAny, 0,    EAny, ENotBold, ENotAntialiase, EJapaneseLFLangs, LIT_AS_DESC_PTR(KS60JAPSANSRLF), LIT_AS_DESC_PTR(KS60Group), &heiseiBaselineArray, &japaneseLFHeightRequestArray, NULL },
       
   782     { EAknFontCategoryAny,          EAny, EAny, EAny, EAny, EAny, ENotBold, EAntialiase, EJapaneseLFLangs, LIT_AS_DESC_PTR(KS60JAPSANSRLF), LIT_AS_DESC_PTR(KS60Group), &heiseiBaselineArray, &japaneseLFHeightRequestArray, NULL },
       
   783 
       
   784 //kor link    
       
   785     { 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) },
       
   786     { 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) },
       
   787     { 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) },
       
   788     { 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) },
       
   789     { 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) },
       
   790     { 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) },
       
   791     { 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) },
       
   792     { 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) },
       
   793     { 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) },
       
   794     { 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) },
       
   795     { 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) },
       
   796     { 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) },
       
   797 //western SC link
       
   798     //stroke font
       
   799     { EAknFontCategorySecondary,    10,   15,   EStrokeWeightNormal, 0,    EAny, ENotBold, ENotAntialiase, EElafLFLoReLangs, LIT_AS_DESC_PTR(KS60SCSANSRLF), LIT_AS_DESC_PTR(KS60Group), NULL, &latinLFHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) },
       
   800     { EAknFontCategorySecondary,    EAny, EAny, EStrokeWeightNormal, EAny, EAny, ENotBold, EAntialiase,    EElafLFLoReLangs, LIT_AS_DESC_PTR(KS60SCSANSRLF), LIT_AS_DESC_PTR(KS60Group), NULL, &latinLFHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) },
       
   801     { EAknFontCategorySecondary,    10,   15,   EStrokeWeightBold,   0,    EAny, ENotBold,    ENotAntialiase, EElafLFLoReLangs, LIT_AS_DESC_PTR(KS60SCSANSSBLF), LIT_AS_DESC_PTR(KS60Group), NULL, &latinLFHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) },
       
   802     { EAknFontCategorySecondary,    EAny, EAny, EStrokeWeightBold,   EAny, EAny, ENotBold,    EAntialiase,    EElafLFLoReLangs, LIT_AS_DESC_PTR(KS60SCSANSSBLF), LIT_AS_DESC_PTR(KS60Group), NULL, &latinLFHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) },
       
   803     { EAknFontCategoryPrimarySmall, 10,   15,   EAny,                0,    EAny, ENotBold,    ENotAntialiase, EElafLFLoReLangs, LIT_AS_DESC_PTR(KS60SCSANSSBLF), LIT_AS_DESC_PTR(KS60Group), NULL, &latinLFHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) },
       
   804     { EAknFontCategoryPrimarySmall, EAny, EAny, EAny,                EAny, EAny, ENotBold,    EAntialiase,    EElafLFLoReLangs, LIT_AS_DESC_PTR(KS60SCSANSSBLF), LIT_AS_DESC_PTR(KS60Group), NULL, &latinLFHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) },
       
   805     { EAknFontCategoryPrimary,      10,   15,   EAny,                0,    EAny, ENotBold,    ENotAntialiase, EElafLFLoReLangs, LIT_AS_DESC_PTR(KS60SCSANSSBLF), LIT_AS_DESC_PTR(KS60Group), NULL, &latinLFHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) },
       
   806     { EAknFontCategoryPrimary,      EAny, EAny, EAny,                EAny, EAny, ENotBold,    EAntialiase,    EElafLFLoReLangs, LIT_AS_DESC_PTR(KS60SCSANSSBLF), LIT_AS_DESC_PTR(KS60Group), NULL, &latinLFHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) },
       
   807     { EAknFontCategoryTitle,        10,   17,   EAny,                0,    EAny, ENotBold, ENotAntialiase, EElafLFLoReLangs, LIT_AS_DESC_PTR(KS60SCSANSTTLSMBLDLF), LIT_AS_DESC_PTR(KS60Group), NULL, &latinLFHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) },
       
   808     { EAknFontCategoryTitle,        EAny, EAny, EAny,                EAny, EAny, ENotBold, EAntialiase,  EElafLFLoReLangs, LIT_AS_DESC_PTR(KS60SCSANSTTLSMBLDLF), LIT_AS_DESC_PTR(KS60Group), NULL, &latinLFHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) },
       
   809     { EAknFontCategoryAny,          10,   15,   EStrokeWeightNormal, 0,    EAny, ENotBold, ENotAntialiase, EElafLFLoReLangs, LIT_AS_DESC_PTR(KS60SCSANSRLF), LIT_AS_DESC_PTR(KS60Group), NULL, &latinLFHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) },
       
   810     { EAknFontCategoryAny,          EAny, EAny, EStrokeWeightNormal, EAny, EAny, ENotBold, EAntialiase, EElafLFLoReLangs, LIT_AS_DESC_PTR(KS60SCSANSRLF), LIT_AS_DESC_PTR(KS60Group), NULL, &latinLFHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) },
       
   811     { EAknFontCategoryAny,          10,   15,   EStrokeWeightBold,   0,    EAny, ENotBold,    ENotAntialiase, EElafLFLoReLangs, LIT_AS_DESC_PTR(KS60SCSANSSBLF), LIT_AS_DESC_PTR(KS60Group), NULL, &latinLFHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) },
       
   812     { EAknFontCategoryAny,          EAny, EAny, EStrokeWeightBold,   EAny, EAny, ENotBold,    EAntialiase, EElafLFLoReLangs, LIT_AS_DESC_PTR(KS60SCSANSSBLF), LIT_AS_DESC_PTR(KS60Group), NULL, &latinLFHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) },
       
   813 
       
   814     //hi-res fonts
       
   815     { EAknFontCategorySecondary,    10,   15,   EStrokeWeightNormal, 0,    EAny, ENotBold, ENotAntialiase, EElafLFHiReLangs, LIT_AS_DESC_PTR(KS60SCSANSRLF), LIT_AS_DESC_PTR(KS60Group), NULL, &latinLFHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) },
       
   816     { EAknFontCategorySecondary,    EAny, EAny, EStrokeWeightNormal, EAny, EAny, ENotBold, EAntialiase,    EElafLFHiReLangs, LIT_AS_DESC_PTR(KS60SCSANSRLF), LIT_AS_DESC_PTR(KS60Group), NULL, &latinLFHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) },
       
   817     { EAknFontCategorySecondary,    10,   15,   EStrokeWeightBold,   0,    EAny, ENotBold,    ENotAntialiase, EElafLFHiReLangs, LIT_AS_DESC_PTR(KS60SCSANSSBLF), LIT_AS_DESC_PTR(KS60Group), NULL, &latinLFHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) },
       
   818     { EAknFontCategorySecondary,    EAny, EAny, EStrokeWeightBold,   EAny, EAny, ENotBold,    EAntialiase,    EElafLFHiReLangs, LIT_AS_DESC_PTR(KS60SCSANSSBLF), LIT_AS_DESC_PTR(KS60Group), NULL, &latinLFHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) },
       
   819     { EAknFontCategoryPrimarySmall, 10,   15,   EAny,                0,    EAny, ENotBold,    ENotAntialiase, EElafLFHiReLangs, LIT_AS_DESC_PTR(KS60SCSANSSBLF), LIT_AS_DESC_PTR(KS60Group), NULL, &latinLFHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) },
       
   820     { EAknFontCategoryPrimarySmall, EAny, EAny, EAny,                EAny, EAny, ENotBold,    EAntialiase,    EElafLFHiReLangs, LIT_AS_DESC_PTR(KS60SCSANSSBLF), LIT_AS_DESC_PTR(KS60Group), NULL, &latinLFHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) },
       
   821     { EAknFontCategoryPrimary,      10,   15,   EAny,                0,    EAny, ENotBold,    ENotAntialiase, EElafLFHiReLangs, LIT_AS_DESC_PTR(KS60SCSANSSBLF), LIT_AS_DESC_PTR(KS60Group), NULL, &latinLFHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) },
       
   822     { EAknFontCategoryPrimary,      EAny, EAny, EAny,                EAny, EAny, ENotBold,    EAntialiase,    EElafLFHiReLangs, LIT_AS_DESC_PTR(KS60SCSANSSBLF), LIT_AS_DESC_PTR(KS60Group), NULL, &latinLFHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) },
       
   823     { EAknFontCategoryTitle,        10,   17,   EAny,                0,    EAny, ENotBold, ENotAntialiase, EElafLFHiReLangs, LIT_AS_DESC_PTR(KS60SCSANSTTLSMBLDLF), LIT_AS_DESC_PTR(KS60Group), NULL, &latinLFHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) },
       
   824     { EAknFontCategoryTitle,        EAny, EAny, EAny,                EAny, EAny, ENotBold, EAntialiase,  EElafLFHiReLangs, LIT_AS_DESC_PTR(KS60SCSANSTTLSMBLDLF), LIT_AS_DESC_PTR(KS60Group), NULL, &latinLFHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) },
       
   825     { EAknFontCategoryAny,          10,   15,   EStrokeWeightNormal, 0,    EAny, ENotBold, ENotAntialiase, EElafLFHiReLangs, LIT_AS_DESC_PTR(KS60SCSANSRLF), LIT_AS_DESC_PTR(KS60Group), NULL, &latinLFHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) },
       
   826     { EAknFontCategoryAny,          EAny, EAny, EStrokeWeightNormal, EAny, EAny, ENotBold, EAntialiase, EElafLFHiReLangs, LIT_AS_DESC_PTR(KS60SCSANSRLF), LIT_AS_DESC_PTR(KS60Group), NULL, &latinLFHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) },
       
   827     { EAknFontCategoryAny,          10,   15,   EStrokeWeightBold,   0,    EAny, ENotBold,    ENotAntialiase, EElafLFHiReLangs, LIT_AS_DESC_PTR(KS60SCSANSSBLF), LIT_AS_DESC_PTR(KS60Group), NULL, &latinLFHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) },
       
   828     { EAknFontCategoryAny,          EAny, EAny, EStrokeWeightBold,   EAny, EAny, ENotBold,    EAntialiase, EElafLFHiReLangs, LIT_AS_DESC_PTR(KS60SCSANSSBLF), LIT_AS_DESC_PTR(KS60Group), NULL, &latinLFHeightRequestArray, LIT_AS_DESC_PTR(KWesternFontMaxExtentText) },
   688 //end
   829 //end
   689     };
   830     };
   690 // ============================ GLOBAL FUNCTIONS ========================================
   831 // ============================ GLOBAL FUNCTIONS ========================================
   691 
   832 
   692 /**
   833 /**
   747     TBool fTCHKFonts = FeatureManager::FeatureSupported(KFeatureIdChineseTaiwanHkFonts);
   888     TBool fTCHKFonts = FeatureManager::FeatureSupported(KFeatureIdChineseTaiwanHkFonts);
   748     TBool fSCFonts = FeatureManager::FeatureSupported(KFeatureIdChinesePrcFonts);
   889     TBool fSCFonts = FeatureManager::FeatureSupported(KFeatureIdChinesePrcFonts);
   749     TBool fHiResFonts = FeatureManager::FeatureSupported(KFeatureIdChineseFontsHires);
   890     TBool fHiResFonts = FeatureManager::FeatureSupported(KFeatureIdChineseFontsHires);
   750     TBool fKorean = FeatureManager::FeatureSupported(KFeatureIdKorean);
   891     TBool fKorean = FeatureManager::FeatureSupported(KFeatureIdKorean);
   751    //chinese adaptation
   892    //chinese adaptation
   752     TBool fChLinkFlag = FeatureManager::FeatureSupported(KFeatureIdFfLinkedFontsChinese);
   893     TBool fLinkedFontsFeature = FeatureManager::FeatureSupported(KFeatureIdFfLinkedFontsChinese);
   753     TBool fChLinkedFonts = EFalse;
   894     TBool fLinkedFonts = EFalse;
   754     //handling error here
   895     //handling error here
   755     //fontlinking unsuccessful, handle with normal font files as earlier
   896     //fontlinking unsuccessful, handle with normal font files as earlier
   756     if(fChLinkFlag)
   897     if(fLinkedFontsFeature)
   757         {
   898         {
   758       if(!LinkTypefacesInstalled(EAknSystemLinkedFonts))
   899       if(!LinkTypefacesInstalled(EAknSystemLinkedFonts))
   759         fChLinkedFonts = EFalse;
   900         fLinkedFonts = EFalse;
   760     else
   901     else
   761         fChLinkedFonts = ETrue;
   902         fLinkedFonts = ETrue;
   762         }
   903         }
   763     //end
   904     //end
   764 
   905 
   765     if(fKorean)
   906     if(fKorean)
   766         {
   907         {
   767         requiredLangs |= EKoreanLangs;
   908         if (fLinkedFonts)
       
   909             requiredLangs |= EKoreanLFLangs;
       
   910         else
       
   911             requiredLangs |= EKoreanLangs;
   768         }
   912         }
   769     else if (fJapanese)
   913     else if (fJapanese)
   770         {
   914         {
   771         requiredLangs |= EJapaneseLangs;
   915         if (fLinkedFonts)
       
   916             requiredLangs |= EJapaneseLFLangs;
       
   917         else
       
   918             requiredLangs |= EJapaneseLangs;
   772         }
   919         }
   773     else if (fTCHKFonts)
   920     else if (fTCHKFonts)
   774         {
   921         {
   775         // TCHK, but use PRC fonts, if lang settings say it's PRC English
   922         // TCHK, but use PRC fonts, if lang settings say it's PRC English
   776         if ((fSCFonts) && (uilang == KLangPrcEnglish || uilang == ELangPrcChinese))
   923         if ((fSCFonts) && (uilang == KLangPrcEnglish || uilang == ELangPrcChinese))
   777             {
   924             {
   778             //chinese adaptation
   925             //chinese adaptation
   779             if (fChLinkedFonts && fHiResFonts)
   926             if (fLinkedFonts && fHiResFonts)
   780                 {
   927                 {
   781                 requiredLangs |= EChineseLangsPRCHiResLF;
   928                 requiredLangs |= EChineseLangsPRCHiResLF;
   782                 }
   929                 }
   783             else if(fChLinkedFonts)
   930             else if(fLinkedFonts)
   784                 {
   931                 {
   785                 requiredLangs |= EChineseLangsPRCLF;
   932                 requiredLangs |= EChineseLangsPRCLF;
   786                 }            
   933                 }            
   787             //end
   934             //end
   788             else if (fHiResFonts)
   935             else if (fHiResFonts)
   795                 }
   942                 }
   796             }
   943             }
   797         else
   944         else
   798             {
   945             {
   799             //chinese adaptation
   946             //chinese adaptation
   800             if (fChLinkedFonts && fHiResFonts)
   947             if (fLinkedFonts && fHiResFonts)
   801                 {
   948                 {
   802                 requiredLangs |= EChineseLangsTaiwanHKHiResLF;
   949                 requiredLangs |= EChineseLangsTaiwanHKHiResLF;
   803                 }  
   950                 }  
   804             else if(fChLinkedFonts)
   951             else if(fLinkedFonts)
   805                 {
   952                 {
   806                 requiredLangs |= EChineseLangsTaiwanHKLF;
   953                 requiredLangs |= EChineseLangsTaiwanHKLF;
   807                 }
   954                 }
   808             //end
   955             //end
   809             else if (fHiResFonts)
   956             else if (fHiResFonts)
   817             }
   964             }
   818         }
   965         }
   819     else if (fSCFonts)
   966     else if (fSCFonts)
   820         {
   967         {
   821         //chinese adaptation
   968         //chinese adaptation
   822         if (fChLinkedFonts && fHiResFonts)
   969         if (fLinkedFonts && fHiResFonts)
   823             {
   970             {
   824             requiredLangs |= EChineseLangsPRCHiResLF;
   971             requiredLangs |= EChineseLangsPRCHiResLF;
   825             }
   972             }
   826         else if(fChLinkedFonts)
   973         else if(fLinkedFonts)
   827             {
   974             {
   828             requiredLangs |= EChineseLangsPRCLF;
   975             requiredLangs |= EChineseLangsPRCLF;
   829             }
   976             }
   830         //end
   977         //end
   831         // PRC (SC)
   978         // PRC (SC)
   838             requiredLangs |= EChineseLangsPRC;
   985             requiredLangs |= EChineseLangsPRC;
   839             }
   986             }
   840         }
   987         }
   841     else
   988     else
   842         {
   989         {
   843         requiredLangs |= EElafLangs;    
   990         if(fLinkedFonts && fHiResFonts)
       
   991             {
       
   992             requiredLangs |= EElafLFHiReLangs;
       
   993             }
       
   994         else if(fLinkedFonts)
       
   995             {
       
   996             requiredLangs |= EElafLFLoReLangs;
       
   997             }
       
   998         else
       
   999             {
       
  1000             requiredLangs |= EElafLangs;
       
  1001             }
   844         }
  1002         }
   845 
  1003 
   846     return requiredLangs;
  1004     return requiredLangs;
   847     }
  1005     }
   848 
  1006 
  1832     }
  1990     }
  1833 
  1991 
  1834 EXPORT_C void AknFontProvider::InitializeSystemL ( const CEikonEnv& aEnv )
  1992 EXPORT_C void AknFontProvider::InitializeSystemL ( const CEikonEnv& aEnv )
  1835     {
  1993     {
  1836     //chinese adaptation
  1994     //chinese adaptation
  1837     TBool fChLinkedFonts = FeatureManager::FeatureSupported(KFeatureIdFfLinkedFontsChinese);
  1995     TBool fLinkedFonts = FeatureManager::FeatureSupported(KFeatureIdFfLinkedFontsChinese);
  1838     TBool fChinese = FeatureManager::FeatureSupported(KFeatureIdChinese);
  1996     if(fLinkedFonts)
  1839     if(fChinese && fChLinkedFonts)
       
  1840       {
  1997       {
  1841       //attempt to create linked font only once
  1998       //attempt to create linked font only once
  1842       if(!LinkTypefacesInstalled())
  1999       if(!LinkTypefacesInstalled())
  1843 	    {
  2000 	    {
  1844 	     //TRAP call necessary
  2001 	     //TRAP call necessary
  1879                     }
  2036                     }
  1880                 }
  2037                 }
  1881             }
  2038             }
  1882  
  2039  
  1883         }
  2040         }
  1884     store->SetFontNameAliasL(_L("Series 60 Sans"),_L("Nokia Sans S60"));     
  2041         
  1885     CleanupStack::PopAndDestroy( store );   
  2042     CleanupStack::PopAndDestroy( store );   
  1886     
  2043     
  1887     return;
  2044     return;
  1888     }
  2045     }
  1889 
  2046 
  2146     _LIT(KTCHKStop, "[TCHK_LINK_STOP]");
  2303     _LIT(KTCHKStop, "[TCHK_LINK_STOP]");
  2147     _LIT(KSCHRStart, "[SCHR_LINK_START]");
  2304     _LIT(KSCHRStart, "[SCHR_LINK_START]");
  2148     _LIT(KSCHRStop, "[SCHR_LINK_STOP]");
  2305     _LIT(KSCHRStop, "[SCHR_LINK_STOP]");
  2149     _LIT(KTCHKHRStart, "[TCHKHR_LINK_START]");
  2306     _LIT(KTCHKHRStart, "[TCHKHR_LINK_START]");
  2150     _LIT(KTCHKHRStop, "[TCHKHR_LINK_STOP]");
  2307     _LIT(KTCHKHRStop, "[TCHKHR_LINK_STOP]");
       
  2308     _LIT(KJAPStart, "[JAP_LINK_START]");
       
  2309     _LIT(KJAPStop, "[JAP_LINK_STOP]");
       
  2310     _LIT(KKORStart, "[KOR_LINK_START]");
       
  2311     _LIT(KKORStop, "[KOR_LINK_STOP]");
       
  2312     _LIT(KWESTLINKLRStart, "[WESTERN_LINKLR_START]");
       
  2313     _LIT(KWESTLINKLRStop, "[WESTERN_LINKLR_STOP]");
       
  2314     _LIT(KWESTLINKHRStart, "[WESTERN_LINKHR_START]");
       
  2315     _LIT(KWESTLINKHRStop, "[WESTERN_LINKHR_STOP]");    
  2151 
  2316 
  2152     TInt ret = KErrNone;
  2317     TInt ret = KErrNone;
  2153     RPointerArray<SLinkedFontDetails> fontfiles;
  2318     RPointerArray<SLinkedFontDetails> fontfiles;
  2154     RFs fs;
  2319     RFs fs;
  2155     RFile rFile;
  2320     RFile rFile;
  2160     tfile.Set(rFile);
  2325     tfile.Set(rFile);
  2161     TBuf<256> filedatabuf;
  2326     TBuf<256> filedatabuf;
  2162     TBuf<50> startTok;
  2327     TBuf<50> startTok;
  2163     TBuf<50> stopTok;
  2328     TBuf<50> stopTok;
  2164 
  2329 
  2165     TBool fChLinkedFonts = FeatureManager::FeatureSupported(
  2330     TBool fLinkedFonts = FeatureManager::FeatureSupported(
  2166             KFeatureIdFfLinkedFontsChinese);
  2331             KFeatureIdFfLinkedFontsChinese);
  2167     TBool fTCHKFonts = FeatureManager::FeatureSupported(
  2332     TBool fTCHKFonts = FeatureManager::FeatureSupported(
  2168             KFeatureIdChineseTaiwanHkFonts);
  2333             KFeatureIdChineseTaiwanHkFonts);
  2169     TBool fSCFonts = FeatureManager::FeatureSupported(
  2334     TBool fSCFonts = FeatureManager::FeatureSupported(
  2170             KFeatureIdChinesePrcFonts);
  2335             KFeatureIdChinesePrcFonts);
  2171     TBool fHiResFonts = FeatureManager::FeatureSupported(
  2336     TBool fHiResFonts = FeatureManager::FeatureSupported(
  2172             KFeatureIdChineseFontsHires);
  2337             KFeatureIdChineseFontsHires);
  2173 
  2338 
       
  2339     TBool fJapanese = FeatureManager::FeatureSupported(KFeatureIdJapanese);
       
  2340     TBool fKorean = FeatureManager::FeatureSupported(KFeatureIdKorean);
       
  2341     TBool fChinese = FeatureManager::FeatureSupported(
       
  2342             KFeatureIdChinese);
  2174     
  2343     
  2175     if (fChLinkedFonts)
  2344     if (fLinkedFonts)
  2176         {
  2345         {
  2177 
  2346 
  2178         if (fSCFonts && fHiResFonts)
  2347         if (fSCFonts && fHiResFonts)
  2179             {
  2348             {
  2180             startTok.Copy(KSCHRStart);
  2349             startTok.Copy(KSCHRStart);
  2201             startTok.Copy(KTCHKStart);
  2370             startTok.Copy(KTCHKStart);
  2202             stopTok.Copy(KTCHKStop);
  2371             stopTok.Copy(KTCHKStop);
  2203             tfile.Seek(ESeekStart);
  2372             tfile.Seek(ESeekStart);
  2204             ret = DoPopulateAndCreateLinkFontsL(tfile, startTok, stopTok);
  2373             ret = DoPopulateAndCreateLinkFontsL(tfile, startTok, stopTok);
  2205             }
  2374             }
       
  2375 		if(fJapanese)
       
  2376             {
       
  2377             startTok.Copy(KJAPStart);
       
  2378             stopTok.Copy(KJAPStop);
       
  2379             tfile.Seek(ESeekStart);
       
  2380             ret = DoPopulateAndCreateLinkFontsL(tfile, startTok, stopTok);   
       
  2381             }    
       
  2382         if(fKorean)
       
  2383             {
       
  2384             startTok.Copy(KKORStart);
       
  2385             stopTok.Copy(KKORStop);
       
  2386             tfile.Seek(ESeekStart);
       
  2387             ret = DoPopulateAndCreateLinkFontsL(tfile, startTok, stopTok);
       
  2388             }			
       
  2389         if((!fChinese) && (!fKorean) && (!fJapanese) )//western linked fonts
       
  2390             {
       
  2391             if(fHiResFonts)
       
  2392                 {
       
  2393                 startTok.Copy(KWESTLINKHRStart);
       
  2394                 stopTok.Copy(KWESTLINKHRStop);
       
  2395                 tfile.Seek(ESeekStart);
       
  2396                 ret = DoPopulateAndCreateLinkFontsL(tfile, startTok, stopTok);
       
  2397                 }
       
  2398             else
       
  2399                 {
       
  2400                 startTok.Copy(KWESTLINKLRStart);
       
  2401                 stopTok.Copy(KWESTLINKLRStop);
       
  2402                 tfile.Seek(ESeekStart);
       
  2403                 ret = DoPopulateAndCreateLinkFontsL(tfile, startTok, stopTok);                            
       
  2404                 }
       
  2405             }        
       
  2406         }
  2206         
  2407         
  2207         }
       
  2208 
  2408 
  2209     
  2409     
  2210     rFile.Close();
  2410     rFile.Close();
  2211     fs.Close();
  2411     fs.Close();
  2212     return ret;
  2412     return ret;
  2237             KFeatureIdChineseTaiwanHkFonts);
  2437             KFeatureIdChineseTaiwanHkFonts);
  2238     TBool fSCFonts = FeatureManager::FeatureSupported(
  2438     TBool fSCFonts = FeatureManager::FeatureSupported(
  2239             KFeatureIdChinesePrcFonts);
  2439             KFeatureIdChinesePrcFonts);
  2240     TBool fHiResFonts = FeatureManager::FeatureSupported(
  2440     TBool fHiResFonts = FeatureManager::FeatureSupported(
  2241             KFeatureIdChineseFontsHires);
  2441             KFeatureIdChineseFontsHires);
       
  2442    TBool fChinese = FeatureManager::FeatureSupported(
       
  2443             KFeatureIdChinese);
       
  2444     TBool fJapanese = FeatureManager::FeatureSupported(KFeatureIdJapanese);
       
  2445     TBool fKorean = FeatureManager::FeatureSupported(KFeatureIdKorean);
  2242 
  2446 
  2243     
  2447     
  2244     TBool ret = EFalse;
  2448     TBool ret = EFalse;
  2245     TInt files = 0, ref = 0;
  2449     TInt files = 0, ref = 0;
  2246     if( (EAknAllLinkedFonts == aFonttype) || (EAknSystemLinkedFonts == aFonttype))
  2450     if( (EAknAllLinkedFonts == aFonttype) || (EAknSystemLinkedFonts == aFonttype))
  2247         {
  2451         {
  2248         if(fSCFonts)
  2452         if( (fChinese && fSCFonts ))
  2249            ref +=KAknFontStylesSupported;
  2453            ref +=KAknFontStylesSupported;
  2250         if(fTCHKFonts)
  2454         if(fChinese && fTCHKFonts)
  2251            ref +=KAknFontStylesSupported;
  2455            ref +=KAknFontStylesSupported;
       
  2456         if(fJapanese)
       
  2457             ref +=KAknFontStylesSupported;
       
  2458         if(fKorean)
       
  2459             ref +=KAknFontStylesSupported;
       
  2460         if((!fChinese) && (!fKorean) && (!fJapanese))
       
  2461             ref +=KAknFontStylesSupported;//western linked fonts
  2252         }
  2462         }
  2253     for (TInt i = 0; i < noOfTypefaces; i++)
  2463     for (TInt i = 0; i < noOfTypefaces; i++)
  2254         {
  2464         {
  2255         TTypefaceSupport typefaceInfo;
  2465         TTypefaceSupport typefaceInfo;
  2256         screenDevice->TypefaceSupport(typefaceInfo, i);
  2466         screenDevice->TypefaceSupport(typefaceInfo, i);
  2294                 typefaceInfo.iTypeface.iName.Compare(KS60TCHKSANSTTLSMBLDLF)==0)
  2504                 typefaceInfo.iTypeface.iName.Compare(KS60TCHKSANSTTLSMBLDLF)==0)
  2295                 {
  2505                 {
  2296                 files++;
  2506                 files++;
  2297                 }
  2507                 }
  2298             }
  2508             }
  2299         }
  2509             if (fJapanese)
  2300       }
  2510                 {
  2301     if (ref == files)
  2511                 if (typefaceInfo.iTypeface.iName.Compare(KS60JAPSANSRLF)==0|| 
       
  2512                     typefaceInfo.iTypeface.iName.Compare(KS60JAPSANSSBLF)==0||
       
  2513                     typefaceInfo.iTypeface.iName.Compare(KS60JAPSANSTTLSMBLDLF)==0)
       
  2514                     {
       
  2515                     files++;
       
  2516                     }
       
  2517 
       
  2518                 }
       
  2519             if (fKorean)
       
  2520                 {
       
  2521                 if (typefaceInfo.iTypeface.iName.Compare(KS60KORSANSRLF)==0|| 
       
  2522                     typefaceInfo.iTypeface.iName.Compare(KS60KORSANSSBLF)==0|| 
       
  2523                     typefaceInfo.iTypeface.iName.Compare(KS60KORSANSTTLSMBLDLF) == 0)
       
  2524                     {
       
  2525                     files++;
       
  2526                     }
       
  2527 
       
  2528                 }
       
  2529           if (!fChinese && !fJapanese && !fKorean && fHiResFonts)
       
  2530               {
       
  2531             if (typefaceInfo.iTypeface.iName.Compare(KS60SCHRSANSRLF)==0||
       
  2532                 typefaceInfo.iTypeface.iName.Compare(KS60SCHRSANSSBLF)==0||
       
  2533                 typefaceInfo.iTypeface.iName.Compare(KS60SCHRSANSTTLSMBLDLF)==0)
       
  2534                   {
       
  2535                   files++;
       
  2536                   }
       
  2537 
       
  2538               }
       
  2539           else if (!fChinese && !fJapanese && !fKorean)
       
  2540               {
       
  2541             if (typefaceInfo.iTypeface.iName.Compare(KS60SCSANSRLF)==0||
       
  2542                 typefaceInfo.iTypeface.iName.Compare(KS60SCSANSSBLF)==0||
       
  2543                 typefaceInfo.iTypeface.iName.Compare(KS60SCSANSTTLSMBLDLF)==0)
       
  2544                   {
       
  2545                   files++;
       
  2546                  }
       
  2547               }                          
       
  2548             }
       
  2549         }
       
  2550     if (files && (ref == files) )
  2302         ret = ETrue;
  2551         ret = ETrue;
  2303     return ret;
  2552     return ret;
  2304     }
  2553     }
  2305  
  2554  
  2306 //  End of File
  2555 //  End of File