Files
Mozilla/mozilla/xpfe/global/resources/content/charsetOverlay.js
cata%netscape.com 568d73b342 Listener code for the onload event. r=hyatt, a=bobj bug #28108.
git-svn-id: svn://10.0.0.236/trunk@61456 18797224-902f-48f8-a5cc-f745e15eee43
2000-02-23 00:00:26 +00:00

107 lines
2.8 KiB
JavaScript

function MultiplexHandler(event)
{
node = event.target;
name = node.getAttribute('name');
if (name == 'detectorGroup') {
SelectDetector(event);
} else if (name == 'charsetGroup') {
charset = node.getAttribute('id');
charset = charset.substring('charset.'.length, charset.length)
SetDefaultCharacterSet(charset);
} else {
SetDefaultCharacterSet(node.getAttribute('id'));
}
}
function SetDefaultCharacterSet(charset)
{
dump("Charset Overlay menu item pressed: " + charset + "\n");
BrowserSetDefaultCharacterSet(charset);
}
function SelectDetector(event)
{
dump("Charset Detector menu item pressed: " + event.target.getAttribute('id') + "\n");
uri = event.target.getAttribute("id");
prefvalue = uri.substring('charsetDetector.'.length, uri.length);
if("off" == prefvalue) { // "off" is special value to turn off the detectors
prefvalue = "";
}
pref = Components.classes['component://netscape/preferences'];
if (pref) {
pref = pref.getService();
pref = pref.QueryInterface(Components.interfaces.nsIPref);
}
if (pref) {
pref.SetCharPref("intl.charset.detector", prefvalue);
window.content.location.reload();
}
}
function UpdateCurrentCharset()
{
charset = document.commandDispatcher.focusedWindow.document.characterSet;
charset = charset.toLowerCase();
menuitem = document.getElementById('charset.' + charset);
if (menuitem) {
menuitem.setAttribute('checked', 'true');
}
}
function UpdateCharsetDetector()
{
pref = Components.classes['component://netscape/preferences'];
if (pref) {
pref = pref.getService();
pref = pref.QueryInterface(Components.interfaces.nsIPref);
}
if (pref) {
prefvalue = pref.CopyCharPref("intl.charset.detector");
if (prefvalue == "") prefvalue = "off";
}
prefvalue = 'charsetDetector.' + prefvalue;
menuitem = document.getElementById(prefvalue);
if (menuitem) {
menuitem.setAttribute('checked', 'true');
}
}
function UpdateMenus(event)
{
UpdateCurrentCharset();
UpdateCharsetDetector();
}
function charsetLoadListener (event)
{
menu = Components.classes['component://netscape/rdf/datasource?name=charset-menu'];
if (menu) {
menu = menu.getService();
menu = menu.QueryInterface(Components.interfaces.nsICurrentCharsetListener);
}
charset = window.content.document.characterSet;
charset = charset.toLowerCase();
if (menu) {
menu.SetCurrentCharset(charset);
}
// XXX you know, here I could also set the checkmark, for the case when a
// doc finishes loading after the menu is already diplayed. But I get a
// weird assertion!
}
contentArea = window.document.getElementById("appcontent")
contentArea.addEventListener("load", charsetLoadListener, true);