File: pref-tabsJavascript.xul

package info (click to toggle)
tabextensions 2.1.2006031301-6
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 2,440 kB
  • ctags: 424
  • sloc: xml: 6,135; makefile: 38; sh: 35
file content (125 lines) | stat: -rwxr-xr-x 3,900 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
<?xml version="1.0"?>

<!DOCTYPE overlay SYSTEM "chrome://tabextensions_ctrlpopup/locale/">

<overlay
	xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">


<script type="application/x-javascript"><![CDATA[


const WindowManager = Components.classes['@mozilla.org/appshell/window-mediator;1'].getService(Components.interfaces.nsIWindowMediator);


if (!('onInitCallbackFuncs' in window))
	window.onInitCallbackFuncs = [];
if (!('onJavascriptChangedCallbackFuncs' in window))
	window.onJavascriptChangedCallbackFuncs = [];



onInitCallbackFuncs[onInitCallbackFuncs.length] = function()
{
	var items = document.getElementsByAttribute('class', 'newWindowPrefs');
	var exceptions = document.getElementById('windowOpenException');
	var winHookMode = Number(getModifiedValue('browser.tabs.extensions.window_hook_mode', 'chrome://tabextensions/content/pref/pref-tabsGeneral.xul'));

	var i;
	if (winHookMode == 2) {
		for (i = 0; i < items.length; i++)
			items[i].setAttribute('disabled', true);
		exceptions.setAttribute('disabled', true);
	}
	else {
		for (i = 0; i < items.length; i++)
			items[i].removeAttribute('disabled');
		exceptions.removeAttribute('disabled');
	}
};


onJavascriptChangedCallbackFuncs[onJavascriptChangedCallbackFuncs.length] = function()
{
	var js = document.getElementById('javascript');
	var jsItems = js.getElementsByTagName('radio');
	var background = document.getElementById('loadInBackgroundJavascript');


	var radio = document.getElementById('newWindowRadio');
	var exception  = document.getElementById('javascript.exception');
	var exceptionItems = exception.getElementsByTagName('radio');
	var exceptions = radio.nextSibling.getElementsByAttribute('class', 'newWindowPrefs');
	var i;
	if (radio.selected) {
		for (i = 0; i < exceptions.length; i++)
			exceptions[i].removeAttribute('disabled');

		if (background.checked)
			exception.selectedItem = exceptionItems[1];
		else
			exception.selectedItem = exceptionItems[0];
	}
	else {
		for (i = 0; i < exceptions.length; i++)
			exceptions[i].setAttribute('disabled', true);

		exception.selectedItem = exceptionItems[2];
	}


	var button = document.getElementById('windowOpenException');
	button.label = button.getAttribute(js.selectedItem == jsItems[2] ? 'label-black' : 'label-white') ;
};


function onExceptionChange()
{
	var exception  = document.getElementById('javascript.exception');
	var background = document.getElementById('loadInBackgroundJavascript');
	if (exception.selectedItem == exception.childNodes[0])
		background.checked = false;
	else
		background.checked = true;
}

]]></script>



<radio id="newWindowRadio" class="newWindowPrefs"/>

<box id="exceptionRadioBox" orient="vertical">
	<box orient="horizontal">
		<spacer style="width: 1em;"/>
		<radiogroup id="javascript.exception"
			oncommand="onExceptionChange();">
			<radio label="&tabPref.javascript.newwindow.active;"
				class="newWindowPrefs"/>
			<radio label="&tabPref.javascript.newwindow.background;"
				class="newWindowPrefs"/>
			<radio collapsed="true"/>
		</radiogroup>
	</box>
</box>

<box id="exceptionButtonBox" orient="horizontal">
	<spacer flex="1"/>
	<button id="windowOpenException"
		label-white="&windowOpenException.go.white;"
		label-black="&windowOpenException.go.black;"
		oncommand="
			var js = document.getElementById('javascript');
			var items = js.getElementsByTagName('radio');
			var isWhiteList = js.selectedItem != items[2];
			var dialog = WindowManager.getMostRecentWindow('tabextensions:windowOpenExceptions');
			if (dialog) {
				dialog.initList(isWhiteList);
				dialog.focus();
			}
			else
				window.openDialog('chrome://tabextensions_ctrlpopup/content/windowOpenExceptions.xul', '', 'chrome,dialog=no', null, isWhiteList);
		"/>
</box>

</overlay>