зеркало из https://github.com/mozilla/gecko-dev.git
230 строки
8.4 KiB
XML
230 строки
8.4 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="generalBindings"
|
|
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="basecontrol">
|
|
<implementation implements="nsIDOMXULControlElement">
|
|
<!-- public implementation -->
|
|
<property name="disabled" onset="if (val) this.setAttribute('disabled', 'true');
|
|
else this.removeAttribute('disabled');
|
|
return val;"
|
|
onget="return this.getAttribute('disabled') == 'true';"/>
|
|
<property name="tabIndex" onget="return parseInt(this.getAttribute('tabindex')) || 0"
|
|
onset="if (val) this.setAttribute('tabindex', val);
|
|
else this.removeAttribute('tabindex'); return val;"/>
|
|
</implementation>
|
|
</binding>
|
|
|
|
<binding id="basetext" extends="chrome://global/content/bindings/general.xml#basecontrol">
|
|
<implementation implements="nsIDOMXULLabeledControlElement">
|
|
<!-- public implementation -->
|
|
<property name="label" onset="this.setAttribute('label',val); return val;"
|
|
onget="return this.getAttribute('label');"/>
|
|
<property name="crop" onset="this.setAttribute('crop',val); return val;"
|
|
onget="return this.getAttribute('crop');"/>
|
|
<property name="image" onset="this.setAttribute('image',val); return val;"
|
|
onget="return this.getAttribute('image');"/>
|
|
<property name="command" onset="this.setAttribute('command',val); return val;"
|
|
onget="return this.getAttribute('command');"/>
|
|
<property name="accessKey">
|
|
<getter>
|
|
<![CDATA[
|
|
return this.labelElement ? this.labelElement.accessKey : this.getAttribute('accesskey');
|
|
]]>
|
|
</getter>
|
|
<setter>
|
|
<![CDATA[
|
|
// Always store on the control
|
|
this.setAttribute('accesskey', val);
|
|
// If there is a label, change the accesskey on the labelElement
|
|
// if it's also set there
|
|
if (this.labelElement) {
|
|
this.labelElement.accessKey = val;
|
|
}
|
|
return val;
|
|
]]>
|
|
</setter>
|
|
</property>
|
|
|
|
<field name="labelElement"/>
|
|
</implementation>
|
|
</binding>
|
|
|
|
<binding id="control-item" extends="chrome://global/content/bindings/general.xml#basetext">
|
|
<implementation>
|
|
<property name="value" onset="this.setAttribute('value', val); return val;"
|
|
onget="return this.getAttribute('value');"/>
|
|
</implementation>
|
|
</binding>
|
|
|
|
<binding id="root-element">
|
|
<implementation>
|
|
<field name="_lightweightTheme">null</field>
|
|
<constructor><![CDATA[
|
|
if (this.hasAttribute("lightweightthemes")) {
|
|
let temp = {};
|
|
Components.utils.import("resource://gre/modules/LightweightThemeConsumer.jsm", temp);
|
|
this._lightweightTheme = new temp.LightweightThemeConsumer(this.ownerDocument);
|
|
}
|
|
]]></constructor>
|
|
<destructor><![CDATA[
|
|
if (this._lightweightTheme) {
|
|
this._lightweightTheme.destroy();
|
|
this._lightweightTheme = null;
|
|
}
|
|
]]></destructor>
|
|
</implementation>
|
|
</binding>
|
|
|
|
<binding id="iframe" role="outerdoc">
|
|
<implementation>
|
|
<property name="docShell" readonly="true">
|
|
<getter><![CDATA[
|
|
let frameLoader = this.QueryInterface(Components.interfaces.nsIFrameLoaderOwner).frameLoader;
|
|
return frameLoader ? frameLoader.docShell : null;
|
|
]]></getter>
|
|
</property>
|
|
<property name="contentWindow"
|
|
readonly="true"
|
|
onget="return this.docShell.QueryInterface(Components.interfaces.nsIInterfaceRequestor).getInterface(Components.interfaces.nsIDOMWindow);"/>
|
|
<property name="webNavigation"
|
|
onget="return this.docShell.QueryInterface(Components.interfaces.nsIWebNavigation);"
|
|
readonly="true"/>
|
|
<property name="contentDocument" readonly="true"
|
|
onget="return this.webNavigation.document;"/>
|
|
</implementation>
|
|
</binding>
|
|
|
|
<binding id="statusbarpanel" display="xul:button">
|
|
<content>
|
|
<children>
|
|
<xul:label class="statusbarpanel-text" xbl:inherits="value=label,crop" crop="right" flex="1"/>
|
|
</children>
|
|
</content>
|
|
|
|
<implementation>
|
|
<property name="label"
|
|
onget="return this.getAttribute('label');"
|
|
onset="this.setAttribute('label',val); return val;"/>
|
|
<property name="image"
|
|
onget="return this.getAttribute('image');"
|
|
onset="this.setAttribute('image',val); return val;"/>
|
|
<property name="src"
|
|
onget="return this.getAttribute('src');"
|
|
onset="this.setAttribute('src',val); return val;"/>
|
|
</implementation>
|
|
</binding>
|
|
|
|
<binding id="statusbarpanel-menu-iconic" display="xul:menu"
|
|
extends="chrome://global/content/bindings/general.xml#statusbarpanel">
|
|
<content>
|
|
<xul:image class="statusbarpanel-icon" xbl:inherits="src,src=image"/>
|
|
<children/>
|
|
</content>
|
|
</binding>
|
|
|
|
<binding id="statusbar" role="xul:statusbar">
|
|
<content>
|
|
<children/>
|
|
<xul:statusbarpanel class="statusbar-resizerpanel">
|
|
<xul:resizer dir="bottomend"/>
|
|
</xul:statusbarpanel>
|
|
</content>
|
|
</binding>
|
|
|
|
<binding id="statusbarpanel-iconic" display="xul:button" role="xul:button"
|
|
extends="chrome://global/content/bindings/general.xml#statusbarpanel">
|
|
<content>
|
|
<xul:image class="statusbarpanel-icon" xbl:inherits="src,src=image"/>
|
|
</content>
|
|
</binding>
|
|
|
|
<binding id="statusbarpanel-iconic-text" display="xul:button" role="xul:button"
|
|
extends="chrome://global/content/bindings/general.xml#statusbarpanel">
|
|
<content>
|
|
<xul:image class="statusbarpanel-icon" xbl:inherits="src,src=image"/>
|
|
<xul:label class="statusbarpanel-text" xbl:inherits="value=label,crop"/>
|
|
</content>
|
|
</binding>
|
|
|
|
<binding id="image" role="xul:image">
|
|
<implementation implements="nsIDOMXULImageElement">
|
|
<property name="src"
|
|
onget="return this.getAttribute('src');"
|
|
onset="this.setAttribute('src',val); return val;"/>
|
|
</implementation>
|
|
</binding>
|
|
|
|
<binding id="deck">
|
|
<implementation>
|
|
<property name="selectedIndex"
|
|
onget="return this.getAttribute('selectedIndex') || '0'">
|
|
<setter>
|
|
<![CDATA[
|
|
if (this.selectedIndex == val)
|
|
return val;
|
|
this.setAttribute("selectedIndex", val);
|
|
var event = document.createEvent('Events');
|
|
event.initEvent('select', true, true);
|
|
this.dispatchEvent(event);
|
|
return val;
|
|
]]>
|
|
</setter>
|
|
</property>
|
|
|
|
<property name="selectedPanel">
|
|
<getter>
|
|
<![CDATA[
|
|
return this.childNodes[this.selectedIndex];
|
|
]]>
|
|
</getter>
|
|
|
|
<setter>
|
|
<![CDATA[
|
|
var selectedIndex = -1;
|
|
for (var panel = val; panel != null; panel = panel.previousSibling)
|
|
++selectedIndex;
|
|
this.selectedIndex = selectedIndex;
|
|
return val;
|
|
]]>
|
|
</setter>
|
|
</property>
|
|
</implementation>
|
|
</binding>
|
|
|
|
<binding id="dropmarker" extends="xul:button" role="xul:dropmarker">
|
|
<resources>
|
|
<stylesheet src="chrome://global/skin/dropmarker.css"/>
|
|
</resources>
|
|
|
|
<content>
|
|
<xul:image class="dropmarker-icon"/>
|
|
</content>
|
|
</binding>
|
|
|
|
<binding id="windowdragbox">
|
|
<implementation>
|
|
<field name="_dragBindingAlive">true</field>
|
|
<constructor>
|
|
if (!this._draggableStarted) {
|
|
this._draggableStarted = true;
|
|
try {
|
|
let tmp = {};
|
|
Components.utils.import("resource://gre/modules/WindowDraggingUtils.jsm", tmp);
|
|
let draghandle = new tmp.WindowDraggingElement(this);
|
|
draghandle.mouseDownCheck = function () this._dragBindingAlive;
|
|
} catch (e) {}
|
|
}
|
|
</constructor>
|
|
</implementation>
|
|
</binding>
|
|
|
|
</bindings>
|