Synchronize documentation stylesheet changes to the new layout

Thom Brown
This commit is contained in:
Magnus Hagander
2011-06-15 12:27:14 +02:00
parent e0ac07fb24
commit ac612423f5
7 changed files with 407 additions and 95 deletions

24
media/js/monospacefix.js Normal file
View File

@ -0,0 +1,24 @@
function display_default_font_size(id)
{
var x = document.getElementById(id);
if (x.currentStyle)
var y = x.currentStyle['fontSize'];
else if (window.getComputedStyle)
var y = document.defaultView.getComputedStyle(x,null).getPropertyValue('font-size');
return y;
}
document.write('<pre id="monotest" style="display: none;">&nbsp;</pre>');
document.write('<p id="paratest" style="display: none;">&nbsp;</p>');
var monoSize = parseInt(display_default_font_size("monotest"));
var propSize = parseInt(display_default_font_size("paratest"));
var newMonoSize = propSize / monoSize;
if (newMonoSize != 1)
{
document.write('<style type="text/css" media="screen">'
+ '#docContainer tt, #docContainer pre, #docContainer code'
+ '{font-size: ' + newMonoSize.toFixed(1) + 'em;}</style>\n');
}

91
media/js/styleswitcher.js Normal file
View File

@ -0,0 +1,91 @@
/* http://www.alistapart.com/articles/alternate/ */
function
setActiveStyleSheet (title)
{
var i, a, main;
for (i = 0; (a = document.getElementsByTagName ("link")[i]); i++)
{
if (a.getAttribute ("rel").indexOf ("style") != -1
&& a.getAttribute ("title"))
{
a.disabled = true;
if (a.getAttribute ("title").indexOf(title) != -1)
a.disabled = false;
}
}
}
function
getActiveStyleSheet ()
{
var i, a;
for (i = 0; (a = document.getElementsByTagName ("link")[i]); i++)
{
if (a.getAttribute ("rel").indexOf ("style") != -1
&& a.getAttribute ("title") && !a.disabled)
return a.getAttribute ("title");
}
return null;
}
function
getPreferredStyleSheet ()
{
var i, a;
for (i = 0; (a = document.getElementsByTagName ("link")[i]); i++)
{
if (a.getAttribute ("rel").indexOf ("style") != -1
&& a.getAttribute ("rel").indexOf ("alt") == -1
&& a.getAttribute ("title"))
return a.getAttribute ("title");
}
return null;
}
function
createCookie (name, value, days)
{
if (days)
{
var date = new Date ();
date.setTime (date.getTime () + (days * 24 * 60 * 60 * 1000));
var expires = "; expires=" + date.toGMTString ();
}
else
expires = "";
document.cookie = name + "=" + value + expires + "; path=/";
}
function
readCookie (name)
{
var nameEQ = name + "=";
var ca = document.cookie.split (';');
for (var i = 0; i < ca.length; i++)
{
var c = ca[i];
while (c.charAt (0) == ' ')
c = c.substring (1, c.length);
if (c.indexOf (nameEQ) == 0)
return c.substring (nameEQ.length, c.length);
}
return null;
}
window.onload = function (e)
{
var cookie = readCookie ("style");
var title = cookie ? cookie : getPreferredStyleSheet ();
setActiveStyleSheet (title);
}
window.onunload = function (e)
{
var title = getActiveStyleSheet ();
createCookie ("style", title, 365);
}
var cookie = readCookie ("style");
var title = cookie ? cookie : getPreferredStyleSheet ();
setActiveStyleSheet (title);