From 73f2e30ca66eb77e0a87f48294ee867227e96a49 Mon Sep 17 00:00:00 2001 From: "hyatt%netscape.com" Date: Wed, 25 Sep 2002 06:09:26 +0000 Subject: [PATCH] Enabling/disabling extensions works! git-svn-id: svn://10.0.0.236/trunk@130409 18797224-902f-48f8-a5cc-f745e15eee43 --- .../prefwindow/content/pref-themes.js | 60 ++++++++++++++++++- .../prefwindow/content/pref-themes.xul | 28 ++++----- 2 files changed, 70 insertions(+), 18 deletions(-) diff --git a/mozilla/browser/components/prefwindow/content/pref-themes.js b/mozilla/browser/components/prefwindow/content/pref-themes.js index 2b17e642167..038c6a5f683 100644 --- a/mozilla/browser/components/prefwindow/content/pref-themes.js +++ b/mozilla/browser/components/prefwindow/content/pref-themes.js @@ -76,7 +76,7 @@ function Startup() var child = list.childNodes[i]; var name = child.getAttribute("name"); if (!theme) - matches = chromeRegistry.isSkinSelected(name, true) == Components.interfaces.nsIChromeRegistry.FULL; + matches = chromeRegistry.isSkinSelectedForPackage(name, "browser", true); else matches = name == theme; if (matches) { @@ -94,6 +94,14 @@ function Startup() while (description.hasChildNodes()) description.removeChild(description.firstChild); } + + var extList = document.getElementById("extList"); + for (var i = 0; i < extList.childNodes.length; ++i) { + if (extList.childNodes[i].getAttribute("name")) { + extList.selectItem(extList.childNodes[i]); + break; + } + } } function applyTheme() @@ -264,4 +272,54 @@ function themeSelect() } +function extensionSelect() +{ + var list = document.getElementById("extList"); + if (!list) + return; + + var selectedItem = list.selectedItems.length ? list.selectedItems[0] : null; + if (selectedItem) { + var extName = selectedItem.getAttribute("displayName"); + var nameField = document.getElementById("extDisplayName"); + var author = document.getElementById("extAuthor"); + var descText = document.createTextNode(selectedItem.getAttribute("description")); + var description = document.getElementById("extDescription"); + var uninstallButton = document.getElementById("uninstallExtension"); + + while (description.hasChildNodes()) + description.removeChild(description.firstChild); + + nameField.setAttribute("value", extName); + author.setAttribute("value", selectedItem.getAttribute("author")); + + description.appendChild(descText); + + updateDisableExtButton(selectedItem); + } +} + +function toggleExtension() +{ + var list = document.getElementById("extList"); + + if (!list) + return; + + var selectedItem = list.selectedItems.length ? list.selectedItems[0] : null; + if (selectedItem) { + var disabled = (selectedItem.getAttribute("disabledState") == "true"); + chromeRegistry.setAllowOverlaysForPackage(selectedItem.getAttribute("name"), disabled); + updateDisableExtButton(selectedItem); + } +} + +function updateDisableExtButton(item) +{ + var disableButton = document.getElementById("disableExtension"); + if (item.getAttribute("disabledState") == "true") + disableButton.setAttribute("label", "Enable Extension"); // XXXdwh localize + else + disableButton.setAttribute("label", "Disable Extension"); // XXXdwh localize +} diff --git a/mozilla/browser/components/prefwindow/content/pref-themes.xul b/mozilla/browser/components/prefwindow/content/pref-themes.xul index acbc52aa76b..40ef45f97fa 100644 --- a/mozilla/browser/components/prefwindow/content/pref-themes.xul +++ b/mozilla/browser/components/prefwindow/content/pref-themes.xul @@ -94,7 +94,7 @@ - &getNewThemes.label; @@ -106,8 +106,8 @@ + onselect="extensionSelect();" + ref="urn:mozilla:package:root" rows="10"> - - - - - - - -