mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-03-02 22:37:50 +00:00
bug 110342 r=doron sr=jag a=asa
Need a UI to control minimum font size preference
This commit is contained in:
parent
0d17ebcfdc
commit
23f67813a3
suite
@ -51,7 +51,7 @@ catch(e)
|
||||
}
|
||||
|
||||
var fontTypes = ["serif", "sans-serif", "cursive", "fantasy", "monospace"];
|
||||
var variableSize, fixedSize, languageList;
|
||||
var variableSize, fixedSize, minSize, languageList;
|
||||
var languageData = [];
|
||||
var currentLanguage;
|
||||
var gPrefutilitiesBundle;
|
||||
@ -96,7 +96,6 @@ function SetFields( aDataObject )
|
||||
var element = document.getElementById( lists[i] );
|
||||
if( aDataObject.dataEls )
|
||||
{
|
||||
element.value = aDataObject.dataEls[ lists[i] ].value;
|
||||
element.selectedItem = element.getElementsByAttribute( "value", aDataObject.dataEls[ lists[i] ].value )[0];
|
||||
}
|
||||
else
|
||||
@ -106,7 +105,6 @@ function SetFields( aDataObject )
|
||||
if( prefstring && preftype )
|
||||
{
|
||||
var prefvalue = parent.hPrefWindow.getPref( preftype, prefstring );
|
||||
element.value = prefvalue;
|
||||
element.selectedItem = element.getElementsByAttribute( "value", prefvalue )[0];
|
||||
}
|
||||
}
|
||||
@ -152,6 +150,7 @@ function Startup()
|
||||
{
|
||||
variableSize = document.getElementById( "sizeVar" );
|
||||
fixedSize = document.getElementById( "sizeMono" );
|
||||
minSize = document.getElementById( "minSize" );
|
||||
languageList = document.getElementById( "selectLangs" );
|
||||
|
||||
gPrefutilitiesBundle = document.getElementById("bundle_prefutilities");
|
||||
@ -287,11 +286,13 @@ function saveFontPrefs()
|
||||
}
|
||||
var variableSizePref = "font.size.variable." + language;
|
||||
var fixedSizePref = "font.size.fixed." + language;
|
||||
var currVariableSize = 12, currFixedSize = 12;
|
||||
var minSizePref = "font.minimum-size." + language;
|
||||
var currVariableSize = 12, currFixedSize = 12, minSizeVal = 0;
|
||||
try
|
||||
{
|
||||
currVariableSize = pref.GetIntPref( variableSizePref );
|
||||
currFixedSize = pref.GetIntPref( fixedSizePref );
|
||||
minSizeVal = pref.GetIntPref( minSizePref );
|
||||
}
|
||||
catch(e)
|
||||
{
|
||||
@ -300,6 +301,9 @@ function saveFontPrefs()
|
||||
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
|
||||
@ -346,9 +350,25 @@ function saveState()
|
||||
{
|
||||
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.length > 0)
|
||||
minSize.selectedItem = items[0];
|
||||
else if (size < 6)
|
||||
minSizeSelect(6);
|
||||
else if (size > 16)
|
||||
minSizeSelect(16);
|
||||
else
|
||||
minSizeSelect(size - 1);
|
||||
}
|
||||
|
||||
function selectLanguage()
|
||||
{
|
||||
// save current state
|
||||
@ -376,11 +396,13 @@ function selectLanguage()
|
||||
var dataElements = selectElement.listElement.getElementsByAttribute( "value", languageData[languageList.value].types[fontTypes[i]] );
|
||||
var selectedItem = dataElements.length ? dataElements[0] : defaultListSelection;
|
||||
|
||||
minSizeSelect(languageData[languageList.value].minSize);
|
||||
if (strDefaultFontFace)
|
||||
{
|
||||
selectElement.listElement.selectedItem = selectedItem;
|
||||
variableSize.removeAttribute("disabled");
|
||||
fixedSize.removeAttribute("disabled");
|
||||
minSize.removeAttribute("disabled");
|
||||
variableSize.selectedItem = variableSize.getElementsByAttribute( "value", languageData[languageList.value].variableSize )[0];
|
||||
fixedSize.selectedItem = fixedSize.getElementsByAttribute( "value", languageData[languageList.value].fixedSize )[0];
|
||||
}
|
||||
@ -388,6 +410,7 @@ function selectLanguage()
|
||||
{
|
||||
variableSize.setAttribute("disabled","true");
|
||||
fixedSize.setAttribute("disabled","true");
|
||||
minSize.setAttribute("disabled","true");
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -398,7 +421,7 @@ function selectLanguage()
|
||||
|
||||
var selectVal;
|
||||
var selectedItem;
|
||||
|
||||
|
||||
try {
|
||||
var fontPrefString = "font.name." + fontTypes[i] + "." + languageList.value;
|
||||
selectVal = parent.hPrefWindow.pref.CopyUnicharPref( fontPrefString );
|
||||
@ -429,11 +452,11 @@ function selectLanguage()
|
||||
selectedItem = defaultListSelection;
|
||||
}
|
||||
|
||||
selectElement.listElement.value = selectVal;
|
||||
selectElement.listElement.selectedItem = selectedItem;
|
||||
|
||||
variableSize.removeAttribute("disabled");
|
||||
fixedSize.removeAttribute("disabled");
|
||||
minSize.removeAttribute("disabled");
|
||||
|
||||
|
||||
try {
|
||||
@ -443,16 +466,21 @@ function selectLanguage()
|
||||
var sizeVarVal = parent.hPrefWindow.pref.GetIntPref( variableSizePref );
|
||||
var sizeFixedVal = parent.hPrefWindow.pref.GetIntPref( fixedSizePref );
|
||||
|
||||
variableSize.value = sizeVarVal;
|
||||
variableSize.selectedItem = variableSize.getElementsByAttribute( "value", sizeVarVal )[0];
|
||||
|
||||
fixedSize.value = sizeFixedVal;
|
||||
fixedSize.selectedItem = fixedSize.getElementsByAttribute( "value", sizeFixedVal )[0];
|
||||
}
|
||||
|
||||
catch(e) {
|
||||
//font size lists can simply deafult to the first entry
|
||||
}
|
||||
var minSizeVal = 0;
|
||||
try {
|
||||
var minSizePref = "font.minimum-size." + languageList.value;
|
||||
minSizeVal = pref.GetIntPref( minSizePref );
|
||||
}
|
||||
catch(e) {}
|
||||
minSizeSelect( minSizeVal );
|
||||
|
||||
}
|
||||
else
|
||||
@ -460,6 +488,8 @@ function selectLanguage()
|
||||
//disable otherwise
|
||||
variableSize.setAttribute("disabled","true");
|
||||
fixedSize.setAttribute("disabled","true");
|
||||
minSize.setAttribute("disabled","true");
|
||||
minSizeSelect(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -586,7 +616,7 @@ function disableAllFontElements()
|
||||
var doc_ids = [ "selectLangs", "proportionalFont",
|
||||
"sizeVar", "serif", "sans-serif",
|
||||
"cursive", "fantasy", "monospace",
|
||||
"sizeMono" ];
|
||||
"sizeMono", "minSize" ];
|
||||
for (i=0; i<doc_ids.length; i++) {
|
||||
element = document.getElementById( doc_ids[i] );
|
||||
element.disabled = true;
|
||||
|
@ -213,6 +213,30 @@
|
||||
</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="6" label="6"/>
|
||||
<menuitem value="7" label="7"/>
|
||||
<menuitem value="8" label="8"/>
|
||||
<menuitem value="9" label="9"/>
|
||||
<menuitem value="10" label="10"/>
|
||||
<menuitem value="12" label="12"/>
|
||||
<menuitem value="14" label="14"/>
|
||||
<menuitem value="16" label="16"/>
|
||||
</menupopup>
|
||||
</menulist>
|
||||
</row>
|
||||
</rows>
|
||||
</grid>
|
||||
</groupbox>
|
||||
|
@ -41,6 +41,10 @@
|
||||
<!ENTITY font.langGroup.thai "Thai">
|
||||
<!ENTITY font.langGroup.hebrew "Hebrew">
|
||||
<!ENTITY font.langGroup.arabic "Arabic">
|
||||
<!-- Minimum font size -->
|
||||
<!ENTITY minSize.label "Minimum font size:">
|
||||
<!ENTITY minSize.accesskey "z">
|
||||
<!ENTITY minSize.none "None">
|
||||
|
||||
<!-- default font type -->
|
||||
<!ENTITY useDefaultFontSerif.label "Serif">
|
||||
|
Loading…
x
Reference in New Issue
Block a user