summaryrefslogtreecommitdiffstats
path: root/webbrowser/components/preferences/tabs.js
diff options
context:
space:
mode:
Diffstat (limited to 'webbrowser/components/preferences/tabs.js')
-rw-r--r--webbrowser/components/preferences/tabs.js90
1 files changed, 90 insertions, 0 deletions
diff --git a/webbrowser/components/preferences/tabs.js b/webbrowser/components/preferences/tabs.js
new file mode 100644
index 0000000..b09cb60
--- /dev/null
+++ b/webbrowser/components/preferences/tabs.js
@@ -0,0 +1,90 @@
+# -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+var gTabsPane = {
+
+ /*
+ * Preferences:
+ *
+ * browser.link.open_newwindow
+ * - determines where pages which would open in a new window are opened:
+ * 1 opens such links in the most recent window or tab,
+ * 2 opens such links in a new window,
+ * 3 opens such links in a new tab
+ * browser.tabs.loadInBackground
+ * - true if display should switch to a new tab which has been opened from a
+ * link, false if display shouldn't switch
+ * browser.tabs.warnOnClose
+ * - true if when closing a window with multiple tabs the user is warned and
+ * allowed to cancel the action, false to just close the window
+ * browser.tabs.warnOnOpen
+ * - true if the user should be warned if he attempts to open a lot of tabs at
+ * once (e.g. a large folder of bookmarks), false otherwise
+ * browser.taskbar.previews.enable
+ * - true if tabs are to be shown in the Windows 7 taskbar
+ */
+
+ /**
+ * Initialize any platform-specific UI.
+ */
+ init: function () {
+#ifdef XP_WIN
+ const Cc = Components.classes;
+ const Ci = Components.interfaces;
+ try {
+ let sysInfo = Cc["@mozilla.org/system-info;1"].
+ getService(Ci.nsIPropertyBag2);
+ let ver = parseFloat(sysInfo.getProperty("version"));
+ let showTabsInTaskbar = document.getElementById("showTabsInTaskbar");
+ showTabsInTaskbar.hidden = ver < 6.1;
+ } catch (ex) {}
+#endif
+ // Set the proper value in the newtab drop-down.
+ gTabsPane.readNewtabUrl();
+ },
+
+ /**
+ * Pale Moon: synchronize warnOnClose and warnOnCloseOtherTabs
+ */
+ syncWarnOnClose: function() {
+ var warnOnClosePref = document.getElementById("browser.tabs.warnOnClose");
+ var warnOnCloseOtherPref = document.getElementById("browser.tabs.warnOnCloseOtherTabs");
+ warnOnCloseOtherPref.value = warnOnClosePref.value;
+ },
+
+ /**
+ * Determines where a link which opens a new window will open.
+ *
+ * @returns |true| if such links should be opened in new tabs
+ */
+ readLinkTarget: function() {
+ var openNewWindow = document.getElementById("browser.link.open_newwindow");
+ return openNewWindow.value != 2;
+ },
+
+ /**
+ * Determines where a link which opens a new window will open.
+ *
+ * @returns 2 if such links should be opened in new windows,
+ * 3 if such links should be opened in new tabs
+ */
+ writeLinkTarget: function() {
+ var linkTargeting = document.getElementById("linkTargeting");
+ return linkTargeting.checked ? 3 : 2;
+ },
+
+ /**
+ * Determines the value of the New Tab display drop-down based
+ * on the value of browser.newtab.url.
+ */
+ readNewtabUrl: function() {
+ let newtabUrlChoice = document.getElementById("browser.newtab.choice");
+ newtabUrlChoice.value = gNewtabUrl.getNewtabChoice();
+ if (newtabUrlChoice.value == 0) {
+ document.getElementById("newtabPageCustom").hidden = false;
+ }
+ gNewtabUrl.newtabUrlChoiceIsSet = true;
+ }
+};