r=pedemont, sr=blizzard
OS/2 only - bullet proof unicode stuff, better default fonts
This commit is contained in:
mkaply%us.ibm.com 2002-06-27 22:37:30 +00:00
parent cb5e2389d8
commit fa28b7f016
2 changed files with 34 additions and 59 deletions

View File

@ -1613,6 +1613,9 @@ nsFontMetricsOS2::ResolveForwards(HPS aPS,
if(( *currChar > 0x00FF ) && (*currChar != 0x20AC)) if(( *currChar > 0x00FF ) && (*currChar != 0x20AC))
{ {
fh = GetUnicodeFont(aPS); fh = GetUnicodeFont(aPS);
NS_ASSERTION(fh, "GetUnicodeFont failed");
if (!fh)
fh = FindGlobalFont(aPS);
fontSwitch.mFont = fh; fontSwitch.mFont = fh;
while( ++currChar < lastChar ) while( ++currChar < lastChar )
{ {
@ -1704,6 +1707,9 @@ nsFontMetricsOS2::ResolveBackwards(HPS aPS,
if(( *currChar > 0x00FF ) && (*currChar != 0x20AC)) if(( *currChar > 0x00FF ) && (*currChar != 0x20AC))
{ {
fh = GetUnicodeFont(aPS); fh = GetUnicodeFont(aPS);
NS_ASSERTION(fh, "GetUnicodeFont failed");
if (!fh)
fh = FindGlobalFont(aPS);
fontSwitch.mFont = fh; fontSwitch.mFont = fh;
while( --currChar > lastChar ) while( --currChar > lastChar )
{ {
@ -2012,17 +2018,14 @@ nsFontOS2*
nsFontMetricsOS2::FindGlobalFont( HPS aPS ) nsFontMetricsOS2::FindGlobalFont( HPS aPS )
{ {
nsFontOS2* fh = nsnull; nsFontOS2* fh = nsnull;
int count = gGlobalFonts->Count(); nsAutoString fontname;
int limit = count + gCachedIndex; if (!IsDBCS())
for( int i = gCachedIndex; i < limit; i++) fontname = NS_LITERAL_STRING("Helv");
{ else
nsGlobalFont* font = (nsGlobalFont*)gGlobalFonts->ElementAt(i%count); fontname = NS_LITERAL_STRING("Helv Combined");
fh = LoadFont( aPS, &font->name ); fh = LoadFont( aPS, &fontname );
if( fh ) NS_ASSERTION(fh, "Couldn't load default font - BAD things are happening");
return fh; return fh;
}
return nsnull;
} }

View File

@ -38,104 +38,76 @@
pref("ui.key.menuAccessKeyFocuses", true); pref("ui.key.menuAccessKeyFocuses", true);
pref("browser.display.screen_resolution", 0); // System setting pref("browser.display.screen_resolution", 0); // System setting
/* Fonts only needs lists if we have a default that might not be available. */
/* Tms Rmn, Helv and Courier are ALWAYS available on OS/2 */
pref("font.name.serif.ar", "Tms Rmn"); pref("font.name.serif.ar", "Tms Rmn");
pref("font.name-list.serif.ar", "Tms Rmn, Times New Roman MT 30");
pref("font.name.sans-serif.ar", "Helv"); pref("font.name.sans-serif.ar", "Helv");
pref("font.name-list.sans-serif.ar", "Helv, Times New Roman MT 30");
pref("font.name.monospace.ar", "Courier"); pref("font.name.monospace.ar", "Courier");
pref("font.name.fantasy.ar", "Symbol Set");
pref("font.name.serif.el", "Tms Rmn"); pref("font.name.serif.el", "Tms Rmn");
pref("font.name-list.serif.el", "Tms Rmn, Times New Roman MT 30");
pref("font.name.sans-serif.el", "Helv"); pref("font.name.sans-serif.el", "Helv");
pref("font.name-list.sans-serif.el", "Helv, Times New Roman MT 30");
pref("font.name.monospace.el", "Courier"); pref("font.name.monospace.el", "Courier");
pref("font.name.fantasy.el", "Symbol Set");
pref("font.name.serif.he", "Tms Rmn"); pref("font.name.serif.he", "Tms Rmn");
pref("font.name-list.serif.he", "Tms Rmn, Times New Roman MT 30");
pref("font.name.sans-serif.he", "Helv"); pref("font.name.sans-serif.he", "Helv");
pref("font.name-list.sans-serif.he", "Helv, Times New Roman MT 30");
pref("font.name.monospace.he", "Courier"); pref("font.name.monospace.he", "Courier");
pref("font.name.fantasy.he", "Symbol Set");
pref("font.name.serif.ja", "Tms Rmn"); pref("font.name.serif.ja", "Times New Roman WT J");
pref("font.name-list.serif.ja", "Tms Rmn, Times New Roman MT 30"); pref("font.name-list.serif.ja", "Times New Roman WT J, Times New Roman MT 30, Tms Rmn");
pref("font.name.sans-serif.ja", "Helv"); pref("font.name.sans-serif.ja", "Helv");
pref("font.name-list.sans-serif.ja", "Helv, Times New Roman MT 30");
pref("font.name.monospace.ja", "Courier"); pref("font.name.monospace.ja", "Courier");
pref("font.name.fantasy.ja", "Symbol Set");
pref("font.name.serif.ko", "Tms Rmn"); pref("font.name.serif.ko", "Times New Roman WT K");
pref("font.name-list.serif.ko", "Tms Rmn, Times New Roman MT 30"); pref("font.name-list.serif.ko", "Times New Roman WT K, Times New Roman MT 30, Tms Rmn");
pref("font.name.sans-serif.ko", "Helv"); pref("font.name.sans-serif.ko", "Helv");
pref("font.name-list.sans-serif.ko", "Helv, Times New Roman MT 30");
pref("font.name.monospace.ko", "Courier"); pref("font.name.monospace.ko", "Courier");
pref("font.name.fantasy.ko", "Symbol Set");
pref("font.name.serif.th", "Tms Rmn"); pref("font.name.serif.th", "Tms Rmn");
pref("font.name-list.serif.th", "Tms Rmn, Times New Roman MT 30");
pref("font.name.sans-serif.th", "Helv"); pref("font.name.sans-serif.th", "Helv");
pref("font.name-list.sans-serif.th", "Helv, Times New Roman MT 30");
pref("font.name.monospace.th", "Courier"); pref("font.name.monospace.th", "Courier");
pref("font.name.fantasy.th", "Symbol Set");
pref("font.name.serif.tr", "Tms Rmn"); pref("font.name.serif.tr", "Tms Rmn");
pref("font.name-list.serif.tr", "Tms Rmn, Times New Roman MT 30");
pref("font.name.sans-serif.tr", "Helv"); pref("font.name.sans-serif.tr", "Helv");
pref("font.name-list.sans-serif.tr", "Helv, Times New Roman MT 30");
pref("font.name.monospace.tr", "Courier"); pref("font.name.monospace.tr", "Courier");
pref("font.name.fantasy.tr", "Symbol Set");
pref("font.name.serif.x-baltic", "Tms Rmn"); pref("font.name.serif.x-baltic", "Tms Rmn");
pref("font.name-list.serif.x-baltic", "Tms Rmn, Times New Roman MT 30");
pref("font.name.sans-serif.x-baltic", "Helv"); pref("font.name.sans-serif.x-baltic", "Helv");
pref("font.name-list.sans-serif.x-baltic", "Helv, Times New Roman MT 30");
pref("font.name.monospace.x-baltic", "Courier"); pref("font.name.monospace.x-baltic", "Courier");
pref("font.name.fantasy.x-baltic", "Symbol Set");
pref("font.name.serif.x-central-euro", "Tms Rmn"); pref("font.name.serif.x-central-euro", "Tms Rmn");
pref("font.name-list.serif.x-central-euro", "Tms Rmn, Times New Roman MT 30"); pref("font.name.sans-serif.x-central-euro", "Tms Rmn");
pref("font.name.sans-serif.x-central-euro", "Helv");
pref("font.name-list.sans-serif.x-central-euro", "Helv, Times New Roman MT 30");
pref("font.name.monospace.x-central-euro", "Courier"); pref("font.name.monospace.x-central-euro", "Courier");
pref("font.name.fantasy.x-central-euro", "Symbol Set");
pref("font.name.serif.x-cyrillic", "Tms Rmn"); pref("font.name.serif.x-cyrillic", "Tms Rmn");
pref("font.name-list.serif.x-cyrillic", "Tms Rmn, Times New Roman MT 30"); pref("font.name.sans-serif.x-cyrillic", "Tms Rmn");
pref("font.name.sans-serif.x-cyrillic", "Helv");
pref("font.name-list.sans-serif.x-cyrillic", "Helv, Times New Roman MT 30");
pref("font.name.monospace.x-cyrillic", "Courier"); pref("font.name.monospace.x-cyrillic", "Courier");
pref("font.name.fantasy.x-cyrillic", "Symbol Set");
/* The unicode fonts must ALWAYS have a list with one valid font */
pref("font.name.serif.x-unicode", "Times New Roman MT 30"); pref("font.name.serif.x-unicode", "Times New Roman MT 30");
pref("font.name-list.serif.x-unicode", "Times New Roman MT 30, Tms Rmn"); pref("font.name-list.serif.x-unicode", "Times New Roman MT 30, Tms Rmn");
pref("font.name.sans-serif.x-unicode", "Times New Roman MT 30"); pref("font.name.sans-serif.x-unicode", "Times New Roman MT 30");
pref("font.name-list.sans-serif.x-unicode", "Times New Roman MT 30, Helv"); pref("font.name-list.sans-serif.x-unicode", "Times New Roman MT 30, Helv");
pref("font.name.monospace.x-unicode", "Courier"); pref("font.name.monospace.x-unicode", "Times New Roman MT 30");
pref("font.name-list.monospace.x-unicode", "Times New Roman MT 30, Courier");
pref("font.name.fantasy.x-unicode", "Times New Roman MT 30");
pref("font.name-list.fantasy.x-unicode", "Times New Roman MT 30, Helv");
pref("font.name.cursive.x-unicode", "Times New Roman MT 30");
pref("font.name-list.cursive.x-unicode", "Times New Roman MT 30, Helv");
pref("font.name.serif.x-western", "Tms Rmn"); pref("font.name.serif.x-western", "Tms Rmn");
pref("font.name-list.serif.x-western", "Tms Rmn, Times New Roman");
pref("font.name.sans-serif.x-western", "Helv"); pref("font.name.sans-serif.x-western", "Helv");
pref("font.name-list.sans-serif.x-western", "Helv, Helvetica, Arial");
pref("font.name.monospace.x-western", "Courier"); pref("font.name.monospace.x-western", "Courier");
pref("font.name-list.monospace.x-western", "Courier, Courier New");
pref("font.name.fantasy.x-western", "Symbol Set");
pref("font.name-list.fantasy.x-western", "Symbol Set, Wingdings");
pref("font.name.serif.zh-CN", "Tms Rmn"); pref("font.name.serif.zh-CN", "Times New Roman WT SC");
pref("font.name-list.serif.zh_CN", "Tms Rmn, Times New Roman MT 30"); pref("font.name-list.serif.zh_CN", "Times New Roman WT SC, Times New Roman MT 30, Tms Rmn");
pref("font.name.sans-serif.zh-CN", "Helv"); pref("font.name.sans-serif.zh-CN", "Helv");
pref("font.name-list.sans-serif.zh-CN", "Helv, Times New Roman MT 30");
pref("font.name.monospace.zh-CN", "Courier"); pref("font.name.monospace.zh-CN", "Courier");
pref("font.name.fantasy.zh-CN", "Symbol Set");
pref("font.name.serif.zh-TW", "Tms Rmn"); pref("font.name.serif.zh-TW", "Times New Roman WT TC");
pref("font.name-list.serif.zh-TW", "Tms Rmn, Times New Roman MT 30"); pref("font.name-list.serif.zh-TW", "Times New Roman WT TC, Times New Roman MT 30, Tms Rmn");
pref("font.name.sans-serif.zh-TW", "Helv"); pref("font.name.sans-serif.zh-TW", "Helv");
pref("font.name-list.sans-serif.zh-TW", "Helv, Times New Roman MT 30");
pref("font.name.monospace.zh-TW", "Courier"); pref("font.name.monospace.zh-TW", "Courier");
pref("font.name.fantasy.zh-TW", "Symbol Set");
pref("font.default", "serif"); pref("font.default", "serif");
pref("font.size.variable.ar", 16); pref("font.size.variable.ar", 16);