mirror of https://github.com/roytam1/kmeleon.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
636 lines
25 KiB
636 lines
25 KiB
<?xml version="1.0"?> |
|
<?xml-stylesheet type="text/css" href="chrome://global/skin/"?> |
|
<?xml-stylesheet type="text/css" href="chrome://kmprefs/skin/"?> |
|
<?xul-overlay href="chrome://kmprefs/content/kmprefs/ovrl-javascript.xul"?> |
|
<?xul-overlay href="chrome://kmprefs/content/kmprefs/ovrl-languages.xul"?> |
|
<!DOCTYPE page SYSTEM "chrome://kmprefs/locale/pref-display.dtd"> |
|
<page xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" id="prefDisplay" onload="init()"> |
|
<stringbundle id="pref_bundle" src="chrome://kmprefs/locale/pref.properties"/> |
|
<stringbundle id="font_bundle" src="chrome://kmprefs/locale/pref-display.properties"/> |
|
<script type="application/x-javascript" src="chrome://kmprefs/content/pref.js"/> |
|
<script type="application/x-javascript" src="chrome://kmprefs/content/kplugins/jsbridge.js"/> |
|
<!-- <script type="application/x-javascript" src="chrome://kmprefs/content/kmprefs/ovrl-languages.js"/> --> |
|
<stringbundleset id="lang_stringbundleset"> |
|
<stringbundle id="acceptedBundle" |
|
src="resource://gre/res/language.properties"/> |
|
<stringbundle id="languagesBundle" |
|
src="chrome://global/locale/languageNames.properties"/> |
|
<stringbundle id="regionsBundle" |
|
src="chrome://global/locale/regionNames.properties"/> |
|
<stringbundle id="prefLangBundle" |
|
src="chrome://kmprefs/locale/kmprefs/ovrl-languages.properties"/> |
|
<script type="application/x-javascript" src="chrome://kmprefs/content/kmprefs/ovrl-languages.js"/> |
|
</stringbundleset> |
|
<script type="application/x-javascript"> |
|
<![CDATA[ |
|
function init() { |
|
if (JSB.load) { |
|
document.getElementById("imagePerm").removeAttribute("hidden"); |
|
} |
|
for (var j = 0, b = document.getElementsByTagName("checkbox"); j < b.length; j++) |
|
if (b[j].getAttribute("id") == "CSS") |
|
b[j].checked = testMultiline(getFileContents(UserStyle), Placeholder._RegExp); |
|
else |
|
if (b[j].getAttribute("id") == "Marquee") |
|
b[j].checked = testMultiline(getFileContents(UserStyle), Marquee._RegExp); |
|
else |
|
if (b[j].getAttribute("id") == "browser.display.use_document_fonts") |
|
continue; |
|
else |
|
initCheckbox(b[j].getAttribute("id")); |
|
for (var j = 0, r = document.getElementsByTagName("radiogroup"); j < r.length; j++) |
|
initRadiogroup(r[j].getAttribute("id")); |
|
Source.init(); |
|
// setInterval("initCheckbox('browser.frames.enabled');initRadiogroup('image.animation_mode');initRadiogroup('permissions.default.image')",100); |
|
Zoom.init(); |
|
} |
|
var Marquee = { |
|
_Import : "marquee { -moz-binding: none; }", |
|
_RegExp : "marquee[\\s]*\\{[\\s]*-moz-binding:[\\s]*none[\\s]*;[\\s]*\\}", |
|
toggle : function (elem) { |
|
if (elem.checked) |
|
addToUserStyle(this._Import); |
|
else |
|
removeFromFile(UserStyle, this._RegExp); |
|
} |
|
}; |
|
var Placeholder = { |
|
_Import : "img { -moz-force-broken-image-icon: 1; }", |
|
_RegExp : "img[\\s]*\\{[\\s]*-moz-force-broken-image-icon:[\\s]*1[\\s]*;[\\s]*\\}", |
|
_Elmnts : ["browser.display.show_image_placeholders", |
|
"browser.display.force_inline_alttext", |
|
"CSS"], |
|
toggle : function (elem) { |
|
switch (elem.id) { |
|
case this._Elmnts[0]: |
|
toggleCheckbox(this._Elmnts[0]); |
|
if (document.getElementById(this._Elmnts[1]).checked) |
|
toggleCheckbox(this._Elmnts[1]); |
|
break; |
|
case this._Elmnts[1]: |
|
toggleCheckbox(this._Elmnts[1]); |
|
if (document.getElementById(this._Elmnts[0]).checked) |
|
toggleCheckbox(this._Elmnts[0]); |
|
removeFromFile(UserStyle, this._RegExp); |
|
break; |
|
case this._Elmnts[2]: |
|
if (document.getElementById(this._Elmnts[2]).checked) { |
|
if (document.getElementById(this._Elmnts[1]).checked) |
|
toggleCheckbox(this._Elmnts[1]); |
|
addToUserStyle(this._Import); |
|
} else |
|
removeFromFile(UserStyle, this._RegExp); |
|
break; |
|
} |
|
} |
|
}; |
|
var Source = { |
|
pref : null, |
|
init : function () { |
|
this.pref = new Array("kmeleon.general.sourceEnabled", |
|
"kmeleon.general.sourceCommand"); |
|
initCheckbox(this.pref[0]); |
|
initTextbox(this.pref[1], document.getElementById("pref_bundle").getString("pref_not_set")); |
|
var elem = document.getElementById(this.pref[1]); |
|
elem.disabled = !pref.getBoolPref(this.pref[0]); |
|
elem.previousSibling.disabled = elem.disabled; |
|
elem.nextSibling.disabled = elem.disabled; |
|
}, |
|
selectFile : function () { |
|
var bnd = document.getElementById("pref_bundle"); |
|
var dir = getFile(getFolder("ProgF"), ""); |
|
var fp = Components.classes["@mozilla.org/filepicker;1"] |
|
.createInstance(nsIFilePicker); |
|
fp.init(window, bnd.getString("select_" + this.pref[1]), nsIFilePicker.modeOpen); |
|
fp.appendFilters(nsIFilePicker.filterApps); |
|
fp.displayDirectory = dir; |
|
var ret = fp.show(); |
|
if (ret == nsIFilePicker.returnOK) { |
|
setCharPref(this.pref[1], fp.file.path); |
|
initTextbox(this.pref[1], ""); |
|
} |
|
} |
|
}; |
|
var doneFonts = false; |
|
function initFonts() { |
|
if (!doneFonts) { |
|
doneFonts = true; |
|
var prefID = "browser.display.use_document_fonts"; |
|
document.getElementById(prefID).checked = (pref.getIntPref(prefID) > 0); |
|
Fonts.init(); |
|
} |
|
} |
|
var FontEnumerator = Components.classes["@mozilla.org/gfx/fontenumerator;1"] |
|
.createInstance() |
|
.QueryInterface(Components.interfaces.nsIFontEnumerator); |
|
var Fonts = { |
|
allFnts : null, |
|
langGrp : null, |
|
fontTyp : ["serif", "sans-serif", "cursive", "fantasy", "monospace"], |
|
pref : "font.language.group", |
|
init : function () { |
|
// this.langGrp = getPrefValue(this.pref); // returns properties file location |
|
this.langGrp = document.getElementById(this.pref).value; |
|
this._initSize("font.size.fixed", this.langGrp, false); |
|
this._initSize("font.size.variable", this.langGrp, false); |
|
this._initSize("font.minimum-size", this.langGrp, document.getElementById("font_bundle").getString("min_size_none")); |
|
document.getElementById("default").value = getPrefValue("font.default." + this.langGrp); |
|
for (var i = 0; i < this.fontTyp.length; i++) |
|
this._initList(this.langGrp, this.fontTyp[i]); |
|
}, |
|
_initList : function (langGroup, fontType) { |
|
var elem = document.getElementById(fontType); |
|
elem.disabled = true; |
|
elem.removeChild(elem.firstChild); |
|
var count = { |
|
value : 0 |
|
}, |
|
deflt = null, |
|
fonts = FontEnumerator.EnumerateFonts(langGroup, fontType, count); |
|
if (fonts.length) |
|
deflt = FontEnumerator.getDefaultFont(langGroup, fontType); |
|
else { |
|
// skip generic font type and try to find any fonts |
|
fonts = FontEnumerator.EnumerateFonts(langGroup, "", count); |
|
if (fonts.length) |
|
deflt = FontEnumerator.getDefaultFont(langGroup, ""); |
|
} |
|
if (!this.allFnts) |
|
this.allFnts = FontEnumerator.EnumerateAllFonts(count); |
|
var litem, |
|
pitem = document.createElement("menupopup"); |
|
if (fonts.length) { |
|
// list language-specific fonts first |
|
if (deflt) { |
|
// list default font first |
|
litem = document.createElement("menuitem"); |
|
litem.setAttribute("value", ""); // blank value |
|
litem.setAttribute("label", document.getElementById("font_bundle").getString("default_font").replace(/%S/, deflt)); |
|
pitem.appendChild(litem); |
|
pitem.appendChild(document.createElement("menuseparator")); |
|
} |
|
for (var i = 0; i < fonts.length; i++) { |
|
litem = document.createElement("menuitem"); |
|
litem.setAttribute("value", fonts[i]); |
|
litem.setAttribute("label", fonts[i]); |
|
pitem.appendChild(litem); |
|
} |
|
} |
|
if (this.allFnts.length > fonts.length) { |
|
if (fonts.length) |
|
pitem.appendChild(document.createElement("menuseparator")); |
|
for (var i = 0, j = 0, t; i < this.allFnts.length; i++) { |
|
try { |
|
t = fonts[j]; |
|
} catch (e) { |
|
t = null; |
|
} |
|
if (this.allFnts[i] == t) { |
|
j++; |
|
continue; |
|
} else { |
|
litem = document.createElement("menuitem"); |
|
litem.setAttribute("value", this.allFnts[i]); |
|
litem.setAttribute("label", this.allFnts[i]); |
|
pitem.appendChild(litem); |
|
} |
|
} |
|
} |
|
elem.appendChild(pitem); |
|
if (deflt == null) |
|
deflt = this._getDefault(langGroup, fontType, elem); |
|
else { |
|
elem.selectedIndex = 0; |
|
elem.disabled = false; |
|
return; |
|
} |
|
elem.selectedItem = (deflt == null) ? elem.firstChild.firstChild : elem.getElementsByAttribute("value", deflt)[0]; |
|
var pref = "font.name." + fontType + "." + langGroup; |
|
if (getPrefValue(pref) == null) |
|
setCharPref(pref, elem.value); |
|
elem.disabled = false; |
|
}, |
|
_initSize : function (boxID, subID, emptyStr) { |
|
var box = document.getElementById(boxID), |
|
val = getPrefValue(boxID + "." + subID); |
|
box.removeAttribute("onfocus"); |
|
box.removeAttribute("onblur"); |
|
if (val == null) { |
|
val = document.getElementById("pref_bundle").getString("pref_not_set"); |
|
if (!box.readonly) { |
|
box.setAttribute("onfocus", "this.value=''"); |
|
box.setAttribute("onblur", "Fonts._initSize('" + boxID + "','" + subID + "'," + ((emptyStr) ? ("'" + emptyStr + "'") : "false") + ")"); |
|
} |
|
box.value = (emptyStr) ? emptyStr : val; |
|
return; |
|
} |
|
if (!val && emptyStr) { |
|
if (!box.readonly) { |
|
box.setAttribute("onfocus", "this.value=''"); |
|
box.setAttribute("onblur", "Fonts._initSize('" + boxID + "','" + subID + "','" + emptyStr + "')"); |
|
} |
|
box.value = emptyStr; |
|
} else |
|
box.value = val; |
|
}, |
|
setSize : function (boxID, prefVal) { |
|
if (prefVal) { |
|
var re = new RegExp("^[0-9]+$"); |
|
if (re.test(prefVal)) { |
|
prefVal = parseInt(prefVal); |
|
if (prefVal) |
|
pref.setIntPref(boxID + "." + this.langGrp, prefVal); |
|
else |
|
restoreDefault(boxID + "." + this.langGrp); |
|
} else { |
|
alert(document.getElementById("pref_bundle").getString("positive_integer_expected")); |
|
document.getElementById(boxID).value = getPrefValue(boxID + "." + this.langGrp); |
|
document.getElementById(boxID).focus(); |
|
} |
|
} else |
|
restoreDefault(boxID + "." + this.langGrp); |
|
}, |
|
setFont : function (fontName, fontType) { |
|
if (fontName) |
|
setCharPref("font.name." + fontType + "." + this.langGrp, fontName); |
|
else |
|
restoreDefault("font.name." + fontType + "." + this.langGrp); |
|
}, |
|
setDefaultFont : function (fontName) { |
|
setCharPref("font.default." + this.langGrp, fontName); |
|
}, |
|
_getDefault : function (langGroup, fontType, listItem) { |
|
var val = getPrefValue("font.name." + fontType + "." + langGroup), |
|
itm; |
|
if (val == null) { |
|
val = getPrefValue("font.name-list." + fontType + "." + langGroup); |
|
if (val == null) |
|
return null; |
|
for (var i = 0; i < val.length; i++) { |
|
val[i] = val[i].replace(/^\s*(.*)\s*$/, "$1") // remove leading/trailing whitespace |
|
itm = listItem.getElementsByAttribute("value", val[i]); |
|
if (itm && itm.item(0)) |
|
return val[i]; |
|
} |
|
} else { |
|
itm = listItem.getElementsByAttribute("value", val); |
|
if (itm && itm.item(0)) |
|
return val; |
|
} |
|
return null; |
|
} |
|
}; |
|
var Zoom = { |
|
pref : "zoom.defaultPercent", |
|
prefmin : "zoom.minPercent", |
|
prefmax : "zoom.maxPercent", |
|
min : 30, |
|
default: 100, |
|
max : 300, |
|
init : function () { |
|
var numberbox = document.getElementById("zoom.defaultPercent"); |
|
var slider = document.getElementById("zoom.defaultPercentS"); |
|
var zoom_value = getPrefValue(Zoom.pref); |
|
var zmin_p = getPrefValue(Zoom.prefmin); |
|
var zmax_p = getPrefValue(Zoom.prefmax); |
|
if (parseInt(zoom_value) > parseInt(zmax_p)) { |
|
zoom_value = zmax_p; |
|
} else if (parseInt(zoom_value) < parseInt(zmin_p)) { |
|
zoom_value = zmin_p; |
|
} |
|
numberbox.valueNumber = zoom_value; |
|
//numberbox.setAttribute("min",zmin_p); |
|
numberbox.setAttribute("max", zmax_p); |
|
document.getElementById("zlabel_min").value = zmin_p + " %"; |
|
document.getElementById("zlabel_max").value = zmax_p + " %"; |
|
slider.value = zoom_value; |
|
slider.setAttribute("min", zmin_p); |
|
slider.setAttribute("max", zmax_p); |
|
}, |
|
changed : function (PrefID) { |
|
var numberbox = document.getElementById("zoom.defaultPercent"); |
|
var slider = document.getElementById("zoom.defaultPercentS"); |
|
if (PrefID == numberbox.getAttribute("id")) { |
|
var zmin_p = getPrefValue(Zoom.prefmin); |
|
var zmax_p = getPrefValue(Zoom.prefmax); |
|
var inputvalue = numberbox.valueNumber; |
|
if (parseInt(inputvalue) >= parseInt(getPrefValue(Zoom.prefmin)) && parseInt(inputvalue) <= parseInt(getPrefValue(Zoom.prefmax))) { |
|
slider.value = numberbox.valueNumber; |
|
setIntPref(Zoom.pref, numberbox.valueNumber); |
|
} else if (parseInt(inputvalue) > parseInt(zmax_p)) { |
|
slider.value = zmax_p; |
|
setIntPref(Zoom.pref, zmax_p); |
|
} else if (parseInt(inputvalue) < parseInt(zmin_p)) { |
|
slider.value = zmin_p; |
|
setIntPref(Zoom.pref, zmin_p); |
|
} |
|
} else { |
|
numberbox.valueNumber = slider.value; |
|
setIntPref(Zoom.pref, numberbox.valueNumber); |
|
} |
|
}, |
|
normal : function () { |
|
setIntPref(Zoom.pref, Zoom.default); |
|
setIntPref(Zoom.prefmin, Zoom.min); |
|
setIntPref(Zoom.prefmax, Zoom.max); |
|
Zoom.init(); |
|
} |
|
}; |
|
]]> |
|
</script> |
|
<vbox flex="1" style="overflow:auto"> |
|
<dialogheader title="&display.header;"/> |
|
<separator class="thin"/> |
|
<tabcontrol flex="1"> |
|
<tabbox flex="1"> |
|
<tabs> |
|
<tab label="&general;"/> |
|
<tab label="&fonts.label;" oncommand="initFonts()" onfocus="initFonts()"/> |
|
<tab label="&images.label;"/> |
|
<tab id="LanguagesWebTab" oncommand="initLangWeb()" onfocus="initLangWeb()"/> |
|
</tabs> |
|
<tabpanels flex="1"> |
|
<tabpanel flex="1" orient="vertical" style="overflow:auto"> |
|
<!-- General --> |
|
<separator class="thin"/> |
|
|
|
<!-- FRAMES OLD ... ###### pref obsolete, not working anymore |
|
<groupbox> |
|
<caption> |
|
<label>&frames.label;</label> |
|
</caption> |
|
<checkbox oncommand="toggleCheckbox(this.id)" id="browser.frames.enabled" label="&frames.enable;"/> |
|
<checkbox oncommand="toggleCheckbox(this.id)" id="layout.frames.force_resizability" label="&frames.resizable;"/> |
|
<separator class="thin"/> |
|
</groupbox> |
|
FRAMES OLD --> |
|
|
|
<hbox> |
|
<!-- NEW: SUBDOCUMENTS / IFRAMES ###### ToDo: Create Exceptions Editor, add default pref, add in DTD universal "&permissions.load.never/always/noForeign", replace here with copy of Images code below and rename labels --> |
|
<groupbox flex="1"> |
|
<caption> |
|
<!--label>&subdocuments.load;</label--> |
|
<label>Load Subdocuments (iframes etc.)</label> |
|
</caption> |
|
<radiogroup oncommand="try{pref.getIntPref(this.id);} catch(e){pref.setIntPref(this.id,1);} toggleRadiogroup(this.id);" id="permissions.default.subdocument"> |
|
<radio value="" label="&images.load.always;" hidden="true"/> |
|
<!--radio value="2" label="&permissions.load.never;"/--> |
|
<radio value="2" label="Never"/> |
|
<radio value="1" label="&images.load.always;"/> |
|
<radio value="3" label="&images.load.noForeign;"/> |
|
</radiogroup> |
|
<separator class="thin"/> |
|
<hbox id="subdocPerm"> |
|
<!--button label="&exceptions;" oncommand="JSB.id('ID_SUBDOCUMENT_PERM')"/ --> |
|
<button label="&exceptions;" oncommand="alert('Not yet implemented.\nUse addon ExExceptions special KM-version.\nOr edit permissions.sqlite manually (type is subdocument)');"/> |
|
<hbox flex="1"/> |
|
</hbox> |
|
</groupbox> |
|
|
|
<!-- NEW: MEDIA ###### ToDo: Create Exceptions Editor, add default pref, add in DTD universal "&permissions.load.never/always/noForeign", replace here with copy of Images code below and rename labels --> |
|
<groupbox flex="1"> |
|
<caption> |
|
<!--label>&media.load;</label--> |
|
<label>Load Media (HTML5 Audio Video)</label> |
|
</caption> |
|
<radiogroup oncommand="try{pref.getIntPref(this.id);} catch(e){pref.setIntPref(this.id,1);} toggleRadiogroup(this.id);" id="permissions.default.media"> |
|
<radio value="" label="&images.load.always;" hidden="true"/> |
|
<!--radio value="2" label="&permissions.load.never;"/--> |
|
<radio value="2" label="Never"/> |
|
<radio value="1" label="&images.load.always;"/> |
|
<radio value="3" label="&images.load.noForeign;"/> |
|
</radiogroup> |
|
<separator class="thin"/> |
|
<hbox id="mediaPerm"> |
|
<!--button label="&exceptions;" oncommand="JSB.id('ID_MEDIA_PERM')"/ --> |
|
<button label="&exceptions;" oncommand="alert('Not yet implemented.\nEdit permissions.sqlite manually (type is media)\nFuture editor can look exactly like Image Exceptions:'); JSB.id('ID_IMAGE_PERM')"/> |
|
<hbox flex="1"/> |
|
</hbox> |
|
</groupbox> |
|
</hbox> |
|
|
|
<separator class="thin"/> |
|
<groupbox> |
|
<caption> |
|
<label>&text.label;</label> |
|
</caption> |
|
<checkbox oncommand="toggleCheckbox(this.id)" id="browser.blink_allowed" label="&text.blink;"/> |
|
<checkbox oncommand="Marquee.toggle(this)" id="Marquee" label="&text.marquee;"/> |
|
<description>&marquee.note;</description> |
|
</groupbox> |
|
<separator class="thin"/> |
|
<groupbox> |
|
<caption> |
|
<label>&source.label;</label> |
|
</caption> |
|
<checkbox oncommand="toggleCheckbox(this.id);Source.init()" id="kmeleon.general.sourceEnabled" label="&source.external;"/> |
|
<hbox align="center" style="padding-left:2em"> |
|
<label value="&source.viewer;"/> |
|
<textbox id="kmeleon.general.sourceCommand" flex="1" class="uri-element" oninput="setCharPref(this.id,this.value)"/> |
|
<button label="&browse;" oncommand="Source.selectFile()"/> |
|
</hbox> |
|
</groupbox> |
|
<separator class="thin"/> |
|
<groupbox> |
|
<caption> |
|
<label>&zoom.label;</label> |
|
</caption> |
|
<label value="&zoom.description;"/> |
|
<hbox align="center"> |
|
<label id="zlabel_min" value="min %"/> |
|
<scale id="zoom.defaultPercentS" min="0" max="300" width="270" onchange="Zoom.changed(this.id)"/> |
|
<label id="zlabel_max" value="max %"/> |
|
<separator class="thin"/> |
|
<textbox id="zoom.defaultPercent" type="number" min="0" max="300" width="50" oninput="Zoom.changed(this.id)" onchange="Zoom.changed(this.id)"/> |
|
<separator class="thin"/> |
|
<button label="&zoom.normal;" oncommand="Zoom.normal()"/> |
|
</hbox> |
|
</groupbox> |
|
<!-- General --> |
|
</tabpanel> |
|
<tabpanel flex="1" orient="vertical" style="overflow:auto"> |
|
<!-- Fonts --> |
|
<groupbox> |
|
<caption> |
|
<hbox align="center"> |
|
<label value="&fonts.forLanguage;"/> |
|
<menulist id="font.language.group" oncommand="Fonts.init()"> |
|
<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-CN" label="&font.langGroup.simpl-chinese;"/> |
|
<menuitem value="zh-TW" label="&font.langGroup.trad-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;"/> |
|
<menuseparator/> |
|
<menuitem value="x-unicode" label="&font.langGroup.unicode;"/> |
|
<!--menuitem value="x-user-def" label="&font.langGroup.user-def;"/--> |
|
</menupopup> |
|
</menulist> |
|
</hbox> |
|
</caption> |
|
<separator class="thin"/> |
|
<grid> |
|
<columns> |
|
<column/> |
|
<column flex="1"/> |
|
<column/> |
|
</columns> |
|
<rows> |
|
<row align="center"> |
|
<label value="&fonts.genericType;"/> |
|
<label value="&fonts.typeface;"/> |
|
<label value="&fonts.size;"/> |
|
</row> |
|
<row> |
|
<separator class="thin"/> |
|
</row> |
|
<row align="center"> |
|
<label value="&fonts.proportional;"/> |
|
<menulist id="default" oncommand="Fonts.setDefaultFont(this.value)"> |
|
<menupopup> |
|
<menuitem value="serif" label="&fonts.default.serif;"/> |
|
<menuitem value="sans-serif" label="&fonts.default.sans-serif;"/> |
|
</menupopup> |
|
</menulist> |
|
<textbox id="font.size.variable" class="uri-element" size="4" oninput="Fonts.setSize(this.id,this.value)"/> |
|
</row> |
|
<row align="center"> |
|
<hbox align="center" pack="end"> |
|
<label value="&fonts.serif;"/> |
|
</hbox> |
|
<menulist id="serif" oncommand="Fonts.setFont(this.value,this.id)"> |
|
<menupopup/> |
|
</menulist> |
|
<spacer/> |
|
</row> |
|
<row align="center"> |
|
<hbox align="center" pack="end"> |
|
<label value="&fonts.sans-serif;"/> |
|
</hbox> |
|
<menulist id="sans-serif" oncommand="Fonts.setFont(this.value,this.id)"> |
|
<menupopup/> |
|
</menulist> |
|
<spacer/> |
|
</row> |
|
<row align="center"> |
|
<hbox align="center" pack="end"> |
|
<label value="&fonts.cursive;"/> |
|
</hbox> |
|
<menulist id="cursive" oncommand="Fonts.setFont(this.value,this.id)"> |
|
<menupopup/> |
|
</menulist> |
|
<spacer/> |
|
</row> |
|
<row align="center"> |
|
<hbox align="center" pack="end"> |
|
<label value="&fonts.fantasy;"/> |
|
</hbox> |
|
<menulist id="fantasy" oncommand="Fonts.setFont(this.value,this.id)"> |
|
<menupopup/> |
|
</menulist> |
|
<spacer/> |
|
</row> |
|
<row> |
|
<separator class="thin"/> |
|
</row> |
|
<row align="center"> |
|
<label value="&fonts.monospace;"/> |
|
<menulist id="monospace" oncommand="Fonts.setFont(this.value,this.id)"> |
|
<menupopup/> |
|
</menulist> |
|
<textbox id="font.size.fixed" class="uri-element" size="4" oninput="Fonts.setSize(this.id,this.value)"/> |
|
</row> |
|
<row> |
|
<separator class="thin"/> |
|
</row> |
|
<row> |
|
<spacer/> |
|
<hbox align="center" pack="end"> |
|
<label value="&fonts.minSize;"/> |
|
</hbox> |
|
<textbox id="font.minimum-size" class="uri-element" size="4" oninput="Fonts.setSize(this.id,this.value)"/> |
|
</row> |
|
</rows> |
|
</grid> |
|
<separator class="thin"/> |
|
</groupbox> |
|
<separator class="thin"/> |
|
<checkbox oncommand="pref.setIntPref(this.id,this.checked?1:0)" id="browser.display.use_document_fonts" label="&fonts.useDocFonts;"/> |
|
<!-- Toggle between 0 (never) and 1 (quick); 2 (always) is deprecated --> |
|
<!-- Fonts --> |
|
</tabpanel> |
|
<tabpanel flex="1" orient="vertical" style="overflow:auto"> |
|
<!-- Images --> |
|
<separator class="thin"/> |
|
<hbox> |
|
<groupbox flex="1"> |
|
<caption> |
|
<label>&images.load;</label> |
|
</caption> |
|
<radiogroup oncommand="toggleRadiogroup(this.id)" id="permissions.default.image"> |
|
<radio value="2" label="&images.load.never;"/> |
|
<radio value="1" label="&images.load.always;"/> |
|
<radio value="3" label="&images.load.noForeign;"/> |
|
</radiogroup> |
|
<separator class="thin"/> |
|
<hbox id="imagePerm" hidden="true"> |
|
<button label="&exceptions;" oncommand="JSB.id('ID_IMAGE_PERM')"/> |
|
<hbox flex="1"/> |
|
</hbox> |
|
</groupbox> |
|
<groupbox flex="1"> |
|
<caption> |
|
<label>&images.loop;</label> |
|
</caption> |
|
<radiogroup oncommand="toggleRadiogroup(this.id)" id="image.animation_mode"> |
|
<radio value="none" label="&images.loop.none;"/> |
|
<radio value="normal" label="&images.loop.normal;"/> |
|
<radio value="once" label="&images.loop.once;"/> |
|
</radiogroup> |
|
<separator class="thin"/> |
|
</groupbox> |
|
</hbox> |
|
<separator class="thick"/> |
|
<checkbox oncommand="toggleCheckbox(this.id)" id="browser.enable_automatic_image_resizing" label="&images.resizing;"/> |
|
<separator class="thin"/> |
|
<vbox id="domDISS"/> |
|
<separator class="thick"/> |
|
<groupbox> |
|
<caption> |
|
<label>&images.missing;</label> |
|
</caption> |
|
<checkbox oncommand="Placeholder.toggle(this);init()" id="browser.display.show_image_placeholders" label="&images.placeholders;"/> |
|
<checkbox oncommand="Placeholder.toggle(this);init()" id="browser.display.force_inline_alttext" label="&images.inline.force;"/> |
|
<description>&images.inline.note;</description> |
|
<checkbox oncommand="Placeholder.toggle(this);init()" id="CSS" label="&images.block.force;"/> |
|
<description>&restartNote1;</description> |
|
</groupbox> |
|
<!-- Images --> |
|
</tabpanel> |
|
<!-- Languages --> |
|
<tabpanel id="LanguagesWebPages"/> |
|
</tabpanels> |
|
</tabbox> |
|
</tabcontrol> |
|
</vbox> |
|
</page> |