blob: ec5c7828b33e475a5386fca8fc34227d2c68ff4a (
plain)
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
|
<?xml version="1.0"?>
<!-- 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/. -->
<!DOCTYPE bindings [
<!ENTITY % checkboxDTD SYSTEM "chrome://browser/locale/checkbox.dtd">
%checkboxDTD;
]>
<bindings
xmlns="http://www.mozilla.org/xbl"
xmlns:xbl="http://www.mozilla.org/xbl"
xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<binding id="checkbox-radio" display="xul:box" extends="chrome://global/content/bindings/checkbox.xml#checkbox-baseline">
<content>
<xul:radiogroup anonid="group" xbl:inherits="disabled">
<xul:radio anonid="on" class="checkbox-radio-on" label="&checkbox.yes.label;" xbl:inherits="label=onlabel"/>
<xul:radio anonid="off" class="checkbox-radio-off" label="&checkbox.no.label;" xbl:inherits="label=offlabel"/>
</xul:radiogroup>
</content>
<implementation>
<constructor><![CDATA[
this.setChecked(this.checked);
]]></constructor>
<field name="_group">
document.getAnonymousElementByAttribute(this, "anonid", "group");
</field>
<field name="_on">
document.getAnonymousElementByAttribute(this, "anonid", "on");
</field>
<field name="_off">
document.getAnonymousElementByAttribute(this, "anonid", "off");
</field>
<property name="onlabel"
onget="return this._on.label"
onset="this._on.label=val"/>
<property name="offlabel"
onget="return this._off.label"
onset="this._off.label=val"/>
<method name="setChecked">
<parameter name="aValue"/>
<body>
<![CDATA[
var change = (aValue != this.checked);
if (aValue) {
this.setAttribute("checked", "true");
this._group.selectedItem = this._on;
}
else {
this.removeAttribute("checked");
this._group.selectedItem = this._off;
}
if (change) {
var event = document.createEvent("Events");
event.initEvent("CheckboxStateChange", true, true);
this.dispatchEvent(event);
}
return aValue;
]]>
</body>
</method>
</implementation>
</binding>
</bindings>
|