home *** CD-ROM | disk | FTP | other *** search
/ PC Advisor 2005 August / PCADVD_121.iso / internet / nsb-setup.exe / chrome / browser.jar / content / browser / pref / pref-navigator.js < prev    next >
Encoding:
Text File  |  2005-05-01  |  8.6 KB  |  234 lines

  1.  
  2. var _elementIDs = ["browserStartupHomepage", "checkForDefault"];
  3.     
  4. const nsIPrefService         = Components.interfaces.nsIPrefService;
  5. const nsIPrefLocalizedString = Components.interfaces.nsIPrefLocalizedString;
  6.  
  7. const PREFSERVICE_CONTRACTID    = "@mozilla.org/preferences-service;1";
  8.  
  9. function setHomePageToCurrentPage()
  10. {
  11.   if (top.opener) {
  12.     var homePageField = document.getElementById("browserStartupHomepage");
  13.     var newVal = "";
  14.  
  15.     var tabbrowser = top.opener.document.getElementById("content");
  16.     var l = tabbrowser.browsers.length;
  17.     for (var i = 0; i < l; i++) {
  18.       if (i)
  19.         newVal += "|";
  20.       newVal += tabbrowser.getBrowserAtIndex(i).webNavigation.currentURI.spec;
  21.     }
  22.     
  23.     homePageField.value = newVal;
  24.   }
  25. }
  26.  
  27. function setHomePageToBookmark()
  28. {
  29.   var rv = { url: null };
  30.   openDialog("chrome://browser/content/bookmarks/selectBookmark.xul", "", 
  31.              "centerscreen,chrome,modal=yes,dialog=yes,resizable=yes", rv);
  32.   if (rv.url) {
  33.     var homePageField = document.getElementById("browserStartupHomepage");
  34.     homePageField.value = rv.url;
  35.   }
  36. }
  37.  
  38. function setHomePageToDefaultPage()
  39. {
  40.   var prefService = Components.classes[PREFSERVICE_CONTRACTID]
  41.                               .getService(nsIPrefService);
  42.   var pref = prefService.getDefaultBranch(null);
  43.   var url = pref.getComplexValue("browser.startup.homepage",
  44.                                   nsIPrefLocalizedString).data;
  45.   var homePageField = document.getElementById("browserStartupHomepage");
  46.   homePageField.value = url;
  47. }
  48.  
  49. function onOK() 
  50. {
  51.   if (!('homepage' in parent)) 
  52.     return;
  53.  
  54.   // Replace pipes with commas to look nicer.
  55.   parent.homepage = parent.homepage.replace(/\|/g,', ');
  56.   
  57.   var windowManager = Components.classes['@mozilla.org/appshell/window-mediator;1'].getService();
  58.   var windowManagerInterface = windowManager.QueryInterface(Components.interfaces.nsIWindowMediator);
  59.   var eb = windowManagerInterface.getEnumerator("navigator:browser");
  60.   while (eb.hasMoreElements()) {
  61.     // Update the home button tooltip.
  62.     var domWin = eb.getNext().QueryInterface(Components.interfaces.nsIDOMWindow);
  63.     var homeButton = domWin.document.getElementById("home-button");
  64.     if (homeButton)
  65.       homeButton.setAttribute("tooltiptext", parent.homepage);
  66.   }
  67. }
  68.  
  69. function Startup()
  70. {
  71.   var useButton = document.getElementById("browserUseCurrent");
  72.   
  73.   try {
  74.     var browser = top.opener.document.getElementById("content");  
  75.  
  76.     var l = browser.mPanelContainer.childNodes.length;
  77.     if (l > 1)
  78.       useButton.label = useButton.getAttribute("label2");
  79.   } catch (e) { 
  80.     // prefwindow wasn't opened from a browser window, so no current page
  81.     useButton.disabled = true;
  82.   }
  83.   
  84.   if (parent.hPrefWindow.getPrefIsLocked("browser.startup.homepage")) {
  85.     document.getElementById("browserUseCurrent").disabled = true;
  86.     document.getElementById("browserUseBookmark").disabled = true;
  87.     document.getElementById("browserUseBlank").disabled = true;
  88.   }
  89.  
  90.   try {
  91.     var shellSvc = Components.classes["@mozilla.org/browser/shell-service;1"]
  92.                              .getService(Components.interfaces.nsIShellService);
  93.     } catch (e) {
  94.     document.getElementById("defaultBrowserPrefs").hidden = true;
  95.   }
  96.  
  97.   parent.hPrefWindow.registerOKCallbackFunc(onOK);
  98. }
  99.       
  100. function showConnections()
  101. {
  102.   openDialog("chrome://browser/content/pref/pref-connection.xul", "", "centerscreen,chrome,modal=yes,dialog=yes");
  103. }
  104.  
  105. function showFontsAndColors()
  106. {
  107.   openDialog("chrome://browser/content/pref/pref-fonts.xul", "", "centerscreen,chrome,modal=yes,dialog=yes");
  108. }
  109.  
  110. function saveFontPrefs()
  111. {
  112.   var dataObject = top.hPrefWindow.wsm.dataManager.pageData["chrome://browser/content/pref/pref-fonts.xul"].userData;
  113.   var pref = top.hPrefWindow.pref;
  114.   for (var language in dataObject.languageData) {
  115.     for (var type in dataObject.languageData[language].types) {
  116.       var fontPrefString = "font.name." + type + "." + language;
  117.       var currValue = "";
  118.       try {
  119.         currValue = pref.CopyUnicharPref(fontPrefString);
  120.       }
  121.       catch(e) {
  122.       }
  123.       if (currValue != dataObject.languageData[language].types[type])
  124.         pref.SetUnicharPref(fontPrefString, dataObject.languageData[language].types[type]);
  125.     }
  126.     var variableSizePref = "font.size.variable." + language;
  127.     var fixedSizePref = "font.size.fixed." + language;
  128.     var minSizePref = "font.minimum-size." + language;
  129.     var currVariableSize = 12, currFixedSize = 12, minSizeVal = 0;
  130.     try {
  131.       currVariableSize = pref.GetIntPref(variableSizePref);
  132.       currFixedSize = pref.GetIntPref(fixedSizePref );
  133.       minSizeVal = pref.GetIntPref(minSizePref);
  134.     }
  135.     catch(e) {
  136.     }
  137.     if (currVariableSize != dataObject.languageData[language].variableSize)
  138.       pref.SetIntPref(variableSizePref, dataObject.languageData[language].variableSize);
  139.     if (currFixedSize != dataObject.languageData[language].fixedSize)
  140.       pref.SetIntPref(fixedSizePref, dataObject.languageData[language].fixedSize);
  141.     if (minSizeVal != dataObject.languageData[language].minSize) {
  142.       pref.SetIntPref(minSizePref, dataObject.languageData[language].minSize);
  143.     }
  144.   }
  145.  
  146.   // font scaling
  147.   var fontDPI = parseInt(dataObject.fontDPI);
  148.   var myFonts = dataObject.dataEls["useMyFonts"].checked;
  149.   var defaultFont = dataObject.defaultFont;
  150.   var myColors = dataObject.dataEls["useMyColors"].checked;
  151.   try {
  152.     var currDPI = pref.GetIntPref("browser.display.screen_resolution");
  153.     var currFonts = pref.GetIntPref("browser.display.use_document_fonts");
  154.     var currColors = pref.GetBoolPref("browser.display.use_document_colors");
  155.     var currDefault = pref.CopyUnicharPref( "font.default" );
  156.   }
  157.   catch(e) {
  158.   }
  159.  
  160.   if (currDPI != fontDPI)
  161.     pref.SetIntPref("browser.display.screen_resolution", fontDPI);
  162.   if (currFonts == myFonts)
  163.     pref.SetIntPref("browser.display.use_document_fonts", !myFonts);
  164.   if(currDefault != defaultFont)
  165.     pref.SetUnicharPref( "font.default", defaultFont );
  166.   if (currColors == myColors)
  167.     pref.SetBoolPref("browser.display.use_document_colors", !myColors);
  168.  
  169.   var items = ["foregroundText", "background", "unvisitedLinks", "visitedLinks"];
  170.   var prefs = ["browser.display.foreground_color", "browser.display.background_color",
  171.                 "browser.anchor_color", "browser.visited_color"];
  172.   var prefvalue;
  173.   for (var i = 0; i < items.length; ++i) {
  174.     prefvalue = dataObject.dataEls[items[i]].value;
  175.     pref.SetUnicharPref(prefs[i], prefvalue)
  176.   }
  177.   items = ["browserUseSystemColors", "browserUnderlineAnchors"];
  178.   prefs = ["browser.display.use_system_colors", "browser.underline_anchors"];
  179.   for (i = 0; i < items.length; ++i) {
  180.     prefvalue = dataObject.dataEls[items[i]].checked;
  181.     pref.SetBoolPref(prefs[i], prefvalue)
  182.   }
  183.  
  184.   // JA notify html plugin (if loaded) on font/colors change
  185.   var browser = top.opener.document.getElementById("content");
  186.   var l = browser.mPanelContainer.childNodes.length;
  187.   for (var i = 0; i < l; i++) {
  188.     var tabbrowser= browser.mPanelContainer.childNodes[i];
  189.     var hpDoc;
  190.     try {                      
  191.       hpDoc = tabbrowser.contentDocument.QueryInterface(Components.interfaces.nsIHTMLPluginDocument);
  192.     } catch(ex) { }    
  193.     if (hpDoc) {
  194.       hpDoc.onColorFontChanged();
  195.       break; //done
  196.     }
  197.   }
  198.   //end JA
  199. }
  200.  
  201. function checkNow()
  202. {
  203.   var shellSvc = Components.classes["@mozilla.org/browser/shell-service;1"]
  204.                            .getService(Components.interfaces.nsIShellService);
  205.   var brandBundle = document.getElementById("bundle_brand");
  206.   var shellBundle = document.getElementById("bundle_shell");
  207.   var brandShortName = brandBundle.getString("brandShortName");
  208.   var promptTitle = shellBundle.getString("setDefaultBrowserTitle");
  209.   var promptMessage;
  210.   const IPS = Components.interfaces.nsIPromptService;
  211.   var psvc = Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
  212.                        .getService(IPS);
  213.   if (!shellSvc.isDefaultBrowser(false)) {
  214.     promptMessage = shellBundle.getFormattedString("setDefaultBrowserMessage", 
  215.                                                    [brandShortName]);
  216.     var rv = psvc.confirmEx(window, promptTitle, promptMessage, 
  217.                             (IPS.BUTTON_TITLE_YES * IPS.BUTTON_POS_0) + 
  218.                             (IPS.BUTTON_TITLE_NO * IPS.BUTTON_POS_1),
  219.                             null, null, null, null, { });
  220.     if (rv == 0)
  221.       shellSvc.setDefaultBrowser(true, false);
  222.   }
  223.   else {
  224.     promptMessage = shellBundle.getFormattedString("alreadyDefaultBrowser",
  225.                                                    [brandShortName]);
  226.     psvc.alert(window, promptTitle, promptMessage);
  227.   }
  228. }
  229.  
  230. function showLanguages()
  231. {
  232.   openDialog("chrome://browser/content/pref/pref-languages.xul", "", "modal,centerscreen,resizable");
  233. }
  234.