4
<!ENTITY % globalDTD SYSTEM "chrome://global/locale/global.dtd">
8
<bindings id="menuitemBindings"
9
xmlns="http://www.mozilla.org/xbl"
10
xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
11
xmlns:xbl="http://www.mozilla.org/xbl">
13
<binding id="menuitem-base"
14
extends="chrome://global/content/bindings/general.xml#control-item">
16
<stylesheet src="chrome://global/skin/menu.css"/>
18
<implementation implements="nsIDOMXULSelectControlItemElement, nsIAccessibleProvider">
19
<property name="accessibleType" readonly="true">
22
if (this.localName == "menuseparator")
23
return Components.interfaces.nsIAccessibleProvider.XULMenuSeparator;
24
return Components.interfaces.nsIAccessibleProvider.XULMenuitem;
28
<property name="selected" readonly="true"
29
onget="return this.getAttribute('selected') == 'true';"/>
30
<property name="control" readonly="true">
33
var parent = this.parentNode;
35
parent.parentNode instanceof Components.interfaces.nsIDOMXULSelectControlElement)
36
return parent.parentNode;
44
<binding id="menu-base"
45
extends="chrome://global/content/bindings/menu.xml#menuitem-base">
47
<implementation implements="nsIDOMXULContainerElement">
48
<property name="open" onget="return this.hasAttribute('open');">
50
this.boxObject.QueryInterface(Components.interfaces.nsIMenuBoxObject)
56
<!-- nsIDOMXULContainerElement interface -->
57
<method name="appendItem">
58
<parameter name="aLabel"/>
59
<parameter name="aValue"/>
61
this.insertItemAt(-1, aLabel, aValue);
65
<method name="insertItemAt">
66
<parameter name="aIndex"/>
67
<parameter name="aLabel"/>
68
<parameter name="aValue"/>
71
"http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
73
var menupopup = this.menupopup;
75
menupopup = this.ownerDocument.createElementNS(XUL_NS, "menupopup");
76
this.appendChild(menupopup);
79
var menuitem = this.ownerDocument.createElementNS(XUL_NS, "menuitem");
80
menuitem.setAttribute("label", aLabel);
81
menuitem.setAttribute("value", aValue);
83
var before = this.getItemAtIndex(aIndex);
85
menupopup.insertBefore(menuitem, before);
87
menupopup.appendChild(menuitem);
91
<method name="removeItemAt">
92
<parameter name="aIndex"/>
95
var menupopup = this.menupopup;
97
var item = this.getItemAtIndex(aIndex);
99
return menupopup.removeChild(item);
106
<property name="itemCount" readonly="true">
108
var menupopup = this.menupopup;
109
return menupopup ? menupopup.childNodes.length : 0;
113
<method name="getIndexOfItem">
114
<parameter name="aItem"/>
117
var menupopup = this.menupopup;
119
var items = menupopup.childNodes;
120
var length = items.length;
121
for (var index = 0; index < length; ++index) {
122
if (items[index] == aItem)
131
<method name="getItemAtIndex">
132
<parameter name="aIndex"/>
135
var menupopup = this.menupopup;
136
if (!menupopup || aIndex < 0 || aIndex >= menupopup.childNodes.length)
139
return menupopup.childNodes[aIndex];
144
<property name="parentContainer" readonly="true">
146
for (var parent = this.parentNode; parent; parent = parent.parentNode) {
147
if (parent instanceof Components.interfaces.nsIDOMXULContainerElement)
154
<property name="menupopup" readonly="true">
158
"http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
160
for (var child = this.firstChild; child; child = child.nextSibling) {
161
if (child.namespaceURI == XUL_NS && child.localName == "menupopup")
172
extends="chrome://global/content/bindings/menu.xml#menu-base">
174
<xul:label class="menu-text" flex="1" xbl:inherits="value=label,accesskey,crop" crop="right"/>
175
<xul:hbox class="menu-accel-container" anonid="accel">
176
<xul:label class="menu-accel" xbl:inherits="value=acceltext"/>
178
<xul:hbox align="center" class="menu-right" chromedir="&locale.dir;"
179
xbl:inherits="_moz-menuactive,disabled">
182
<children includes="menupopup"/>
186
<binding id="menuitem" extends="chrome://global/content/bindings/menu.xml#menuitem-base">
188
<xul:label class="menu-text" flex="1" xbl:inherits="value=label,accesskey,crop" crop="right"/>
189
<xul:hbox class="menu-accel-container" anonid="accel">
190
<xul:label class="menu-accel" xbl:inherits="value=acceltext"/>
195
<binding id="menu-menubar"
196
extends="chrome://global/content/bindings/menu.xml#menu-base">
198
<xul:label class="menubar-text" xbl:inherits="value=label,accesskey,crop" crop="right"/>
199
<children includes="menupopup"/>
203
<binding id="menu-menubar-iconic"
204
extends="chrome://global/content/bindings/menu.xml#menu-base">
206
<xul:image class="menubar-left" xbl:inherits="src=image"/>
207
<xul:label class="menubar-text" xbl:inherits="value=label,accesskey,crop" crop="right"/>
208
<children includes="menupopup"/>
212
<binding id="menuitem-iconic" extends="chrome://global/content/bindings/menu.xml#menuitem">
214
<xul:hbox class="menu-iconic-left" align="center" pack="center"
215
xbl:inherits="selected,_moz-menuactive,disabled,checked">
216
<xul:image class="menu-iconic-icon" xbl:inherits="src=image,validate,src"/>
218
<xul:label class="menu-iconic-text" flex="1" xbl:inherits="value=label,accesskey,crop" crop="right"/>
219
<xul:hbox class="menu-accel-container" anonid="accel">
220
<xul:label class="menu-iconic-accel" xbl:inherits="value=acceltext"/>
225
<binding id="menuitem-iconic-noaccel" extends="chrome://global/content/bindings/menu.xml#menuitem">
227
<xul:hbox class="menu-iconic-left" align="center" pack="center"
228
xbl:inherits="selected,disabled,checked">
229
<xul:image class="menu-iconic-icon" xbl:inherits="src=image,validate,src"/>
231
<xul:label class="menu-iconic-text" flex="1" xbl:inherits="value=label,accesskey,crop" crop="right"/>
235
<binding id="menuitem-iconic-desc-noaccel" extends="chrome://global/content/bindings/menu.xml#menuitem">
237
<xul:hbox class="menu-iconic-left" align="center" pack="center"
238
xbl:inherits="selected,disabled,checked">
239
<xul:image class="menu-iconic-icon" xbl:inherits="src=image,validate,src"/>
241
<xul:label class="menu-iconic-text" xbl:inherits="value=label,accesskey,crop" crop="right" flex="1"/>
242
<xul:label class="menu-iconic-text menu-description" xbl:inherits="value=description" crop="right" flex="10000"/>
246
<binding id="menu-iconic"
247
extends="chrome://global/content/bindings/menu.xml#menu-base">
249
<xul:hbox class="menu-iconic-left" align="center" pack="center">
250
<xul:image xbl:inherits="src=image"/>
252
<xul:label class="menu-iconic-text" flex="1" xbl:inherits="value=label,accesskey,crop" crop="right"/>
253
<xul:hbox class="menu-accel-container" anonid="accel">
254
<xul:label class="menu-iconic-accel" xbl:inherits="value=acceltext"/>
256
<xul:hbox class="menu-right" chromedir="&locale.dir;"
257
xbl:inherits="_moz-menuactive,disabled" align="center" pack="center">
260
<children includes="menupopup|template"/>
264
<binding id="menubutton-item" extends="chrome://global/content/bindings/menu.xml#menuitem-base">
266
<xul:label class="menubutton-text" flex="1" xbl:inherits="value=label,accesskey,crop" crop="right"/>
267
<children includes="menupopup"/>
271
<binding id="menuseparator" extends="chrome://global/content/bindings/menu.xml#menuitem-base"/>