This commit is contained in:
sspitzer%netscape.com 2000-05-02 08:10:42 +00:00
Родитель 274103b53a
Коммит e3e7f2b8e4
8 изменённых файлов: 196 добавлений и 26 удалений

Просмотреть файл

@ -9,6 +9,11 @@
padding : 11px 3px 1px 23px;
margin : 0px;
}
#navigator-throbber[busy="true"]
{
list-style-image : url("chrome://global/skin/animthrob.gif");
}
#navigator-throbber:hover:active
{

Просмотреть файл

@ -1,6 +1,7 @@
/******* Splitters *******/
splitter {
border: none;
cursor: e-resize;
min-width: 5px;
min-height: 5px;

Просмотреть файл

@ -47,6 +47,15 @@
margin-right: 2px;
}
.inset-border {
border: 1px inset white;
}
/* THIS DOESN'T WORK ON <text>! */
.center {
text-align: center;
}
/* end of SHOULD GO IN GLOBAL */
#EditModeToolbar {
@ -91,10 +100,6 @@
padding: 1px 5px -1px 3px;
}
.color-caption {
border: 1px inset white;
}
/* Image URLs for all Editor toolbar buttons */
#boldButton {
@ -228,29 +233,34 @@
list-style-image:url("chrome://editor/skin/images/justify.gif");
}
#ColorButtons {
margin: 2px;
.ColorPickerLabel {
border: 1px inset white;
margin: 0px;
padding: 2px;
text-align: center;
}
/* TODO: How to make inset color skinable? */
#TextColorPopupButton {
.color-button {
border: 1px inset #CCCCCC;
padding: 0px;
margin-right: 7px;
margin-bottom: 7px;
width: 14px;
height: 12px;
margin: 2px;
}
.color-button:hover {
border: 1px solid white;
}
#TextColorPopupButton {
margin: 2px 9px 9px 2px;
/* TEMP: Set color here. TODO: Set color from page */
background-color: #AA0000;
}
#BackColorPopupButton {
border: 1px inset #CCCCCC;
padding: 0px;
margin-top: 7px;
margin-left: 7px;
width: 14px;
height: 12px;
margin: 9px 2px 2px 9px;
/* TEMP: Set color here. TODO: Set color from page */
background-color: #FFFF00;
}

Просмотреть файл

@ -13,9 +13,11 @@
@import url(chrome://global/skin/checkbox.css);
@import url(chrome://global/skin/radio.css);
@import url(chrome://global/skin/tree.css);
@import url(chrome://global/skin/menu.css);
@import url(chrome://global/skin/splitter.css);
@import url(chrome://global/skin/radio.css);
@import url(chrome://global/skin/menubutton.css);
@import url(chrome://global/skin/menulist.css);
@import url(chrome://global/skin/menu.css);
@import url(chrome://global/skin/formatting.css);
@import url(chrome://global/skin/textfield.css);

Просмотреть файл

@ -1,3 +1,74 @@
menubar
{
background-color : #CCCCCC;
}
menu, menuitem
{
color : #000000;
vertical-align : middle;
}
menu[disabled="true"], menuitem[disabled="true"],
menu[menuactive="true"][disabled="true"],
menuitem[menuactive="true"][disabled="true"]
{
color : #999999;
}
/* XXX menupopups have to have a color explicitly specified. this is a bug */
menupopup, popup
{
background-color : #CCCCCC;
border : 1px outset #CCCCCC;
}
menupopup > menu, popup > menu,
menupopup > menuitem, popup > menuitem
{
max-width : 25em;
min-width : 10em;
margin : 0px;
}
menuseparator
{
border-bottom : 1px solid #336699;
margin : 2px 0px 2px 0px;
}
menubar > menu
{
border : 1px solid transparent;
padding : 2px 3px 2px 3px;
margin : 2px 0px 2px 0px;
}
menupopup > menu, menupopup > menuitem,
popup > menu, popup > menuitem
{
padding : 2px;
}
menubar > menu[menuactive="true"]
{
border : 1px outset #CCCCCC;
}
menubar > menu[menuactive="true"][open="true"]
{
border : 1px outset #CCCCCC;
}
menupopup > menu[menuactive="true"],
menupopup > menuitem[menuactive="true"],
popup > menu[menuactive="true"],
popup > menuitem[menuactive="true"]
{
background-color : #000080;
color : #FFFFFF;
}
/**
* Atomic sub-parts of standard menus

Просмотреть файл

@ -64,9 +64,8 @@
background-color : inherit;
}
.textfield-input, .textfield-textarea
textfield[disabled="true"]
{
color : #999999;
cursor : default ! important;
}

Просмотреть файл

@ -23,7 +23,14 @@
<![CDATA[
this.internalScope = val;
this.refreshList();
if (this.target) this.target.searchScope = val;
var targets = this.targets;
if (targets) {
for (var i=0; i< targets.length; i++) {
dump("searchScopeSet: targets[" + i + "] = " + targets[i] + "\n")
targets[i].searchScope = val;
}
}
dump("done\n");
]]>
</setter>
<getter>
@ -47,10 +54,22 @@
]]>
</getter>
</property>
<property name="target" readonly="true">
<property name="targets" readonly="true">
<getter>
<![CDATA[
return document.getElementById(this.getAttribute("for"));
var forAttrs = this.getAttribute("for");
if (!forAttrs) return null;
var targetIds = forAttrs.split(",");
if (targetIds.length == 0) return null;
var targets = new Array;
var j=0;
for (var i=0; i<targetIds.length;i++) {
var target = document.getElementById(targetIds[i]);
if (target) targets[j++] = target;
if (!target) dump("Bad target " + i + ": " + targetIds[i] + "\n");
}
return targets;
]]>
</getter>
</property>
@ -96,13 +115,24 @@
<![CDATA[
dump("onSelect!\n");
var menulist = this.anonymousContent[0];
if (this.target) this.target.searchAttribute = menulist.data;
// notify targets
var targets = this.targets;
if (targets) {
dump("There are " + targets.length + " targets\n");
for (var i=0; i< targets.length; i++) {
dump("onSelect: targets[" + i + "] = " + targets[i] + "\n");
targets[i].parentValue = menulist.data;
}
}
]]>
</body>
</method>
</interface>
<handler type="command" value="dump('onCommand!\n');"/>
</binding>
<!-- searchattribute - Subject, Sender, To, CC, etc. -->
<binding id="searchattribute"
extends="chrome://messenger/skin/mailWidgets.xml#search-menulist-abstract">
<interface>
@ -121,6 +151,8 @@
</property>
</interface>
</binding>
<!-- searchoperator - Contains, Is Less than, etc -->
<binding id="searchoperator"
extends="chrome://messenger/skin/mailWidgets.xml#search-menulist-abstract">
<interface>
@ -137,20 +169,66 @@
]]>
</getter>
</property>
<property name="searchAttribute">
<property name="parentValue">
<setter>
<![CDATA[
this.internalSearchAttribute = val;
this.searchAttribute = val;
this.refreshList();
]]>
</setter>
<getter>
<![CDATA[
return this.internalSearchAttribute;
return this.searchAttribute;
]]>
</getter>
</property>
</interface>
</binding>
<!-- searchvalue - a widget which dynamically changes it's user interface
depending on what type of data it's supposed to be showing
currently handles arbitrary text entry, and menulists for priority and
status
-->
<binding id="searchvalue" extends="xul:deck">
<!-- yeah yeah, this stuff needs to be localized. I'm working on it! -->
<content>
<xul:textfield flex="1" />
<xul:menulist flex="1" >
<xul:menupopup>
<xul:menuitem value="Lowest"/>
<xul:menuitem value="Low"/>
<xul:menuitem value="Normal"/>
<xul:menuitem value="High"/>
<xul:menuitem value="Highest"/>
</xul:menupopup>
</xul:menulist>
<xul:menulist flex="1" >
<xul:menupopup>
<xul:menuitem value="read"/>
<xul:menuitem value="replied"/>
</xul:menupopup>
</xul:menulist>
</content>
<interface>
<!-- parentValue forwards to the attribute -->
<property name="parentValue" onset="this.searchAttribute=val;"
onget="return this.searchAttribute;"/>
<property name="searchAttribute" onget="return this.internalAttribute;">
<setter>
<![CDATA[
this.internalAttribute = val;
// we inherit from a deck, so just use it's index attribute
// to hide/show widgets
if (val == Components.interfaces.nsMsgSearchAttrib.Priority)
this.setAttribute("index", "2");
else if (val == Components.interfaces.nsMsgSearchAttrib.MsgStatus)
this.setAttribute("index", "2");
else
this.setAttribute("index", "0");
]]>
</setter>
</property>
</interface>
</binding>
</bindings>

Просмотреть файл

@ -309,3 +309,7 @@ searchattribute {
searchoperator {
behavior: url(chrome://messenger/skin/mailWidgets.xml#searchoperator);
}
searchvalue {
behavior: url(chrome://messenger/skin/mailWidgets.xml#searchvalue);
}