bug 235872 - add description property to menuitems

r=neil, sr=bryner
This commit is contained in:
db48x%yahoo.com 2004-05-26 22:05:07 +00:00
parent 1d95dd4bef
commit 3463d7c57f
17 changed files with 144 additions and 13 deletions

View File

@ -82,6 +82,12 @@ menuitem[_moz-menuactive="true"][disabled="true"] {
font-weight: inherit;
}
.menu-description {
font-style: italic;
color: GrayText;
margin-left: 1ex !important;
}
.menu-accel {
margin-left: 4px;
padding-right: 14px;

View File

@ -68,6 +68,12 @@ menulist {
margin: 1px 3px !important;
}
.menulist-description {
font-style: italic;
color: GrayText;
margin-left: 1ex !important;
}
/* ..... disabled state ..... */
menulist[disabled="true"] {

View File

@ -77,6 +77,12 @@ menuitem[_moz-menuactive="true"][disabled="true"] {
font-weight: inherit;
}
.menu-description {
font-style: italic;
color: GrayText;
margin-left: 1ex !important;
}
.menu-accel,
.menu-iconic-accel {
margin: 0px 2px 0px 7px !important;

View File

@ -74,6 +74,12 @@ menulist[open="true"]:focus > .menulist-label-box {
margin: 1px 3px !important;
}
.menulist-description {
font-style: italic;
color: GrayText;
margin-left: 1ex !important;
}
/* ..... dropmarker ..... */
.menulist-dropmarker {

View File

@ -77,6 +77,12 @@ menuitem[_moz-menuactive="true"][disabled="true"] {
font-weight: inherit;
}
.menu-description {
font-style: italic;
color: #8C99AB;
margin-left: 1ex !important;
}
.menu-accel,
.menu-iconic-accel {
margin: 0px 2px 0px 7px !important;

View File

@ -56,6 +56,12 @@ menulist {
margin: 0 2px 0 0 !important;
}
.menulist-description {
font-style: italic;
color: #5D616E;
margin-left: 1em !important;
}
.menulist-icon {
padding-right: 2px;
}

View File

@ -98,6 +98,17 @@
</content>
</binding>
<binding id="menuitem-iconic-desc-noaccel" extends="chrome://global/content/bindings/menu.xml#menuitem">
<content>
<xul:hbox class="menu-iconic-left" align="center" pack="center"
xbl:inherits="selected,disabled,checked">
<xul:image class="menu-iconic-icon" xbl:inherits="src=image,validate,src"/>
</xul:hbox>
<xul:label class="menu-iconic-text" xbl:inherits="value=label,accesskey,crop" crop="right" flex="1"/>
<xul:label class="menu-iconic-text menu-description" xbl:inherits="value=description" crop="right" flex="10000"/>
</content>
</binding>
<binding id="menu-iconic" extends="chrome://global/content/bindings/menu.xml#menuitem-base">
<content>
<xul:hbox class="menu-iconic-left" align="center" pack="center">

View File

@ -93,6 +93,8 @@
onget="return this.getAttribute('src');"/>
<property name="label" onset="this.setAttribute('label',val); return val;"
onget="return this.getAttribute('label');"/>
<property name="description" onset="this.setAttribute('description',val); return val;"
onget="return this.getAttribute('description');"/>
<property name="disabled" onset="if (val) this.setAttribute('disabled',true);
else this.removeAttribute('disabled');
return val;"
@ -170,6 +172,7 @@
this.removeAttribute('value');
this.removeAttribute('src');
this.removeAttribute('label');
this.removeAttribute('description');
return val;
}
@ -178,6 +181,7 @@
this.setAttribute('value', val.getAttribute('value'));
this.setAttribute('src', val.getAttribute('src'));
this.setAttribute('label', val.getAttribute('label'));
this.setAttribute('description', val.getAttribute('description'));
return val;
]]>
@ -187,6 +191,7 @@
<method name="appendItem">
<parameter name="label"/>
<parameter name="value"/>
<parameter name="description"/>
<body>
<![CDATA[
const XULNS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
@ -195,6 +200,8 @@
var item = document.createElementNS(XULNS, "menuitem");
item.setAttribute("label", label);
item.setAttribute("value", value);
item.setAttribute("description", description);
popup.appendChild(item);
return item;
]]>
@ -205,6 +212,7 @@
<parameter name="index"/>
<parameter name="label"/>
<parameter name="value"/>
<parameter name="description"/>
<body>
<![CDATA[
const XULNS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
@ -213,6 +221,8 @@
var item = document.createElementNS(XULNS, "menuitem");
item.setAttribute("label", label);
item.setAttribute("value", value);
item.setAttribute("description", description);
if (index < popup.childNodes.length)
popup.insertBefore(item, popup.childNodes[index]);
else
@ -449,5 +459,17 @@
<children includes="menupopup"/>
</content>
</binding>
<binding id="menulist-description" display="xul:menu"
extends="chrome://global/content/bindings/menulist.xml#menulist">
<content sizetopopup="pref">
<xul:hbox class="menulist-label-box" flex="1">
<xul:image class="menulist-icon" xbl:inherits="src"/>
<xul:label class="menulist-label" xbl:inherits="value=label,crop,accesskey" crop="right" flex="1"/>
<xul:label class="menulist-label menulist-description" xbl:inherits="value=description" crop="right" flex="10000"/>
</xul:hbox>
<xul:dropmarker class="menulist-dropmarker" type="menu"/>
<children includes="menupopup"/>
</content>
</binding>
</bindings>

View File

@ -275,6 +275,10 @@ menuitem.menuitem-iconic {
-moz-binding: url("chrome://global/content/bindings/menu.xml#menuitem-iconic");
}
menuitem[description] {
-moz-binding: url("chrome://global/content/bindings/menu.xml#menuitem-iconic-desc-noaccel");
}
menuitem[type="checkbox"],
menuitem[type="radio"] {
-moz-binding: url("chrome://global/content/bindings/menu.xml#menuitem-iconic");
@ -770,6 +774,10 @@ menulist {
-moz-binding: url("chrome://global/content/bindings/menulist.xml#menulist");
}
menulist[type="description"] {
-moz-binding: url("chrome://global/content/bindings/menulist.xml#menulist-description");
}
menulist[editable] {
-moz-binding: url("chrome://global/content/bindings/menulist.xml#menulist-editable");
}

View File

@ -91,6 +91,12 @@ menulist > menupopup > menu {
font-weight: inherit;
}
.menu-description {
font-style: italic;
color: GrayText;
margin-left: 1ex !important;
}
.menu-accel,
.menu-iconic-accel {
margin: 0px 2px 0px 7px !important;

View File

@ -63,6 +63,12 @@ menuitem[_moz-menuactive="true"][disabled="true"] {
font-weight: inherit;
}
.menu-description {
font-style: italic;
color: GrayText;
margin-left: 1ex !important;
}
.menu-accel,
.menu-iconic-accel {
margin: 0px 2px 0px 7px !important;

View File

@ -1,11 +0,0 @@
/* * The contents of this file are subject to the Netscape Public * License Version 1.1 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.mozilla.org/NPL/ * * Software distributed under the License is distributed on an "AS * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or * implied. See the License for the specific language governing * rights and limitations under the License. * * The Original Code is Mozilla Communicator client code, released * March 31, 1998. * * The Initial Developer of the Original Code is Netscape * Communications Corporation. Portions created by Netscape are * Copyright (C) 1998-1999 Netscape Communications Corporation. All * Rights Reserved. * * Contributor(s): * Joe Hewitt (hewitt@netscape.com)
* Kevin Gerich (webmail@kmgerich.com) */ /* ===== menulist.css =================================================== == Styles used by the XUL menulist element. ======================================================================= */ @namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); @namespace html url("http://www.w3.org/1999/xhtml"); /* :::::::::: menulist :::::::::: */ menulist { -moz-appearance: menulist; -moz-user-focus: ignore; margin: 2px 4px;
height: 20px !important;
} .menulist-label-box { -moz-appearance: menulist-text; -moz-box-align: center; -moz-box-pack: center; background-color: #CCCCCC;
border: 1px solid blue; } .menulist-label { margin: 1px 3px !important;
}
/* ..... dropmarker ..... */ .menulist-dropmarker { -moz-appearance: menulist-button; } /* ..... disabled state ..... */ menulist[disabled="true"] { color: #777777 !important; } menulist[disabled="true"] > .menulist-dropmarker { padding-left: 7px !important; } /* ::::: editable menulists ::::: */ menulist[editable="true"] { -moz-user-focus: normal; } menulist[editable="true"] > .menulist-dropmarker { -moz-border-left-colors: #000000 #CCCCCC #FFFFFF; -moz-border-radius: 2px; } menulist[editable="true"][open="true"] > .menulist-dropmarker { -moz-border-left-colors: #000000 #454545 #555555; } .menulist-editable-box { margin-right: 4px; border-top: 1px solid #A1A1A1;
border-right: 1px solid #C3C3C3;
border-bottom: 1px solid #DDDDDD;
border-left: 1px solid #C3C3C3; padding: 1px 0px 1px 2px; background-color: -moz-Field; color: -moz-FieldText; } menulist[editable="true"][focused="true"] > .menulist-editable-box { -moz-border-top-colors: -moz-mac-focusring -moz-mac-focusring #000000; -moz-border-right-colors: -moz-mac-focusring -moz-mac-focusring #000000; -moz-border-bottom-colors: -moz-mac-focusring -moz-mac-focusring #000000; -moz-border-left-colors: -moz-mac-focusring -moz-mac-focusring #000000; } html|*.menulist-editable-input { margin: 0px !important; border: none !important; padding: 0px !important; background: inherit; font: inherit; } /* ::::: compact menulists ::::: */ .menulist-compact { -moz-box-align: center; -moz-box-pack: center; margin: 0; border: 2px solid; -moz-border-top-colors: ThreeDLightShadow ThreeDHighlight; -moz-border-right-colors: ThreeDDarkShadow ThreeDShadow; -moz-border-bottom-colors: ThreeDDarkShadow ThreeDShadow; -moz-border-left-colors: ThreeDLightShadow ThreeDHighlight; background-color: -moz-Dialog; } .menulist-compact > .menulist-label { margin: 0 3px !important; text-align: right;
-mox-box-flex: 1; } .menulist-compact > .menulist-dropmarker { margin-left: 2px; border: none; padding: 0 !important; background: transparent; } .menulist-compact[open="true"] { -moz-border-top-colors: ThreeDDarkShadow ThreeDShadow; -moz-border-right-colors: ThreeDDarkShadow ThreeDShadow; -moz-border-bottom-colors: ThreeDDarkShadow ThreeDShadow; -moz-border-left-colors: ThreeDDarkShadow ThreeDShadow; background-color: ThreeDShadow; }

View File

@ -63,6 +63,12 @@ menuitem[_moz-menuactive="true"][disabled="true"] {
font-weight: inherit;
}
.menu-description {
font-style: italic;
color: GrayText;
margin-left: 1ex !important;
}
.menu-accel,
.menu-iconic-accel {
margin: 0px 2px 0px 7px !important;

View File

@ -59,6 +59,12 @@ menulist[open="true"]:focus > .menulist-label-box {
margin: 1px 3px !important;
}
.menulist-description {
font-style: italic;
color: GrayText;
margin-left: 1ex !important;
}
/* ..... dropmarker ..... */
.menulist-dropmarker {

View File

@ -98,6 +98,17 @@
</content>
</binding>
<binding id="menuitem-iconic-desc-noaccel" extends="chrome://global/content/bindings/menu.xml#menuitem">
<content>
<xul:hbox class="menu-iconic-left" align="center" pack="center"
xbl:inherits="selected,disabled,checked">
<xul:image class="menu-iconic-icon" xbl:inherits="src=image,validate,src"/>
</xul:hbox>
<xul:label class="menu-iconic-text" xbl:inherits="value=label,accesskey,crop" crop="right" flex="1"/>
<xul:label class="menu-iconic-text menu-description" xbl:inherits="value=description" crop="right" flex="10000"/>
</content>
</binding>
<binding id="menu-iconic" extends="chrome://global/content/bindings/menu.xml#menuitem-base">
<content>
<xul:hbox class="menu-iconic-left" align="center" pack="center">

View File

@ -85,6 +85,8 @@
onget="return this.getAttribute('src');"/>
<property name="label" onset="this.setAttribute('label',val); return val;"
onget="return this.getAttribute('label');"/>
<property name="description" onset="this.setAttribute('description',val); return val;"
onget="return this.getAttribute('description');"/>
<property name="disabled" onset="if (val) this.setAttribute('disabled',true);
else this.removeAttribute('disabled');
return val;"
@ -162,6 +164,7 @@
this.removeAttribute('value');
this.removeAttribute('src');
this.removeAttribute('label');
this.removeAttribute('description');
return val;
}
@ -170,6 +173,7 @@
this.setAttribute('value', val.getAttribute('value'));
this.setAttribute('src', val.getAttribute('src'));
this.setAttribute('label', val.getAttribute('label'));
this.setAttribute('description', val.getAttribute('description'));
return val;
]]>
@ -179,6 +183,7 @@
<method name="appendItem">
<parameter name="label"/>
<parameter name="value"/>
<parameter name="description"/>
<body>
<![CDATA[
const XULNS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
@ -187,6 +192,8 @@
var item = document.createElementNS(XULNS, "menuitem");
item.setAttribute("label", label);
item.setAttribute("value", value);
item.setAttribute("description", description);
popup.appendChild(item);
return item;
]]>
@ -197,6 +204,7 @@
<parameter name="index"/>
<parameter name="label"/>
<parameter name="value"/>
<parameter name="description"/>
<body>
<![CDATA[
const XULNS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
@ -205,6 +213,8 @@
var item = document.createElementNS(XULNS, "menuitem");
item.setAttribute("label", label);
item.setAttribute("value", value);
item.setAttribute("description", description);
if (index < popup.childNodes.length)
popup.insertBefore(item, popup.childNodes[index]);
else
@ -436,5 +446,17 @@
<children includes="menupopup"/>
</content>
</binding>
<binding id="menulist-description" display="xul:menu"
extends="chrome://global/content/bindings/menulist.xml#menulist">
<content sizetopopup="pref">
<xul:hbox class="menulist-label-box" flex="1">
<xul:image class="menulist-icon" xbl:inherits="src"/>
<xul:label class="menulist-label" xbl:inherits="value=label,crop,accesskey" crop="right" flex="1"/>
<xul:label class="menulist-label menulist-description" xbl:inherits="value=description" crop="right" flex="10000"/>
</xul:hbox>
<xul:dropmarker class="menulist-dropmarker" type="menu"/>
<children includes="menupopup"/>
</content>
</binding>
</bindings>

View File

@ -259,6 +259,10 @@ menuitem.menuitem-iconic {
-moz-binding: url("chrome://global/content/bindings/menu.xml#menuitem-iconic");
}
menuitem[description] {
-moz-binding: url("chrome://global/content/bindings/menu.xml#menuitem-iconic-desc-noaccel");
}
menuitem[type="checkbox"],
menuitem[type="radio"] {
-moz-binding: url("chrome://global/content/bindings/menu.xml#menuitem-iconic");
@ -682,6 +686,10 @@ menulist[editable] {
-moz-binding: url("chrome://global/content/bindings/menulist.xml#menulist-editable");
}
menulist[type="description"] {
-moz-binding: url("chrome://global/content/bindings/menulist.xml#menulist-description");
}
html|*.menulist-editable-input {
-moz-appearance: none !important;
}