Remove user interface for DPI preference. b=326329 r=neil sr=jag

This commit is contained in:
dbaron%dbaron.org 2006-02-26 10:43:33 +00:00
Родитель 21103e359a
Коммит e1d51ee034
5 изменённых файлов: 0 добавлений и 1089 удалений

Просмотреть файл

@ -47,7 +47,6 @@ comm.jar:
content/communicator/pref/pref-debug2.xul (prefwindow/resources/content/pref-debug2.xul)
content/communicator/pref/pref-fonts.js (prefwindow/resources/content/pref-fonts.js)
content/communicator/pref/pref-fonts.xul (prefwindow/resources/content/pref-fonts.xul)
content/communicator/pref/pref-calibrate-screen.xul (prefwindow/resources/content/pref-calibrate-screen.xul)
content/communicator/pref/pref-history.xul (prefwindow/resources/content/pref-history.xul)
content/communicator/pref/pref-http.xul (prefwindow/resources/content/pref-http.xul)
content/communicator/pref/pref-http.js (prefwindow/resources/content/pref-http.js)

Просмотреть файл

Просмотреть файл

@ -1,669 +0,0 @@
/* -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is
* Netscape Communications Corporation.
* Portions created by the Initial Developer are Copyright (C) 1998
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
* Gervase Markham <gerv@gerv.net>
* Tuukka Tolvanen <tt@lament.cjb.net>
* Stefan Borggraefe <Stefan.Borggraefe@gmx.de>
*
* Alternatively, the contents of this file may be used under the terms of
* either of the GNU General Public License Version 2 or later (the "GPL"),
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the MPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
var fontEnumerator = null;
var globalFonts = null;
var fontTypes = ["serif", "sans-serif", "cursive", "fantasy", "monospace"];
var defaultFont, variableSize, fixedSize, minSize, languageList;
var languageData = [];
var currentLanguage;
var gPrefutilitiesBundle;
// manual data retrieval function for PrefWindow
function GetFields()
{
var dataObject = parent.hPrefWindow.wsm.dataManager.pageData["chrome://communicator/content/pref/pref-fonts.xul"];
// store data for language independent widgets
if( !( "dataEls" in dataObject ) )
dataObject.dataEls = [];
dataObject.dataEls[ "selectLangs" ] = [];
dataObject.dataEls[ "selectLangs" ].value = document.getElementById( "selectLangs" ).value;
dataObject.fontDPI = document.getElementById( "screenResolution" ).value;
dataObject.useDocFonts = document.getElementById( "browserUseDocumentFonts" ).checked ? 1 : 0;
// save current state for language dependent fields and store
saveState();
dataObject.languageData = languageData;
return dataObject;
}
// manual data setting function for PrefWindow
function SetFields( aDataObject )
{
languageData = "languageData" in aDataObject ? aDataObject.languageData : languageData ;
currentLanguage = "currentLanguage" in aDataObject ? aDataObject.currentLanguage : null ;
var element = document.getElementById( "selectLangs" );
if( "dataEls" in aDataObject )
{
element.selectedItem = element.getElementsByAttribute( "value", aDataObject.dataEls[ "selectLangs" ].value )[0];
}
else
{
var prefstring = element.getAttribute( "prefstring" );
var preftype = element.getAttribute( "preftype" );
if( prefstring && preftype )
{
var prefvalue = parent.hPrefWindow.getPref( preftype, prefstring );
element.selectedItem = element.getElementsByAttribute( "value", prefvalue )[0];
}
}
var screenResolution = document.getElementById( "screenResolution" );
var resolution;
if( "fontDPI" in aDataObject )
{
resolution = aDataObject.fontDPI;
}
else
{
prefvalue = parent.hPrefWindow.getPref( "int", "browser.display.screen_resolution" );
if( prefvalue != "!/!ERROR_UNDEFINED_PREF!/!" )
resolution = prefvalue;
else
resolution = 96; // If it all goes horribly wrong, fall back on 96.
}
setResolution( resolution );
if ( parent.hPrefWindow.getPrefIsLocked( "browser.display.screen_resolution" ) ) {
screenResolution.disabled = true;
}
var useDocFontsCheckbox = document.getElementById( "browserUseDocumentFonts" );
if( "useDocFonts" in aDataObject && aDataObject.useDocFonts != undefined )
useDocFontsCheckbox.checked = aDataObject.useDocFonts ? true : false;
else
{
prefvalue = parent.hPrefWindow.getPref( "int", "browser.display.use_document_fonts" );
if( prefvalue != "!/!ERROR_UNDEFINED_PREF!/!" )
useDocFontsCheckbox.checked = prefvalue ? true : false ;
}
if ( parent.hPrefWindow.getPrefIsLocked( "browser.display.use_document_fonts" ) ) {
useDocFontsCheckbox.disabled = true;
}
}
function Startup()
{
defaultFont = document.getElementById( "proportionalFont" );
variableSize = document.getElementById( "sizeVar" );
fixedSize = document.getElementById( "sizeMono" );
minSize = document.getElementById( "minSize" );
languageList = document.getElementById( "selectLangs" );
gPrefutilitiesBundle = document.getElementById("bundle_prefutilities");
// register our ok callback function
parent.hPrefWindow.registerOKCallbackFunc( saveFontPrefs );
// eventually we should detect the default language and select it by default
selectLanguage();
// Allow user to ask the OS for a DPI if we are under X or OS/2
if ((navigator.appVersion.indexOf("X11") != -1) || (navigator.appVersion.indexOf("OS/2") != -1))
{
document.getElementById( "systemResolution" ).removeAttribute( "hidden" );
}
// Set up the labels for the standard issue resolutions
var resolution;
resolution = document.getElementById( "screenResolution" );
// Set an attribute on the selected resolution item so we can fall back on
// it if an invalid selection is made (select "Other...", hit Cancel)
resolution.selectedItem.setAttribute("current", "true");
var defaultResolution;
var otherResolution;
// On OS/2, 120 is the default system resolution.
// 96 is valid, but used only for for 640x480.
if (navigator.appVersion.indexOf("OS/2") != -1)
{
defaultResolution = "120";
otherResolution = "96";
document.getElementById( "arbitraryResolution" ).setAttribute( "hidden", "true" );
document.getElementById( "resolutionSeparator" ).setAttribute( "hidden", "true" );
} else {
defaultResolution = "96";
otherResolution = "72";
}
var dpi = resolution.getAttribute( "dpi" );
resolution = document.getElementById( "defaultResolution" );
resolution.setAttribute( "value", defaultResolution );
resolution.setAttribute( "label", dpi.replace(/\$val/, defaultResolution ) );
resolution = document.getElementById( "otherResolution" );
resolution.setAttribute( "value", otherResolution );
resolution.setAttribute( "label", dpi.replace(/\$val/, otherResolution ) );
// Get the pref and set up the dialog appropriately. Startup is called
// after SetFields so we can't rely on that call to do the business.
var prefvalue = parent.hPrefWindow.getPref( "int", "browser.display.screen_resolution" );
if( prefvalue != "!/!ERROR_UNDEFINED_PREF!/!" )
resolution = prefvalue;
else
resolution = 96; // If it all goes horribly wrong, fall back on 96.
setResolution( resolution );
// This prefstring is a contrived pref whose sole purpose is to lock some
// elements in this panel. The value of the pref is not used and does not matter.
if ( parent.hPrefWindow.getPrefIsLocked( "browser.display.languageList" ) ) {
disableAllFontElements();
}
}
function getFontEnumerator()
{
if (!fontEnumerator)
{
fontEnumerator = Components.classes["@mozilla.org/gfx/fontenumerator;1"]
.createInstance()
.QueryInterface(Components.interfaces.nsIFontEnumerator);
}
return fontEnumerator;
}
function listElement( aListID )
{
this.listElement = document.getElementById( aListID );
}
listElement.prototype =
{
clearList:
function ()
{
// remove the menupopup node child of the menulist.
this.listElement.removeChild( this.listElement.firstChild );
},
appendFontNames:
function ( aLanguage, aFontType )
{
var i;
var defaultFont = null;
var count = { value: 0 };
var fonts = getFontEnumerator().EnumerateFonts( aLanguage, aFontType, count );
if (fonts.length > 0)
{
defaultFont = getFontEnumerator().getDefaultFont( aLanguage, aFontType );
}
else
{
// if no specific fonts, relax 'aFontType' and try to get other
// fonts for this language so that we can group them on top
fonts = getFontEnumerator().EnumerateFonts( aLanguage, "", count );
if (fonts.length > 0)
{
defaultFont = getFontEnumerator().getDefaultFont( aLanguage, "" );
}
}
var itemNode = null;
var separatorNode = null;
var popupNode = document.createElement( "menupopup" );
if (fonts.length > 0)
{
// always put the default font at the front of the list
if (defaultFont)
{
var label = gPrefutilitiesBundle
.getString("labelDefaultFont")
.replace(/%font_family%/, defaultFont);
itemNode = document.createElement( "menuitem" );
itemNode.setAttribute( "label", label );
itemNode.setAttribute( "value", "" ); // special blank value
popupNode.appendChild( itemNode );
separatorNode = document.createElement( "menuseparator" );
popupNode.appendChild( separatorNode );
}
for (i = 0; i < fonts.length; i++)
{
itemNode = document.createElement( "menuitem" );
itemNode.setAttribute( "value", fonts[i] );
itemNode.setAttribute( "label", fonts[i] );
popupNode.appendChild( itemNode );
}
}
// get all the fonts to complete the font lists
if (!globalFonts)
{
globalFonts = getFontEnumerator().EnumerateAllFonts( count );
}
// since the lists are sorted, we can get unique entries by just walking
// both lists linearly side-by-side, skipping those values already in
// the popup list
if (globalFonts.length > fonts.length)
{
var menuItem = separatorNode ? separatorNode.nextSibling : popupNode.firstChild;
var menuValue = menuItem ? menuItem.getAttribute( "value" ) : null;
separatorNode = document.createElement( "menuseparator" );
popupNode.appendChild( separatorNode );
for (i = 0; i < globalFonts.length; i++)
{
if (globalFonts[i] != menuValue)
{
itemNode = document.createElement( "menuitem" );
itemNode.setAttribute( "value", globalFonts[i] );
itemNode.setAttribute( "label", globalFonts[i] );
popupNode.appendChild( itemNode );
}
else
{
menuItem = menuItem.nextSibling;
menuValue = menuItem ? menuItem.getAttribute( "value" ) : null;
}
}
}
this.listElement.appendChild( popupNode );
return popupNode.firstChild;
}
};
function lazyAppendFontNames( i )
{
// schedule the build of the next font list
if (i+1 < fontTypes.length)
{
window.setTimeout(lazyAppendFontNames, 100, i+1);
}
// now build and populate the fonts for the requested font type
var defaultItem;
var selectElement = new listElement( fontTypes[i] );
selectElement.clearList();
try
{
defaultItem = selectElement.appendFontNames( languageList.value, fontTypes[i] );
}
catch(e) {
dump("pref-fonts.js: " + e + "\nFailed to build the font list for " + fontTypes[i] + "\n");
return;
}
// now set the selected font item for the drop down list
if (!defaultItem)
return; // nothing to select, so no need to bother
// the item returned by default is our last resort fall-back
var selectedItem = defaultItem;
var dataEls;
if( languageList.value in languageData )
{
// data exists for this language, pre-select items based on this information
var dataVal = languageData[languageList.value].types[fontTypes[i]];
if (dataVal.length) // else: special blank means the default
dataEls = selectElement.listElement.getElementsByAttribute("value", dataVal);
}
else
{
try
{
var fontPrefString = "font.name." + fontTypes[i] + "." + languageList.value;
var selectVal = parent.hPrefWindow.pref.getComplexValue( fontPrefString, Components.interfaces.nsISupportsString ).data;
dataEls = selectElement.listElement.getElementsByAttribute("value", selectVal);
// we need to honor name-list in case name is unavailable
if (!dataEls.item(0)) {
var fontListPrefString = "font.name-list." + fontTypes[i] + "." + languageList.value;
var nameList = parent.hPrefWindow.pref.getComplexValue( fontListPrefString, Components.interfaces.nsISupportsString ).data;
var fontNames = nameList.split(",");
for (j = 0; j < fontNames.length; j++) {
selectVal = fontNames[j].replace(/^\s+|\s+$/, "");
dataEls = selectElement.listElement.getElementsByAttribute("value", selectVal);
if (dataEls.item(0))
break; // exit loop if we find one
}
}
}
catch(e) {
}
}
if (dataEls && dataEls.item(0))
selectedItem = dataEls[0];
selectElement.listElement.selectedItem = selectedItem;
selectElement.listElement.removeAttribute( "disabled" );
}
function saveFontPrefs()
{
// saving font prefs
var dataObject = parent.hPrefWindow.wsm.dataManager.pageData["chrome://communicator/content/pref/pref-fonts.xul"];
var pref = parent.hPrefWindow.pref;
for( var language in dataObject.languageData )
{
for( var type in dataObject.languageData[language].types )
{
var fontPrefString = "font.name." + type + "." + language;
var currValue = "";
try
{
currValue = pref.getComplexValue( fontPrefString, Components.interfaces.nsISupportsString ).data;
}
catch(e)
{
}
var dataValue = dataObject.languageData[language].types[type];
if( currValue != dataValue )
{
if (dataValue)
{
parent.hPrefWindow.setPref( "string", fontPrefString, dataValue );
}
else
{
// A font name can't be blank. The special blank means the default.
// Unset the pref entirely, letting Gfx to decide. GfxXft will use what
// Xft says, whereas GfxWin and others will use the built-in settings
// that are shipped for font.name and font.name-list.
try
{
// ClearUserPref throws an exception...
pref.clearUserPref( fontPrefString );
}
catch(e)
{
}
}
}
}
var defaultFontPref = "font.default." + language;
var variableSizePref = "font.size.variable." + language;
var fixedSizePref = "font.size.fixed." + language;
var minSizePref = "font.minimum-size." + language;
var currDefaultFont = "serif", currVariableSize = 12, currFixedSize = 12, minSizeVal = 0;
try
{
currDefaultFont = parent.hPrefWindow.getPref( "string", defaultFontPref );
currVariableSize = pref.getIntPref( variableSizePref );
currFixedSize = pref.getIntPref( fixedSizePref );
minSizeVal = pref.getIntPref( minSizePref );
}
catch(e)
{
}
if( currDefaultFont != dataObject.languageData[language].defaultFont )
parent.hPrefWindow.setPref( "string", defaultFontPref, dataObject.languageData[language].defaultFont );
if( currVariableSize != dataObject.languageData[language].variableSize )
pref.setIntPref( variableSizePref, dataObject.languageData[language].variableSize );
if( currFixedSize != dataObject.languageData[language].fixedSize )
pref.setIntPref( fixedSizePref, dataObject.languageData[language].fixedSize );
if( minSizeVal != dataObject.languageData[language].minSize ) {
pref.setIntPref ( minSizePref, dataObject.languageData[language].minSize );
}
}
// font scaling
var fontDPI = parseInt( dataObject.fontDPI );
var documentFonts = dataObject.useDocFonts;
var defaultFont = dataObject.defaultFont;
try
{
var currDPI = pref.getIntPref( "browser.display.screen_resolution" );
var currFonts = pref.getIntPref( "browser.display.use_document_fonts" );
}
catch(e)
{
}
if( currDPI != fontDPI )
pref.setIntPref( "browser.display.screen_resolution", fontDPI );
if( currFonts != documentFonts )
pref.setIntPref( "browser.display.use_document_fonts", documentFonts );
}
function saveState()
{
for( var i = 0; i < fontTypes.length; i++ )
{
// preliminary initialisation
if( currentLanguage && !( currentLanguage in languageData ) )
languageData[currentLanguage] = [];
if( currentLanguage && !( "types" in languageData[currentLanguage] ) )
languageData[currentLanguage].types = [];
// save data for the previous language
if( currentLanguage && currentLanguage in languageData &&
"types" in languageData[currentLanguage] )
languageData[currentLanguage].types[fontTypes[i]] = document.getElementById( fontTypes[i] ).value;
}
if( currentLanguage && currentLanguage in languageData &&
"types" in languageData[currentLanguage] )
{
languageData[currentLanguage].defaultFont = defaultFont.value;
languageData[currentLanguage].variableSize = parseInt( variableSize.value );
languageData[currentLanguage].fixedSize = parseInt( fixedSize.value );
languageData[currentLanguage].minSize = parseInt( minSize.value );
}
}
// Selects size (or the nearest entry that exists in the list)
// in the menulist minSize
function minSizeSelect(size)
{
var items = minSize.getElementsByAttribute( "value", size );
if (items.item(0))
minSize.selectedItem = items[0];
else if (size < 6)
minSizeSelect(6);
else if (size > 24)
minSizeSelect(24);
else
minSizeSelect(size - 1);
}
function selectLanguage()
{
// save current state
saveState();
if( !currentLanguage )
currentLanguage = languageList.value;
else if( currentLanguage == languageList.value )
return; // same as before, nothing changed
// lazily populate the successive font lists at 100ms intervals.
// (Note: the third parameter to setTimeout() is going to be
// passed as argument to the callback function.)
window.setTimeout(lazyAppendFontNames, 100, 0);
// in the meantime, disable the menu lists
for( var i = 0; i < fontTypes.length; i++ )
{
var listElement = document.getElementById( fontTypes[i] );
listElement.setAttribute( "value", "" );
listElement.setAttribute( "label", "" );
listElement.setAttribute( "disabled", "true" );
}
// and set the default font type and the font sizes
try
{
defaultFont.value = parent.hPrefWindow.getPref("string", "font.default." + languageList.value);
var variableSizePref = "font.size.variable." + languageList.value;
var sizeVarVal = parent.hPrefWindow.pref.getIntPref( variableSizePref );
variableSize.selectedItem = variableSize.getElementsByAttribute( "value", sizeVarVal )[0];
var fixedSizePref = "font.size.fixed." + languageList.value;
var sizeFixedVal = parent.hPrefWindow.pref.getIntPref( fixedSizePref );
fixedSize.selectedItem = fixedSize.getElementsByAttribute( "value", sizeFixedVal )[0];
}
catch(e) { } // font size lists can simply default to the first entry
var minSizeVal = 0;
try
{
var minSizePref = "font.minimum-size." + languageList.value;
minSizeVal = parent.hPrefWindow.pref.getIntPref( minSizePref );
}
catch(e) { }
minSizeSelect( minSizeVal );
currentLanguage = languageList.value;
}
function changeScreenResolution()
{
var screenResolution = document.getElementById("screenResolution");
var userResolution = document.getElementById("userResolution");
var previousSelection = screenResolution.getElementsByAttribute("current", "true")[0];
if (screenResolution.value == "other")
{
// If the user selects "Other..." we bring up the calibrate screen dialog
var rv = { newdpi : -1 };
var calscreen = window.openDialog("chrome://communicator/content/pref/pref-calibrate-screen.xul",
"_blank",
"modal,chrome,centerscreen,resizable=no,titlebar",
rv);
if (rv.newdpi != -1)
{
// They have entered values, and we have a DPI value back
var dpi = screenResolution.getAttribute( "dpi" );
setResolution ( rv.newdpi );
previousSelection.removeAttribute("current");
screenResolution.selectedItem.setAttribute("current", "true");
}
else
{
// They've cancelled. We can't leave "Other..." selected, so...
// we re-select the previously selected item.
screenResolution.selectedItem = previousSelection;
}
}
else if (!(screenResolution.value == userResolution.value))
{
// User has selected one of the hard-coded resolutions
userResolution.setAttribute("hidden", "true");
previousSelection.removeAttribute("current");
screenResolution.selectedItem.setAttribute("current", "true");
}
}
function setResolution( resolution )
{
// Given a number, if it's equal to a hard-coded resolution we use that,
// otherwise we set the userResolution field.
var screenResolution = document.getElementById( "screenResolution" );
var userResolution = document.getElementById( "userResolution" );
var items = screenResolution.getElementsByAttribute( "value", resolution );
if (items.item(0))
{
// If it's one of the hard-coded values, we'll select it directly
screenResolution.selectedItem = items[0];
userResolution.setAttribute( "hidden", "true" );
}
else
{
// Otherwise we need to set up the userResolution field
var dpi = screenResolution.getAttribute( "dpi" );
userResolution.setAttribute( "value", resolution );
userResolution.setAttribute( "label", dpi.replace(/\$val/, resolution) );
userResolution.removeAttribute( "hidden" );
screenResolution.selectedItem = userResolution;
}
}
// "Calibrate screen" dialog code
function onOK()
{
// Get value from the dialog to work out dpi
var horizSize = parseFloat(document.getElementById("horizSize").value);
// We can't calculate anything without a proper value
if (!horizSize || horizSize < 0)
return true;
// Convert centimetres to inches.
// The magic number is allowed because it's a fundamental constant :-)
if (document.getElementById("units").value === "centimetres")
horizSize /= 2.54;
// These shouldn't change, but you can't be too careful.
var horizBarLengthPx = document.getElementById("horizRuler").boxObject.width;
var horizDPI = parseInt(horizBarLengthPx) / horizSize;
// Average the two <shrug>.
window.arguments[0].newdpi = Math.round(horizDPI);
return true;
}
// disable font items, but not the browserUseDocumentFonts checkbox nor the resolution
// menulist
function disableAllFontElements()
{
var doc_ids = [ "selectLangs", "proportionalFont",
"sizeVar", "serif", "sans-serif",
"cursive", "fantasy", "monospace",
"sizeMono", "minSize" ];
for (i=0; i<doc_ids.length; i++) {
element = document.getElementById( doc_ids[i] );
element.disabled = true;
}
}

Просмотреть файл

@ -1,323 +0,0 @@
<?xml version="1.0"?>
<!-- ***** BEGIN LICENSE BLOCK *****
Version: MPL 1.1/GPL 2.0/LGPL 2.1
The contents of this file are subject to the Mozilla Public License Version
1.1 (the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.mozilla.org/MPL/
Software distributed under the License is distributed on an "AS IS" basis,
WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
for the specific language governing rights and limitations under the
License.
The Original Code is Mozilla Communicator client code, released
March 31, 1998.
The Initial Developer of the Original Code is
Netscape Communications Corporation.
Portions created by the Initial Developer are Copyright (C) 1998-2000
the Initial Developer. All Rights Reserved.
Contributor(s):
Alternatively, the contents of this file may be used under the terms of
either of the GNU General Public License Version 2 or later (the "GPL"),
or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
in which case the provisions of the GPL or the LGPL are applicable instead
of those above. If you wish to allow use of your version of this file only
under the terms of either the GPL or the LGPL, and not to allow others to
use your version of this file under the terms of the MPL, indicate your
decision by deleting the provisions above and replace them with the notice
and other provisions required by the GPL or the LGPL. If you do not delete
the provisions above, a recipient may use your version of this file under
the terms of any one of the MPL, the GPL or the LGPL.
***** END LICENSE BLOCK ***** -->
<?xml-stylesheet href="chrome://communicator/skin/" type="text/css"?>
<?xml-stylesheet href="chrome://communicator/skin/prefpanels.css" type="text/css"?>
<!DOCTYPE page SYSTEM "chrome://communicator/locale/pref/pref-fonts.dtd" >
<page xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
onload="parent.initPanel('chrome://communicator/content/pref/pref-fonts.xul');"
headertitle="&pref.fonts.title;">
<stringbundle id="bundle_prefutilities"
src="chrome://communicator/locale/pref/prefutilities.properties"/>
<script type="application/x-javascript"
src="chrome://communicator/content/pref/pref-fonts.js"/>
<script type="application/x-javascript">
<![CDATA[
var _elementIDs = ["selectLangs"];
]]>
</script>
<groupbox>
<caption>
<hbox align="center">
<label value="&language.label;"
accesskey="&language.accesskey;"
control="selectLangs"/>
</hbox>
<menulist id="selectLangs" oncommand="selectLanguage();"
preftype="localizedstring" prefstring="font.language.group"
wsm_attributes="value">
<menupopup>
<menuitem value="x-western" label="&font.langGroup.latin1;"/>
<menuitem value="x-central-euro" label="&font.langGroup.latin2;"/>
<menuitem value="ja" label="&font.langGroup.japanese;"/>
<menuitem value="zh-TW" label="&font.langGroup.trad-chinese;"/>
<menuitem value="zh-CN" label="&font.langGroup.simpl-chinese;"/>
<menuitem value="zh-HK" label="&font.langGroup.trad-chinese-hk;"/>
<menuitem value="ko" label="&font.langGroup.korean;"/>
<menuitem value="x-cyrillic" label="&font.langGroup.cyrillic;"/>
<menuitem value="x-baltic" label="&font.langGroup.baltic;"/>
<menuitem value="el" label="&font.langGroup.el;"/>
<menuitem value="tr" label="&font.langGroup.turkish;"/>
<menuitem value="th" label="&font.langGroup.thai;"/>
<menuitem value="he" label="&font.langGroup.hebrew;"/>
<menuitem value="ar" label="&font.langGroup.arabic;"/>
<menuitem value="x-devanagari" label="&font.langGroup.devanagari;"/>
<menuitem value="x-tamil" label="&font.langGroup.tamil;"/>
<menuitem value="x-armn" label="&font.langGroup.armenian;"/>
<menuitem value="x-beng" label="&font.langGroup.bengali;"/>
<menuitem value="x-cans" label="&font.langGroup.canadian;"/>
<menuitem value="x-ethi" label="&font.langGroup.ethiopic;"/>
<menuitem value="x-geor" label="&font.langGroup.georgian;"/>
<menuitem value="x-gujr" label="&font.langGroup.gujarati;"/>
<menuitem value="x-guru" label="&font.langGroup.gurmukhi;"/>
<menuitem value="x-khmr" label="&font.langGroup.khmer;"/>
<menuitem value="x-mlym" label="&font.langGroup.malayalam;"/>
<menuitem value="x-unicode" label="&font.langGroup.unicode;"/>
<menuitem value="x-user-def" label="&font.langGroup.user-def;"/>
</menupopup>
</menulist>
</caption>
<separator class="thin"/>
<grid>
<columns>
<column/>
<column flex="1"/>
<column/>
</columns>
<rows>
<row align="center">
<spacer/>
<hbox align="center">
<label value="&typefaces.label;"/>
</hbox>
<hbox align="center">
<label value="&sizes.label;"/>
</hbox>
</row>
<row>
<separator class="thin"/>
</row>
<row align="center">
<hbox align="center" pack="end">
<label value="&proportional.label;"
accesskey="&proportional.accesskey;"
control="proportionalFont"/>
</hbox>
<menulist id="proportionalFont" flex="1" style="width: 0px;">
<menupopup>
<menuitem value="serif"
label="&useDefaultFontSerif.label;"/>
<menuitem value="sans-serif"
label="&useDefaultFontSansSerif.label;"/>
</menupopup>
</menulist>
<menulist id="sizeVar" class="small-margin">
<menupopup>
<menuitem value="8" label="8"/>
<menuitem value="9" label="9"/>
<menuitem value="10" label="10"/>
<menuitem value="11" label="11"/>
<menuitem value="12" label="12"/>
<menuitem value="13" label="13"/>
<menuitem value="14" label="14"/>
<menuitem value="15" label="15"/>
<menuitem value="16" label="16"/>
<menuitem value="17" label="17"/>
<menuitem value="18" label="18"/>
<menuitem value="20" label="20"/>
<menuitem value="22" label="22"/>
<menuitem value="24" label="24"/>
<menuitem value="26" label="26"/>
<menuitem value="28" label="28"/>
<menuitem value="30" label="30"/>
<menuitem value="32" label="32"/>
<menuitem value="34" label="34"/>
<menuitem value="36" label="36"/>
<menuitem value="40" label="40"/>
<menuitem value="44" label="44"/>
<menuitem value="48" label="48"/>
<menuitem value="56" label="56"/>
<menuitem value="64" label="64"/>
<menuitem value="72" label="72"/>
</menupopup>
</menulist>
</row>
<row>
<separator class="thin"/>
</row>
<row align="center">
<hbox align="center" pack="end">
<label value="&serif.label;"
accesskey="&serif.accesskey;"
control="serif"/>
</hbox>
<menulist id="serif" class="prefpanel-font-list">
<menupopup/>
</menulist>
<spacer/>
</row>
<row align="center">
<hbox align="center" pack="end">
<label value="&sans-serif.label;"
accesskey="&sans-serif.accesskey;"
control="sans-serif"/>
</hbox>
<menulist id="sans-serif" class="prefpanel-font-list">
<menupopup/>
</menulist>
<spacer/>
</row>
<row align="center">
<hbox align="center" pack="end">
<label value="&cursive.label;"
accesskey="&cursive.accesskey;"
control="cursive"/>
</hbox>
<menulist id="cursive" class="prefpanel-font-list">
<menupopup/>
</menulist>
<spacer/>
</row>
<row align="center">
<hbox align="center" pack="end">
<label value="&fantasy.label;"
accesskey="&fantasy.accesskey;"
control="fantasy"/>
</hbox>
<menulist id="fantasy" class="prefpanel-font-list">
<menupopup/>
</menulist>
<spacer/>
</row>
<row align="center">
<hbox align="center" pack="end">
<label value="&monospace.label;"
accesskey="&monospace.accesskey;"
control="monospace"/>
</hbox>
<menulist id="monospace" class="prefpanel-font-list">
<menupopup/>
</menulist>
<menulist id="sizeMono">
<menupopup>
<menuitem value="8" label="8"/>
<menuitem value="9" label="9"/>
<menuitem value="10" label="10"/>
<menuitem value="11" label="11"/>
<menuitem value="12" label="12"/>
<menuitem value="13" label="13"/>
<menuitem value="14" label="14"/>
<menuitem value="15" label="15"/>
<menuitem value="16" label="16"/>
<menuitem value="17" label="17"/>
<menuitem value="18" label="18"/>
<menuitem value="20" label="20"/>
<menuitem value="22" label="22"/>
<menuitem value="24" label="24"/>
<menuitem value="26" label="26"/>
<menuitem value="28" label="28"/>
<menuitem value="30" label="30"/>
<menuitem value="32" label="32"/>
<menuitem value="34" label="34"/>
<menuitem value="36" label="36"/>
<menuitem value="40" label="40"/>
<menuitem value="44" label="44"/>
<menuitem value="48" label="48"/>
<menuitem value="56" label="56"/>
<menuitem value="64" label="64"/>
<menuitem value="72" label="72"/>
</menupopup>
</menulist>
</row>
<row>
<separator class="thin"/>
</row>
<row>
<spacer/>
<hbox align="center" pack="end">
<label value="&minSize.label;"
accesskey="&minSize.accesskey;"
control="minSize"/>
</hbox>
<menulist id="minSize">
<menupopup>
<menuitem value="0" label="&minSize.none;"/>
<menuitem value="9" label="9"/>
<menuitem value="10" label="10"/>
<menuitem value="11" label="11"/>
<menuitem value="12" label="12"/>
<menuitem value="13" label="13"/>
<menuitem value="14" label="14"/>
<menuitem value="15" label="15"/>
<menuitem value="16" label="16"/>
<menuitem value="17" label="17"/>
<menuitem value="18" label="18"/>
<menuitem value="20" label="20"/>
<menuitem value="22" label="22"/>
<menuitem value="24" label="24"/>
</menupopup>
</menulist>
</row>
</rows>
</grid>
</groupbox>
<separator class="thin"/>
<hbox align="center">
<!-- Unchecking this removes the ability to select dynamic fonts -->
<checkbox id="browserUseDocumentFonts"
label="&useDocumentFonts.label;"
accesskey="&useDocumentFonts.accesskey;"/>
</hbox>
<separator class="thin"/>
<hbox align="center">
<label value="&resolution.label;"
accesskey="&resolution.accesskey;"
control="screenResolution"/>
<menulist id="screenResolution"
oncommand="changeScreenResolution()"
dpi="&resolution.dpival;">
<menupopup>
<menuitem value=""
label="&resolution.dpival;"
id="otherResolution"/>
<menuitem value=""
label="&resolution.dpival;"
id="defaultResolution"/>
<menuitem value="0"
label="&resolution.system.label;"
id="systemResolution"
hidden="true"/>
<menuseparator id="resolutionSeparator"/>
<menuitem id="userResolution" hidden="true"/>
<menuitem id="arbitraryResolution" value="other" label="&resolution.other;"/>
</menupopup>
</menulist>
</hbox>
</page>

Просмотреть файл

@ -1,96 +0,0 @@
<!-- extracted from content/pref-fonts.xul -->
<!-- LOCALIZATION NOTE : FILE 'Fonts' prefs dialog -->
<!ENTITY pref.fonts.title "Fonts">
<!ENTITY language.label "Fonts for:">
<!ENTITY language.accesskey "t">
<!ENTITY typefaces.label "Typeface">
<!ENTITY sizes.label "Size (pixels)">
<!ENTITY proportional.label "Proportional:">
<!ENTITY proportional.accesskey "P">
<!ENTITY serif.label "Serif:">
<!ENTITY serif.accesskey "s">
<!ENTITY sans-serif.label "Sans-serif:">
<!ENTITY sans-serif.accesskey "n">
<!ENTITY monospace.label "Monospace:">
<!ENTITY monospace.accesskey "m">
<!-- LOCALIZATION NOTE (fantasy.label): 'Fantasy' means 'Ornate' -->
<!ENTITY fantasy.label "Fantasy:">
<!ENTITY fantasy.accesskey "f">
<!ENTITY cursive.label "Cursive:">
<!ENTITY cursive.accesskey "c">
<!ENTITY fontsize.units "pixels">
<!ENTITY font.langGroup.latin1 "Western">
<!ENTITY font.langGroup.latin2 "Central European">
<!ENTITY font.langGroup.japanese "Japanese">
<!ENTITY font.langGroup.trad-chinese "Traditional Chinese(Taiwan)">
<!ENTITY font.langGroup.simpl-chinese "Simplified Chinese">
<!ENTITY font.langGroup.trad-chinese-hk "Traditional Chinese(Hong Kong)">
<!ENTITY font.langGroup.korean "Korean">
<!ENTITY font.langGroup.cyrillic "Cyrillic">
<!ENTITY font.langGroup.baltic "Baltic">
<!ENTITY font.langGroup.el "Greek">
<!ENTITY font.langGroup.turkish "Turkish">
<!ENTITY font.langGroup.unicode "Other Languages">
<!ENTITY font.langGroup.user-def "User Defined">
<!ENTITY font.langGroup.thai "Thai">
<!ENTITY font.langGroup.hebrew "Hebrew">
<!ENTITY font.langGroup.arabic "Arabic">
<!ENTITY font.langGroup.devanagari "Devanagari">
<!ENTITY font.langGroup.tamil "Tamil">
<!ENTITY font.langGroup.armenian "Armenian">
<!ENTITY font.langGroup.bengali "Bengali">
<!ENTITY font.langGroup.canadian "Unified Canadian Syllabary">
<!ENTITY font.langGroup.ethiopic "Ethiopic">
<!ENTITY font.langGroup.georgian "Georgian">
<!ENTITY font.langGroup.gujarati "Gujarati">
<!ENTITY font.langGroup.gurmukhi "Gurmukhi">
<!ENTITY font.langGroup.khmer "Khmer">
<!ENTITY font.langGroup.malayalam "Malayalam">
<!-- Minimum font size -->
<!ENTITY minSize.label "Minimum font size:">
<!ENTITY minSize.accesskey "z">
<!ENTITY minSize.none "None">
<!-- default font type -->
<!ENTITY useDefaultFontSerif.label "Serif">
<!ENTITY useDefaultFontSansSerif.label "Sans Serif">
<!ENTITY newLanguages.label "New languages can be configured using the Languages Panel.">
<!ENTITY useDocumentFonts.label "Allow documents to use other fonts">
<!ENTITY useDocumentFonts.accesskey "o">
<!-- leaving this stuff in for now -->
<!ENTITY header2 "When a webpage chooses its own fonts">
<!ENTITY useDefaultFont.label "Use my default fonts, ignoring the fonts the page has chosen">
<!ENTITY useDefaultFont.accesskey "u">
<!-- LOCALIZATION NOTE (useDocFontNonDynamic): Translate 'Dynamic Fonts' according to Netscape Glossary -->
<!ENTITY useDocFontNonDynamic.label "Use the fonts chosen by the page">
<!ENTITY useDocFontNonDynamic.accesskey "p">
<!-- LOCALIZATION NOTE (useDocFontDynamic): Translate 'Dynamic Fonts' according to Netscape Glossary -->
<!ENTITY useDocFontDynamic.label "Use all the fonts chosen by the page">
<!ENTITY useDocFontDynamic.accesskey "a">
<!-- font scaling -->
<!ENTITY resolution.label "Display resolution:">
<!ENTITY resolution.accesskey "r">
<!-- LOCALIZATION NOTE (resolution.dpi): dpi stands for "dots per inch" -->
<!ENTITY resolution.dpi "dpi">
<!-- LOCALIZATION NOTE (resolution.dpi): $val will be replaced by a numeric dpi value. -->
<!ENTITY resolution.dpival "$val &resolution.dpi;">
<!ENTITY resolution.system.label "System setting">
<!ENTITY resolution.other "Other...">
<!-- screen calibration dialog -->
<!ENTITY calibrateDialog.title "Calibrate Resolution">
<!ENTITY calibrate.instructions "The length of the line above is:">
<!ENTITY units.inches "inches">
<!ENTITY units.centimetres "centimeters">