tenfourfox/mobile/android/chrome/content/bindings/checkbox.xml
Cameron Kaiser c9b2922b70 hello FPR
2017-04-19 00:56:45 -07:00

76 lines
2.3 KiB
XML

<?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>