зеркало из https://github.com/mozilla/gecko-dev.git
63 строки
2.2 KiB
XML
63 строки
2.2 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/. -->
|
|
|
|
|
|
<bindings id="checkboxBindings"
|
|
xmlns="http://www.mozilla.org/xbl"
|
|
xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
|
xmlns:xbl="http://www.mozilla.org/xbl">
|
|
|
|
<binding id="checkbox"
|
|
extends="chrome://global/content/bindings/general.xml#basetext">
|
|
<content>
|
|
<xul:image class="checkbox-check" xbl:inherits="checked,disabled"/>
|
|
<xul:hbox class="checkbox-label-box" flex="1">
|
|
<xul:image class="checkbox-icon" xbl:inherits="src"/>
|
|
<xul:label class="checkbox-label" xbl:inherits="xbl:text=label,accesskey,crop" flex="1"/>
|
|
</xul:hbox>
|
|
</content>
|
|
|
|
<implementation>
|
|
<method name="setChecked">
|
|
<parameter name="aValue"/>
|
|
<body>
|
|
<![CDATA[
|
|
var change = (aValue != (this.getAttribute("checked") == "true"));
|
|
if (aValue)
|
|
this.setAttribute("checked", "true");
|
|
else
|
|
this.removeAttribute("checked");
|
|
if (change) {
|
|
var event = document.createEvent("Events");
|
|
event.initEvent("CheckboxStateChange", true, true);
|
|
this.dispatchEvent(event);
|
|
}
|
|
return aValue;
|
|
]]>
|
|
</body>
|
|
</method>
|
|
|
|
<!-- public implementation -->
|
|
<property name="checked" onset="return this.setChecked(val);"
|
|
onget="return this.getAttribute('checked') == 'true';"/>
|
|
</implementation>
|
|
|
|
<handlers>
|
|
<!-- While it would seem we could do this by handling oncommand, we need can't
|
|
because any external oncommand handlers might get called before ours, and
|
|
then they would see the incorrect value of checked. -->
|
|
<handler event="click" button="0" action="if (!this.disabled) this.checked = !this.checked;"/>
|
|
<handler event="keypress" key=" ">
|
|
<![CDATA[
|
|
this.checked = !this.checked;
|
|
// Prevent page from scrolling on the space key.
|
|
event.preventDefault();
|
|
]]>
|
|
</handler>
|
|
</handlers>
|
|
</binding>
|
|
|
|
</bindings>
|