зеркало из https://github.com/mozilla/gecko-dev.git
bug 206123 : add more scripts to font-pref. UI for Windows build
(r=smontagu, sr=rbs, a=mkaply)
This commit is contained in:
Родитель
a7fd42cb54
Коммит
2f9ea6e59b
|
@ -1144,6 +1144,115 @@ static PRUint8 gCharsetToBit[eCharset_COUNT] =
|
|||
21 // JOHAB_CHARSET,
|
||||
};
|
||||
|
||||
// the mapping from bitfield in fsUsb (of FONTSIGNATURE) to UnicodeRange
|
||||
// defined in nsUnicodeRange.h. Only the first 96 bits are mapped here
|
||||
// because at the moment only the first 84 bits are assigned according to
|
||||
// the MSDN. See
|
||||
// http://msdn.microsoft.com/library/default.asp?url=/library/en-us/intl/unicode_63ub.asp
|
||||
static PRUint8 gBitToUnicodeRange[] =
|
||||
{
|
||||
/* 0 */ kRangeSetLatin, // 0020 - 007e Basic Latin
|
||||
/* 1 */ kRangeSetLatin, // 00a0 - 00ff Latin-1 Supplement
|
||||
/* 2 */ kRangeSetLatin, // 0100 - 017f Latin Extended-A
|
||||
/* 3 */ kRangeSetLatin, // 0180 - 024f Latin Extended-B
|
||||
/* 4 */ kRangeSetLatin, // 0250 - 02af IPA Extensions
|
||||
/* 5 */ kRangeSetLatin, // 02b0 - 02ff Spacing Modifier Letters
|
||||
/* 6 */ kRangeGreek, // 0300 - 036f Combining Diacritical Marks
|
||||
/* 7 */ kRangeGreek, // 0370 - 03ff Basic Greek
|
||||
/* 8 */ kRangeUnassigned, // Reserved
|
||||
/* 9 */ kRangeCyrillic, // 0400 - 04ff Cyrillic
|
||||
/* 10 */ kRangeArmenian, // 0530 - 058f Armenian
|
||||
/* 11 */ kRangeHebrew, // 0590 - 05ff Basic Hebrew
|
||||
/* 12 */ kRangeUnassigned, // Reserved
|
||||
/* 13 */ kRangeArabic, // 0600 - 06ff Basic Arabic
|
||||
/* 14 */ kRangeUnassigned, // Reserved
|
||||
/* 15 */ kRangeDevanagari, // 0900 - 097f Devanagari
|
||||
/* 16 */ kRangeBengali, // 0980 - 09ff Bengali
|
||||
/* 17 */ kRangeGurmukhi, // 0a00 - 0a7f Gurmukhi
|
||||
/* 18 */ kRangeGujarati, // 0a80 - 0aff Gujarati
|
||||
/* 19 */ kRangeOriya, // 0b00 - 0b7f Oriya
|
||||
/* 20 */ kRangeTamil, // 0b80 - 0bff Tamil
|
||||
/* 21 */ kRangeTelugu, // 0c00 - 0c7f Telugu
|
||||
/* 22 */ kRangeKannada, // 0c80 - 0cff Kannada
|
||||
/* 23 */ kRangeMalayalam, // 0d00 - 0d7f Malayalam
|
||||
/* 24 */ kRangeThai, // 0e00 - 0e7f Thai
|
||||
/* 25 */ kRangeLao, // 0e80 - 0eff Lao
|
||||
/* 26 */ kRangeGeorgian, // 10a0 - 10ff Basic Georgian
|
||||
/* 27 */ kRangeUnassigned, // Reserved
|
||||
/* 28 */ kRangeKorean, // 1100 - 11ff Hangul Jamo
|
||||
/* 29 */ kRangeSetLatin, // 1e00 - 1eff Latin Extended Additional
|
||||
/* 30 */ kRangeGreek, // 1f00 - 1fff Greek Extended
|
||||
/* 31 */ kRangeSetLatin, // 2000 - 206f General Punctuation
|
||||
/* 32 */ kRangeSetLatin, // 2070 - 209f Subscripts and Superscripts
|
||||
/* 33 */ kRangeSetLatin, // 20a0 - 20cf Currency Symbols
|
||||
/* 34 */ kRangeSetLatin, // 20d0 - 20ff Comb. Diacrit. Marks for Symbols
|
||||
/* 35 */ kRangeSetLatin, // 2100 - 214f Letter-like Symbols
|
||||
/* 36 */ kRangeSetLatin, // 2150 - 218f Number Forms
|
||||
/* 37 */ kRangeSetLatin, // 2190 - 21ff Arrows
|
||||
/* 38 */ kRangeMathOperators, // 2200 - 22ff
|
||||
/* 39 */ kRangeMiscTechnical, // 2300 - 23ff
|
||||
/* 40 */ kRangeControlOpticalEnclose, // 2400 - 243f Control Pictures
|
||||
/* 41 */ kRangeControlOpticalEnclose, // 2440 - 245f OCR
|
||||
/* 42 */ kRangeControlOpticalEnclose, // 2460 - 24ff Enc. Alphanumerics
|
||||
/* 43 */ kRangeBoxBlockGeometrics, // 2500 - 257f Box Drawing
|
||||
/* 44 */ kRangeBoxBlockGeometrics, // 2580 - 259f Block Elements
|
||||
/* 45 */ kRangeBoxBlockGeometrics, // 25a0 - 25ff Geometric Shapes
|
||||
/* 46 */ kRangeMiscSymbols, // 2600 - 26ff
|
||||
/* 47 */ kRangeDingbats, // 2700 - 27bf
|
||||
/* 48 */ kRangeSetCJK, // 3000 - 303f CJK Symb & Punct.
|
||||
/* 49 */ kRangeSetCJK, // 3040 - 309f Hiragana
|
||||
/* 50 */ kRangeSetCJK, // 30a0 - 30ff Katakana
|
||||
/* 51 */ kRangeSetCJK, // 3100 - 312f 31a0, - 31bf Bopomofo
|
||||
/* 52 */ kRangeSetCJK, // 3130 - 318f Hangul Comp. Jamo
|
||||
/* 53 */ kRangeSetCJK, // 3190 - 319f CJK Miscellaneous
|
||||
/* 54 */ kRangeSetCJK, // 3200 - 32ff Enc. CJK Letters
|
||||
/* 55 */ kRangeSetCJK, // 3300 - 33ff CJK Compatibility
|
||||
/* 56 */ kRangeKorean, // ac00 - d7a3 Hangul
|
||||
/* 57 */ kRangeSurrogate, // d800 - dfff Surrogates.
|
||||
/* 58 */ kRangeUnassigned, // Reserved
|
||||
/* 59 */ kRangeSetCJK, // 4e00 - 9fff CJK Ideographs
|
||||
// 2e80 - 2eff 2f00 - 2fdf Radicals
|
||||
// 2ff0 - 2fff IDS
|
||||
// 3400 - 4dbf CJK Ext. A
|
||||
/* 60 */ kRangePrivate, // e000 - f8ff PUA
|
||||
/* 61 */ kRangeSetCJK, // f900 - faff CJK Compat.
|
||||
/* 62 */ kRangeArabic, // fb00 - fb4f Alpha. Presen. Forms
|
||||
/* 63 */ kRangeArabic, // fb50 - fdff Arabic Presen. FormsA
|
||||
/* 64 */ kRangeArabic, // fe20 - fe2f Combining Half Marks
|
||||
/* 65 */ kRangeArabic, // fe30 - fe4f CJK Compat. Forms
|
||||
/* 66 */ kRangeArabic, // fe50 - fe6f Small Form Variants
|
||||
/* 67 */ kRangeArabic, // fe70 - fefe Arabic Presen. FormsB
|
||||
/* 68 */ kRangeSetCJK, // ff00 - ffef Half/Fullwidth Forms
|
||||
/* 69 */ kRangeSetCJK, // fff0 - fffd Specials
|
||||
/* 70 */ kRangeTibetan, // 0f00 - 0fcf Tibetan
|
||||
/* 71 */ kRangeSyriac, // 0700 - 074f Syriac
|
||||
/* 72 */ kRangeThaana, // 0780 - 07bf Thaana
|
||||
/* 73 */ kRangeSinhala, // 0d80 - 0dff Sinhala
|
||||
/* 74 */ kRangeMyanmar, // 1000 - 109f Myanmar
|
||||
/* 75 */ kRangeEthiopic, // 1200 - 12bf Ethiopic
|
||||
/* 76 */ kRangeCherokee, // 13a0 - 13ff Cherokee
|
||||
/* 77 */ kRangeAboriginal, // 1400 - 14df Can. Aboriginal Syl.
|
||||
/* 78 */ kRangeOghamRunic, // 1680 - 169f Ogham
|
||||
/* 79 */ kRangeOghamRunic, // 16a0 - 16ff Runic
|
||||
/* 80 */ kRangeKhmer, // 1780 - 17ff Khmer
|
||||
/* 81 */ kRangeMongolian, // 1800 - 18af Mongolian
|
||||
/* 82 */ kRangeBraillePattern, // 2800 - 28ff Braille
|
||||
/* 83 */ kRangeYi, // a000 - a48c Yi Yi Radicals
|
||||
/* 84 */ kRangeUnassigned, // Reserved
|
||||
/* 85 */ kRangeUnassigned,
|
||||
/* 86 */ kRangeUnassigned,
|
||||
/* 87 */ kRangeUnassigned,
|
||||
/* 88 */ kRangeUnassigned,
|
||||
/* 89 */ kRangeUnassigned,
|
||||
/* 90 */ kRangeUnassigned,
|
||||
/* 91 */ kRangeUnassigned,
|
||||
/* 92 */ kRangeUnassigned,
|
||||
/* 93 */ kRangeUnassigned,
|
||||
/* 94 */ kRangeUnassigned,
|
||||
/* 95 */ kRangeUnassigned
|
||||
};
|
||||
|
||||
|
||||
// Helper to determine if a font has a private encoding that we know something about
|
||||
static nsresult
|
||||
GetEncoding(const char* aFontName, nsString& aValue)
|
||||
|
@ -2321,9 +2430,11 @@ nsFontMetricsWin::LoadGlobalFont(HDC aDC, nsGlobalFont* aGlobalFont)
|
|||
}
|
||||
|
||||
static int CALLBACK
|
||||
enumProc(const LOGFONT* logFont, const TEXTMETRIC* metrics,
|
||||
enumProc(const ENUMLOGFONTEX* logFontEx, const NEWTEXTMETRICEX* metrics,
|
||||
DWORD fontType, LPARAM closure)
|
||||
{
|
||||
const LOGFONT* logFont = &(logFontEx->elfLogFont);
|
||||
|
||||
// XXX ignore vertical fonts
|
||||
if (logFont->lfFaceName[0] == '@') {
|
||||
return 1;
|
||||
|
@ -2338,6 +2449,11 @@ enumProc(const LOGFONT* logFont, const TEXTMETRIC* metrics,
|
|||
DWORD charsetSigAdd = 1 << charsetSigBit;
|
||||
font->signature.fsCsb[0] |= charsetSigAdd;
|
||||
}
|
||||
|
||||
// copy Unicode subrange bitfield (128bit) if it's a truetype font.
|
||||
if (fontType & TRUETYPE_FONTTYPE) {
|
||||
memcpy(font->signature.fsUsb, metrics->ntmFontSig.fsUsb, 16);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
@ -2364,6 +2480,8 @@ enumProc(const LOGFONT* logFont, const TEXTMETRIC* metrics,
|
|||
|
||||
if (fontType & TRUETYPE_FONTTYPE) {
|
||||
font->flags |= NS_GLOBALFONT_TRUETYPE;
|
||||
// copy Unicode subrange bitfield (128 bits = 16 bytes)
|
||||
memcpy(font->signature.fsUsb, metrics->ntmFontSig.fsUsb, 16);
|
||||
}
|
||||
if (logFont->lfCharSet == SYMBOL_CHARSET) {
|
||||
font->flags |= NS_GLOBALFONT_SYMBOL;
|
||||
|
@ -2421,7 +2539,7 @@ nsFontMetricsWin::InitializeGlobalFonts(HDC aDC)
|
|||
* msdn.microsoft.com/library states that
|
||||
* EnumFontFamiliesExW is only on NT/2000
|
||||
*/
|
||||
EnumFontFamiliesEx(aDC, &logFont, enumProc, nsnull, 0);
|
||||
EnumFontFamiliesEx(aDC, &logFont, (FONTENUMPROC) enumProc, nsnull, 0);
|
||||
|
||||
// Sort the global list of fonts to put the 'preferred' fonts first
|
||||
gGlobalFonts->Sort(CompareGlobalFonts, nsnull);
|
||||
|
@ -3213,6 +3331,18 @@ nsFontMetricsWin::FindGenericFont(HDC aDC, PRUint32 aChar)
|
|||
if (mLangGroup) {
|
||||
const char* langGroup;
|
||||
mLangGroup->GetUTF8String(&langGroup);
|
||||
|
||||
// x-unicode pseudo-langGroup should be the last resort to turn to.
|
||||
// That is, it should be refered to only when we don't recognize
|
||||
// |langGroup| specified by the authors of documents and the
|
||||
// determination of |langGroup| based on Unicode range also fails
|
||||
// in |FindPrefFont|.
|
||||
|
||||
if (!strcmp(langGroup, "x-unicode")) {
|
||||
mTriedAllGenerics = 1;
|
||||
return nsnull;
|
||||
}
|
||||
|
||||
AppendGenericFontFromPref(font.name, langGroup,
|
||||
NS_ConvertUCS2toUTF8(mGeneric).get());
|
||||
}
|
||||
|
@ -5142,6 +5272,9 @@ SignatureMatchesLangGroup(FONTSIGNATURE* aSignature,
|
|||
const char* aLangGroup)
|
||||
{
|
||||
int dword;
|
||||
|
||||
// For scripts that have been supported by 'ANSI' codepage in Win9x/ME,
|
||||
// we can rely on fsCsb.
|
||||
DWORD* array = aSignature->fsCsb;
|
||||
int i = 0;
|
||||
for (dword = 0; dword < 2; ++dword) {
|
||||
|
@ -5156,6 +5289,36 @@ SignatureMatchesLangGroup(FONTSIGNATURE* aSignature,
|
|||
}
|
||||
}
|
||||
|
||||
// For aLangGroup corresponding to one of 'ANSI' codepages, the negative
|
||||
// result from fsCsb should be considered final. Otherwise, we risk getting
|
||||
// a false positive from fsUsb, which could lead unncessarily to
|
||||
// a mix of glyphs from different fonts.
|
||||
|
||||
// x-western .. zh-TW. (exclude JOHAB)
|
||||
for (i = eCharset_ANSI; i <= eCharset_CHINESEBIG5; ++i)
|
||||
{
|
||||
if (!strcmp(gCharsetInfo[i].mLangGroup, aLangGroup))
|
||||
return 0;
|
||||
}
|
||||
|
||||
// For other scripts, we need fsUsb (Unicode coverage bitfield : 128bit).
|
||||
// Here we're just examining the first 3 dwords because at the moment
|
||||
// only the first 84 bits are assigned according to the MSDN.
|
||||
|
||||
array = aSignature->fsUsb;
|
||||
for (i = 0, dword = 0; dword < 3; ++dword) {
|
||||
for (int bit = 0; bit < sizeof(DWORD) * 8; ++bit) {
|
||||
if ((array[dword] >> bit) & 1) {
|
||||
PRUint8 range = gBitToUnicodeRange[i];
|
||||
if (kRangeSpecificItemNum > range &&
|
||||
!strcmp(gUnicodeRangeToLangGroupTable[range], aLangGroup)) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
++i;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -5163,7 +5326,7 @@ static int
|
|||
FontMatchesGenericType(nsGlobalFont* aFont, const char* aGeneric)
|
||||
{
|
||||
switch (aFont->logFont.lfPitchAndFamily & 0xF0) {
|
||||
case FF_DONTCARE: return 0;
|
||||
case FF_DONTCARE: return 1;
|
||||
case FF_ROMAN: return !strcmp(aGeneric, "serif");
|
||||
case FF_SWISS: return !strcmp(aGeneric, "sans-serif");
|
||||
case FF_MODERN: return !strcmp(aGeneric, "monospace");
|
||||
|
|
|
@ -51,6 +51,8 @@ const char *gUnicodeRangeToLangGroupTable[] =
|
|||
"ja",
|
||||
"zh-CN",
|
||||
"zh-TW",
|
||||
"x-devanagari",
|
||||
"x-tamil"
|
||||
};
|
||||
|
||||
/**********************************************************************
|
||||
|
@ -224,24 +226,24 @@ static PRUint8 gUnicodeSubrangeTable[NUM_OF_SUBTABLES][SUBTABLE_SIZE] =
|
|||
kRangeCyrillic, //u04xx
|
||||
kRangeHebrew, //u05xx XXX 0530-058f is in fact kRangeArmenian
|
||||
kRangeArabic, //u06xx
|
||||
kRangeSriacThaana, //u07xx
|
||||
kRangeTertiaryTable, //u07xx
|
||||
kRangeUnassigned, //u08xx
|
||||
kRangeDevanagariBengali, //u09xx
|
||||
kRangeGurmukhiGujarati, //u0axx
|
||||
kRangeOriyaTamil, //u0bxx
|
||||
kRangeTeluguKannada, //u0cxx
|
||||
kRangeMalayalamSinhala, //u0dxx
|
||||
kRangeThaiLao, //u0exx
|
||||
kRangeTibetan, //u0fxx
|
||||
kRangeTertiaryTable, //u09xx
|
||||
kRangeTertiaryTable, //u0axx
|
||||
kRangeTertiaryTable, //u0bxx
|
||||
kRangeTertiaryTable, //u0cxx
|
||||
kRangeTertiaryTable, //u0dxx
|
||||
kRangeTertiaryTable, //u0exx
|
||||
kRangeTertiaryTable, //u0fxx
|
||||
},
|
||||
{ //table for 1x--
|
||||
kRangeMyanmarGeorgian, //u10xx
|
||||
kRangeTertiaryTable, //u10xx
|
||||
kRangeKorean, //u11xx
|
||||
kRangeEthiopic, //u12xx
|
||||
kRangeEthiopicCherokee, //u13xx
|
||||
kRangeTertiaryTable, //u13xx
|
||||
kRangeAboriginal, //u14xx
|
||||
kRangeAboriginal, //u15xx
|
||||
kRangeAboriginalOghamRunic, //u16xx
|
||||
kRangeTertiaryTable, //u16xx
|
||||
kRangeKhmer, //u17xx
|
||||
kRangeMongolian, //u18xx
|
||||
kRangeUnassigned, //u19xx
|
||||
|
@ -256,7 +258,7 @@ static PRUint8 gUnicodeSubrangeTable[NUM_OF_SUBTABLES][SUBTABLE_SIZE] =
|
|||
kRangeSetLatin, //u20xx
|
||||
kRangeSetLatin, //u21xx
|
||||
kRangeMathOperators, //u22xx
|
||||
kRangeMiscTechical, //u23xx
|
||||
kRangeMiscTechnical, //u23xx
|
||||
kRangeControlOpticalEnclose, //u24xx
|
||||
kRangeBoxBlockGeometrics, //u25xx
|
||||
kRangeMiscSymbols, //u26xx
|
||||
|
@ -322,20 +324,65 @@ static PRUint8 gUnicodeSubrangeTable[NUM_OF_SUBTABLES][SUBTABLE_SIZE] =
|
|||
kRangeArabic, //ufcxx
|
||||
kRangeArabic, //ufdxx
|
||||
kRangeArabic, //ufexx, includes Combining half marks,
|
||||
// CJK compatibility forms,
|
||||
// CJK compatibility forms,
|
||||
// small form variants
|
||||
// CJK compatibility forms,
|
||||
// CJK compatibility forms,
|
||||
// small form variants
|
||||
|
||||
kRangeSetCJK, //uffxx, halfwidth and fullwidth forms, includes Special
|
||||
}
|
||||
};
|
||||
|
||||
// Most scripts between U+0700 and U+16FF are assigned a chunk of 128 (0x80)
|
||||
// code points so that the number of entries in the tertiary range
|
||||
// table for that range is obtained by dividing (0x1700 - 0x0700) by 128.
|
||||
// Exceptions: Ethiopic, Tibetan, Hangul Jamo and Canadian aboriginal
|
||||
// syllabaries take multiple chunks and Ogham and Runic share a single chunk.
|
||||
#define TERTIARY_TABLE_SIZE ((0x1700 - 0x0700) / 0x80)
|
||||
|
||||
static PRUint8 gUnicodeTertiaryRangeTable[TERTIARY_TABLE_SIZE] =
|
||||
{ //table for 0x0700 - 0x1600
|
||||
kRangeSyriac, //u070x
|
||||
kRangeThaana, //u078x
|
||||
kRangeUnassigned, //u080x place holder(resolved in the 2ndary tab.)
|
||||
kRangeUnassigned, //u088x place holder(resolved in the 2ndary tab.)
|
||||
kRangeDevanagari, //u090x
|
||||
kRangeBengali, //u098x
|
||||
kRangeGurmukhi, //u0a0x
|
||||
kRangeGujarati, //u0a8x
|
||||
kRangeOriya, //u0b0x
|
||||
kRangeTamil, //u0b8x
|
||||
kRangeTelugu, //u0c0x
|
||||
kRangeKannada, //u0c8x
|
||||
kRangeMalayalam, //u0d0x
|
||||
kRangeSinhala, //u0d8x
|
||||
kRangeThai, //u0e0x
|
||||
kRangeLao, //u0e8x
|
||||
kRangeTibetan, //u0f0x place holder(resolved in the 2ndary tab.)
|
||||
kRangeTibetan, //u0f8x place holder(resolved in the 2ndary tab.)
|
||||
kRangeMyanmar, //u100x
|
||||
kRangeGeorgian, //u108x
|
||||
kRangeKorean, //u110x place holder(resolved in the 2ndary tab.)
|
||||
kRangeKorean, //u118x place holder(resolved in the 2ndary tab.)
|
||||
kRangeEthiopic, //u120x place holder(resolved in the 2ndary tab.)
|
||||
kRangeEthiopic, //u128x place holder(resolved in the 2ndary tab.)
|
||||
kRangeEthiopic, //u130x
|
||||
kRangeCherokee, //u138x
|
||||
kRangeAboriginal, //u140x place holder(resolved in the 2ndary tab.)
|
||||
kRangeAboriginal, //u148x place holder(resolved in the 2ndary tab.)
|
||||
kRangeAboriginal, //u150x place holder(resolved in the 2ndary tab.)
|
||||
kRangeAboriginal, //u158x place holder(resolved in the 2ndary tab.)
|
||||
kRangeAboriginal, //u160x
|
||||
kRangeOghamRunic, //u168x this contains two scripts, Ogham & Runic
|
||||
};
|
||||
|
||||
// A two level index is almost enough for locating a range, with the
|
||||
// exception of u03xx and u05xx. Since we don't really care about range for
|
||||
// Armenian and combining diacritical marks in our font application, they are
|
||||
// not discriminated further. But future adoption of this module for other use
|
||||
// should be aware of this limitation. The implementation can be extended if
|
||||
// there is such a need.
|
||||
// For Indic, Southeast Asian scripts and some other scripts between
|
||||
// U+0700 and U+16FF, it's extended to the third level.
|
||||
PRUint32 FindCharUnicodeRange(PRUnichar ch)
|
||||
{
|
||||
PRUint32 range;
|
||||
|
@ -349,6 +396,9 @@ PRUint32 FindCharUnicodeRange(PRUnichar ch)
|
|||
|
||||
// otherwise, we have one more table to look at
|
||||
range = gUnicodeSubrangeTable[range - kRangeTableBase][(ch & 0x0f00) >> 8];
|
||||
if (range < kRangeTertiaryTable)
|
||||
return range;
|
||||
|
||||
return range;
|
||||
// Yet another table to look at : U+0700 - U+16FF : 128 code point blocks
|
||||
return gUnicodeTertiaryRangeTable[(ch - 0x0700) >> 7];
|
||||
}
|
||||
|
|
|
@ -48,15 +48,17 @@ const PRUint8 kRangeTurkish = 2;
|
|||
const PRUint8 kRangeHebrew = 3;
|
||||
const PRUint8 kRangeArabic = 4;
|
||||
const PRUint8 kRangeBaltic = 5;
|
||||
const PRUint8 kRangeThaiLao = 6;
|
||||
const PRUint8 kRangeThai = 6;
|
||||
const PRUint8 kRangeKorean = 7;
|
||||
const PRUint8 kRangeJapanese = 8;
|
||||
const PRUint8 kRangeSChinese = 9;
|
||||
const PRUint8 kRangeTChinese = 10;
|
||||
const PRUint8 kRangeDevanagari = 11;
|
||||
const PRUint8 kRangeTamil = 12;
|
||||
|
||||
const PRUint8 kRangeSpecificItemNum =11;
|
||||
const PRUint8 kRangeSpecificItemNum = 13;
|
||||
|
||||
//range/rangeSet grow to this place 8-29
|
||||
//range/rangeSet grow to this place 13-29
|
||||
|
||||
const PRUint8 kRangeSetStart = 30; // range set definition starts from here
|
||||
const PRUint8 kRangeSetLatin = 30;
|
||||
|
@ -68,32 +70,41 @@ const PRUint8 kRangeSurrogate = 32;
|
|||
const PRUint8 kRangePrivate = 33;
|
||||
const PRUint8 kRangeMisc = 34;
|
||||
const PRUint8 kRangeUnassigned = 35;
|
||||
const PRUint8 kRangeSriacThaana = 36;
|
||||
const PRUint8 kRangeDevanagariBengali = 37;
|
||||
const PRUint8 kRangeGurmukhiGujarati = 38;
|
||||
const PRUint8 kRangeOriyaTamil = 39;
|
||||
const PRUint8 kRangeTeluguKannada = 40;
|
||||
const PRUint8 kRangeMalayalamSinhala = 41;
|
||||
const PRUint8 kRangeTibetan = 42;
|
||||
const PRUint8 kRangeMyanmarGeorgian = 43;
|
||||
const PRUint8 kRangeEthiopic = 44;
|
||||
const PRUint8 kRangeEthiopicCherokee = 45;
|
||||
const PRUint8 kRangeAboriginal = 46;
|
||||
const PRUint8 kRangeAboriginalOghamRunic = 47;
|
||||
const PRUint8 kRangeKhmer = 48;
|
||||
const PRUint8 kRangeMongolian = 49;
|
||||
const PRUint8 kRangeMathOperators = 50;
|
||||
const PRUint8 kRangeMiscTechical = 51;
|
||||
const PRUint8 kRangeControlOpticalEnclose = 52;
|
||||
const PRUint8 kRangeBoxBlockGeometrics = 53;
|
||||
const PRUint8 kRangeMiscSymbols = 54;
|
||||
const PRUint8 kRangeDingbats = 55;
|
||||
const PRUint8 kRangeBraillePattern = 56;
|
||||
const PRUint8 kRangeYi = 57;
|
||||
const PRUint8 kRangeCombiningDiacriticalMarks = 58;
|
||||
const PRUint8 kRangeArmenian = 59;
|
||||
const PRUint8 kRangeSyriac = 36;
|
||||
const PRUint8 kRangeThaana = 37;
|
||||
const PRUint8 kRangeBengali = 38;
|
||||
const PRUint8 kRangeGurmukhi = 39;
|
||||
const PRUint8 kRangeGujarati = 40;
|
||||
const PRUint8 kRangeOriya = 41;
|
||||
const PRUint8 kRangeTelugu = 42;
|
||||
const PRUint8 kRangeKannada = 43;
|
||||
const PRUint8 kRangeMalayalam = 44;
|
||||
const PRUint8 kRangeSinhala = 45;
|
||||
const PRUint8 kRangeLao = 46;
|
||||
const PRUint8 kRangeTibetan = 47;
|
||||
const PRUint8 kRangeMyanmar = 48;
|
||||
const PRUint8 kRangeGeorgian = 49;
|
||||
const PRUint8 kRangeEthiopic = 50;
|
||||
const PRUint8 kRangeCherokee = 51;
|
||||
const PRUint8 kRangeAboriginal = 52;
|
||||
const PRUint8 kRangeOghamRunic = 53;
|
||||
const PRUint8 kRangeKhmer = 54;
|
||||
const PRUint8 kRangeMongolian = 55;
|
||||
const PRUint8 kRangeMathOperators = 56;
|
||||
const PRUint8 kRangeMiscTechnical = 57;
|
||||
const PRUint8 kRangeControlOpticalEnclose = 58;
|
||||
const PRUint8 kRangeBoxBlockGeometrics = 59;
|
||||
const PRUint8 kRangeMiscSymbols = 60;
|
||||
const PRUint8 kRangeDingbats = 61;
|
||||
const PRUint8 kRangeBraillePattern = 62;
|
||||
const PRUint8 kRangeYi = 63;
|
||||
const PRUint8 kRangeCombiningDiacriticalMarks = 64;
|
||||
const PRUint8 kRangeArmenian = 65;
|
||||
|
||||
const PRUint8 kRangeTableBase = 128; //values over 127 are reserved for internal use only
|
||||
const PRUint8 kRangeTertiaryTable = 145; // leave room for 16 subtable
|
||||
// indices (kRangeTableBase + 1 ..
|
||||
// kRangeTableBase + 16)
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -118,6 +118,18 @@ pref("font.name-list.serif.zh-TW", "MingLiU");
|
|||
pref("font.name-list.sans-serif.zh-TW", "MingLiU");
|
||||
pref("font.name-list.monospace.zh-TW", "MingLiU");
|
||||
|
||||
pref("font.name.serif.x-devanagari", "Mangal");
|
||||
pref("font.name.sans-serif.x-devanagari", "Raghindi");
|
||||
pref("font.name.monospace.x-devanagari", "Mangal");
|
||||
pref("font.name-list.serif.x-devanagari", "Mangal, Raghindi");
|
||||
pref("font.name-list.monospace.x-devanagari", "Mangal, Raghindi");
|
||||
|
||||
pref("font.name.serif.x-tamil", "Latha");
|
||||
pref("font.name.sans-serif.x-tamil", "Code2000");
|
||||
pref("font.name.monospace.x-tamil", "Latha");
|
||||
pref("font.name-list.serif.x-tamil", "Latha, Code2000");
|
||||
pref("font.name-list.monospace.x-tamil", "Latha, Code2000");
|
||||
|
||||
pref("font.default", "serif");
|
||||
pref("font.size.variable.ar", 16);
|
||||
pref("font.size.fixed.ar", 13);
|
||||
|
@ -149,6 +161,12 @@ pref("font.size.fixed.x-central-euro", 13);
|
|||
pref("font.size.variable.x-cyrillic", 16);
|
||||
pref("font.size.fixed.x-cyrillic", 13);
|
||||
|
||||
pref("font.size.variable.x-devanagari", 16);
|
||||
pref("font.size.fixed.x-devanagari", 13);
|
||||
|
||||
pref("font.size.variable.x-tamil", 16);
|
||||
pref("font.size.fixed.x-tamil", 13);
|
||||
|
||||
pref("font.size.variable.x-unicode", 16);
|
||||
pref("font.size.fixed.x-unicode", 13);
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче