update skins.
This commit is contained in:
Родитель
274103b53a
Коммит
e3e7f2b8e4
|
@ -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);
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче