зеркало из https://github.com/mozilla/pjs.git
Bug 360288 SeaMonkey Front End Support for New Remote Content Policy
p=me r=neil sr=bienvenu
This commit is contained in:
Родитель
15ad337b24
Коммит
81bb1080a4
|
@ -139,9 +139,10 @@ function OnLoadNewCard()
|
|||
if ("aimScreenName" in window.arguments[0])
|
||||
gEditCard.card.aimScreenName = window.arguments[0].aimScreenName;
|
||||
|
||||
if ("allowRemoteContent" in window.arguments[0])
|
||||
document.getElementById('allowRemoteContent').checked =
|
||||
window.arguments[0].allowRemoteContent == 'true';
|
||||
if ("allowRemoteContent" in window.arguments[0]) {
|
||||
gEditCard.card.allowRemoteContent = window.arguments[0].allowRemoteContent;
|
||||
window.arguments[0].allowRemoteContent = false;
|
||||
}
|
||||
|
||||
if ("okCallback" in window.arguments[0])
|
||||
gOkCallback = window.arguments[0].okCallback;
|
||||
|
@ -407,6 +408,8 @@ function NewCardOKButton()
|
|||
// the card that got created.
|
||||
gEditCard.card = GetDirectoryFromURI(uri).addCard(gEditCard.card);
|
||||
NotifySaveListeners();
|
||||
if ("arguments" in window && window.arguments[0])
|
||||
window.arguments[0].allowRemoteContent = gEditCard.card.allowRemoteContent;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -6,7 +6,6 @@
|
|||
<!DOCTYPE page SYSTEM "chrome://messenger/locale/pref-viewing_messages.dtd">
|
||||
|
||||
<page xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
xmlns:nc="http://home.netscape.com/NC-rdf#"
|
||||
onload="parent.initPanel('chrome://messenger/content/pref-viewing_messages.xul');"
|
||||
headertitle="&pref.viewing.messages.title;">
|
||||
|
||||
|
@ -16,43 +15,21 @@
|
|||
"mailQuotedSize", "mailCitationColor",
|
||||
"wrapLongLines", "displayGlyph",
|
||||
"reuseMessageWindow", "disableContent",
|
||||
"useWhiteList", "whiteListAbURI",
|
||||
"markMessagesRead", "markMessagesReadAfter"];
|
||||
var gMarkMessagesReadAfter;
|
||||
|
||||
function Startup() {
|
||||
gMarkMessagesReadAfter = document.getElementById("markMessagesReadAfter");
|
||||
enableTextbox(document.getElementById("markMessagesRead"), gMarkMessagesReadAfter, true);
|
||||
enableWhiteList(document.getElementById("disableContent").checked);
|
||||
}
|
||||
|
||||
function enableTextbox(checkbox, textbox, startingUp) {
|
||||
textbox.disabled = isDisabled(checkbox.checked, textbox);
|
||||
textbox.disabled = (!checkbox.checked ||
|
||||
parent.hPrefWindow.getPrefIsLocked(textbox.getAttribute("prefstring")));
|
||||
|
||||
if (!textbox.disabled && !startingUp)
|
||||
textbox.focus();
|
||||
}
|
||||
|
||||
function isDisabled(aChecked, aElement) {
|
||||
return (!aChecked ||
|
||||
parent.hPrefWindow.getPrefIsLocked(aElement.getAttribute("prefstring")));
|
||||
}
|
||||
|
||||
function enableCheckbox(aChecked, aCheckbox) {
|
||||
var disabled = isDisabled(aChecked, aCheckbox);
|
||||
aCheckbox.disabled = disabled;
|
||||
return disabled;
|
||||
}
|
||||
|
||||
function enableWhiteList(aChecked) {
|
||||
var useWhiteList = document.getElementById("useWhiteList");
|
||||
var disabled = enableCheckbox(aChecked, useWhiteList);
|
||||
enableWLPopup(useWhiteList.checked && !disabled);
|
||||
}
|
||||
|
||||
function enableWLPopup(aChecked) {
|
||||
enableCheckbox(aChecked, document.getElementById("whiteListAbURI"));
|
||||
}
|
||||
]]>
|
||||
</script>
|
||||
|
||||
|
@ -74,34 +51,7 @@
|
|||
<checkbox id="disableContent" label="&disableContent.label;"
|
||||
accesskey="&disableContent.accesskey;"
|
||||
prefstring="mailnews.message_display.disable_remote_image"
|
||||
prefattribute="checked" pref="true" preftype="bool"
|
||||
oncommand="enableWhiteList(this.checked);"/>
|
||||
<vbox class="indent">
|
||||
<checkbox id="useWhiteList" label="&useWhiteList.label;"
|
||||
accesskey="&useWhiteList.accesskey;"
|
||||
prefstring="mailnews.message_display.disable_remote_images.useWhitelist"
|
||||
prefattribute="checked" pref="true" preftype="bool"
|
||||
oncommand="enableWLPopup(this.checked);"/>
|
||||
<hbox class="indent">
|
||||
<menulist id="whiteListAbURI" preftype="string"
|
||||
prefstring="mailnews.message_display.disable_remote_images.whiteListAbURI"
|
||||
ref="moz-abdirectory://"
|
||||
datasources="rdf:addressdirectory"
|
||||
sortActive="true" sortDirection="ascending"
|
||||
sortResource="http://home.netscape.com/NC-rdf#DirTreeNameSort">
|
||||
<template>
|
||||
<rule nc:IsWriteable="false"/>
|
||||
<rule nc:IsMailList="false">
|
||||
<menupopup>
|
||||
<menuitem uri="rdf:*"
|
||||
label="rdf:http://home.netscape.com/NC-rdf#DirName"
|
||||
value="rdf:http://home.netscape.com/NC-rdf#DirUri"/>
|
||||
</menupopup>
|
||||
</rule>
|
||||
</template>
|
||||
</menulist>
|
||||
</hbox>
|
||||
</vbox>
|
||||
prefattribute="checked" pref="true" preftype="bool"/>
|
||||
|
||||
<separator class="thin"/>
|
||||
|
||||
|
|
|
@ -1,82 +0,0 @@
|
|||
<!-- ***** BEGIN LICENSE BLOCK *****
|
||||
Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
|
||||
The contents of this file are subject to the Mozilla 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/MPL/
|
||||
|
||||
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 the Initial Developer are Copyright (C) 1998-1999
|
||||
the Initial Developer. All Rights Reserved.
|
||||
|
||||
Contributor(s):
|
||||
Stefan Borggraefe <Stefan.Borggraefe@gmx.de>
|
||||
|
||||
Alternatively, the contents of this file may be used under the terms of
|
||||
either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
of those above. If you wish to allow use of your version of this file only
|
||||
under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
use your version of this file under the terms of the MPL, indicate your
|
||||
decision by deleting the provisions above and replace them with the notice
|
||||
and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
the provisions above, a recipient may use your version of this file under
|
||||
the terms of any one of the MPL, the GPL or the LGPL.
|
||||
|
||||
***** END LICENSE BLOCK ***** -->
|
||||
|
||||
<!ENTITY pref.viewing.messages.title "Message Display">
|
||||
<!ENTITY style.label "Style:">
|
||||
<!ENTITY style.accesskey "S">
|
||||
<!ENTITY regular.label "Regular">
|
||||
<!ENTITY bold.label "Bold">
|
||||
<!ENTITY italic.label "Italic">
|
||||
<!ENTITY boldItalic.label "Bold Italic">
|
||||
<!ENTITY size.label "Size:">
|
||||
<!ENTITY size.accesskey "z">
|
||||
<!ENTITY bigger.label "Bigger">
|
||||
<!ENTITY smaller.label "Smaller">
|
||||
<!ENTITY color.label "Color:">
|
||||
<!ENTITY color.accesskey "C">
|
||||
<!ENTITY displayPlainText.caption "Plain text messages">
|
||||
<!ENTITY plainTextFont.label "Use the following font width:">
|
||||
<!ENTITY displayQuoted.label "Settings for quoted messages:">
|
||||
<!ENTITY fixedWidth.label "Fixed">
|
||||
<!ENTITY fixedWidth.accesskey "F">
|
||||
<!ENTITY variableWidth.label "Variable">
|
||||
<!ENTITY variableWidth.accesskey "V">
|
||||
<!ENTITY readingMessagesHeader.label "For incoming messages">
|
||||
<!ENTITY messageWrapping.label "Message Wrapping">
|
||||
<!ENTITY wrapInMsg.label "Wrap text to fit window width">
|
||||
<!ENTITY wrapInMsg.accesskey "t">
|
||||
<!-- LOCALIZATION NOTE : (convertEmoticons.label) 'Emoticons' are also known as 'Smileys', e.g. :-) -->
|
||||
<!ENTITY convertEmoticons.label "Display emoticons as graphics">
|
||||
<!ENTITY convertEmoticons.accesskey "D">
|
||||
<!ENTITY generalMessageDisplay.caption "General">
|
||||
<!-- LOCALIZATION NOTE (markMessagesRead.label): This will concatenate with
|
||||
"xxx seconds before marking a message as read", using a number and
|
||||
(seconds.label). -->
|
||||
<!ENTITY markMessagesRead.label "Wait">
|
||||
<!ENTITY markMessagesRead.accesskey "W">
|
||||
<!ENTITY seconds.label "seconds before marking a message as read">
|
||||
|
||||
<!ENTITY openingMessages.label "When opening messages, display them in:">
|
||||
<!ENTITY newWindowRadio.label "A new message window">
|
||||
<!ENTITY newWindowRadio.accesskey "n">
|
||||
<!ENTITY existingWindowRadio.label "An existing message window">
|
||||
<!ENTITY existingWindowRadio.accesskey "e">
|
||||
<!ENTITY disableContent.label "Block images and other content from remote sources">
|
||||
<!ENTITY disableContent.accesskey "B">
|
||||
<!ENTITY useWhiteList.label "but allow if the sender is in this address book:">
|
||||
<!ENTITY useWhiteList.accesskey "a">
|
|
@ -2196,9 +2196,13 @@ var gMessageNotificationBar =
|
|||
|
||||
setRemoteContentMsg: function(aMsgHdr)
|
||||
{
|
||||
var blockRemote = aMsgHdr &&
|
||||
aMsgHdr.getUint32Property("remoteContentPolicy") == kBlockRemoteContent;
|
||||
this.updateMsgNotificationBar(kMsgNotificationRemoteImages, blockRemote);
|
||||
// update the allow remote content for sender string
|
||||
var headerParser = Components.classes["@mozilla.org/messenger/headerparser;1"]
|
||||
.getService(Components.interfaces.nsIMsgHeaderParser);
|
||||
var emailAddress = headerParser.extractHeaderAddressMailboxes(null, aMsgHdr.author);
|
||||
document.getElementById('allowRemoteContentForAuthorDesc').value =
|
||||
gMessengerBundle.getFormattedString('alwaysLoadRemoteContentForSender', [emailAddress ? emailAddress : aMsgHdr.author]);
|
||||
this.updateMsgNotificationBar(kMsgNotificationRemoteImages, true);
|
||||
},
|
||||
|
||||
// aUrl is the nsIURI for the message currently loaded in the message pane
|
||||
|
@ -2234,7 +2238,11 @@ var gMessageNotificationBar =
|
|||
}
|
||||
};
|
||||
|
||||
function LoadMsgWithRemoteContent()
|
||||
/**
|
||||
* loadMsgWithRemoteContent
|
||||
* Reload the current message, allowing remote content
|
||||
*/
|
||||
function loadMsgWithRemoteContent()
|
||||
{
|
||||
// we want to get the msg hdr for the currently selected message
|
||||
// change the "remoteContentBar" property on it
|
||||
|
@ -2243,6 +2251,76 @@ function LoadMsgWithRemoteContent()
|
|||
setMsgHdrPropertyAndReload("remoteContentPolicy", kAllowRemoteContent);
|
||||
}
|
||||
|
||||
/**
|
||||
* msgHdrForCurrentMessage
|
||||
* Returns the msg hdr associated with the current loaded message.
|
||||
*/
|
||||
function msgHdrForCurrentMessage()
|
||||
{
|
||||
var msgURI = GetLoadedMessage();
|
||||
return (msgURI && !(/type=application\/x-message-display/.test(msgURI))) ? messenger.msgHdrFromURI(msgURI) : null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Reloads the message after adjusting the remote content policy for the sender.
|
||||
* Iterate through the local address books looking for a card with the same e-mail address as the
|
||||
* sender of the current loaded message. If we find a card, update the allow remote content field.
|
||||
* If we can't find a card, prompt the user with a new AB card dialog, pre-selecting the remote content field.
|
||||
*/
|
||||
function allowRemoteContentForSender()
|
||||
{
|
||||
// get the sender of the msg hdr
|
||||
var msgHdr = msgHdrForCurrentMessage();
|
||||
if (!msgHdr)
|
||||
return;
|
||||
|
||||
var headerParser = Components.classes["@mozilla.org/messenger/headerparser;1"]
|
||||
.getService(Components.interfaces.nsIMsgHeaderParser);
|
||||
var names = {};
|
||||
var addresses = {};
|
||||
var fullNames = {};
|
||||
var numAddresses;
|
||||
|
||||
numAddresses = headerParser.parseHeadersWithArray(msgHdr.author, addresses, names, fullNames);
|
||||
var authorEmailAddress = addresses.value[0];
|
||||
if (!authorEmailAddress)
|
||||
return;
|
||||
|
||||
// search through all of our local address books looking for a match.
|
||||
var parentDir = RDF.GetResource("moz-abdirectory://").QueryInterface(Components.interfaces.nsIAbDirectory);
|
||||
var enumerator = parentDir.childNodes;
|
||||
var cardForEmailAddress;
|
||||
var addrbook;
|
||||
while (!cardForEmailAddress && enumerator.hasMoreElements())
|
||||
{
|
||||
addrbook = enumerator.getNext();
|
||||
if (addrbook instanceof Components.interfaces.nsIAbMDBDirectory)
|
||||
cardForEmailAddress = addrbook.cardForEmailAddress(authorEmailAddress);
|
||||
}
|
||||
|
||||
var allowRemoteContent = false;
|
||||
if (cardForEmailAddress)
|
||||
{
|
||||
// set the property for remote content
|
||||
cardForEmailAddress.allowRemoteContent = true;
|
||||
cardForEmailAddress.editCardToDatabase("");
|
||||
allowRemoteContent = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
var args = {primaryEmail:authorEmailAddress, displayName:names.value[0],
|
||||
allowRemoteContent:true};
|
||||
// create a new card and set the property
|
||||
window.openDialog("chrome://messenger/content/addressbook/abNewCardDialog.xul",
|
||||
"", "chrome,resizable=no,titlebar,modal,centerscreen", args);
|
||||
allowRemoteContent = args.allowRemoteContent;
|
||||
}
|
||||
|
||||
// reload the message if we've updated the remote content policy for the sender
|
||||
if (allowRemoteContent)
|
||||
MsgReload();
|
||||
}
|
||||
|
||||
function MsgIsNotAScam()
|
||||
{
|
||||
// we want to get the msg hdr for the currently selected message
|
||||
|
@ -2257,33 +2335,22 @@ function setMsgHdrPropertyAndReload(aProperty, aValue)
|
|||
// we want to get the msg hdr for the currently selected message
|
||||
// change the appropiate property on it then reload the message
|
||||
|
||||
var msgURI = GetLoadedMessage();
|
||||
|
||||
if (msgURI && !(/type=application\/x-message-display/.test(msgURI)))
|
||||
{
|
||||
var msgHdr = messenger.msgHdrFromURI(msgURI);
|
||||
var msgHdr = msgHdrForCurrentMessage();
|
||||
if (msgHdr)
|
||||
{
|
||||
msgHdr.setUint32Property(aProperty, aValue);
|
||||
MsgReload();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function checkMsgHdrPropertyIsNot(aProperty, aValue)
|
||||
{
|
||||
// we want to get the msg hdr for the currently selected message,
|
||||
// get the appropiate property on it and then test against value.
|
||||
|
||||
var msgURI = GetLoadedMessage();
|
||||
|
||||
if (msgURI && !(/type=application\/x-message-display/.test(msgURI)))
|
||||
{
|
||||
var msgHdr = messenger.msgHdrFromURI(msgURI);
|
||||
var msgHdr = msgHdrForCurrentMessage();
|
||||
return (msgHdr && msgHdr.getUint32Property(aProperty) != aValue);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function MarkCurrentMessageAsRead()
|
||||
{
|
||||
|
@ -2310,17 +2377,15 @@ function OnMsgLoaded(aUrl)
|
|||
return;
|
||||
|
||||
// nsIMsgMailNewsUrl.folder throws an error when opening .eml files.
|
||||
var folder;
|
||||
try {
|
||||
var folder = aUrl.folder;
|
||||
} catch (ex) {
|
||||
return;
|
||||
}
|
||||
folder = aUrl.folder;
|
||||
} catch (ex) {}
|
||||
|
||||
var msgURI = GetLoadedMessage();
|
||||
if (!msgURI)
|
||||
return;
|
||||
|
||||
var msgHdr = null;
|
||||
if (!folder || !msgURI)
|
||||
return;
|
||||
|
||||
// If we are in the middle of a delete or move operation, make sure that
|
||||
// if the user clicks on another message then that message stays selected
|
||||
|
@ -2328,8 +2393,7 @@ function OnMsgLoaded(aUrl)
|
|||
// SetNextMessageAfterDelete() when the operation completes (bug 243532).
|
||||
gNextMessageViewIndexAfterDelete = -2;
|
||||
|
||||
if (!(/type=application\/x-message-display/.test(msgURI)))
|
||||
msgHdr = messenger.msgHdrFromURI(msgURI);
|
||||
var msgHdr = msgHdrForCurrentMessage();
|
||||
|
||||
gMessageNotificationBar.setJunkMsg(msgHdr);
|
||||
|
||||
|
|
|
@ -1942,9 +1942,13 @@
|
|||
|
||||
<hbox id="remoteContentBar" class="msgNotificationBar" align="center">
|
||||
<image id="remoteContentImage"/>
|
||||
<vbox>
|
||||
<description flex="1" class="msgNotificationBarText">&remoteContentMessage.label;</description>
|
||||
<label id="allowRemoteContentForAuthorDesc" class="text-link" flex="1"
|
||||
onclick="allowRemoteContentForSender();"/>
|
||||
</vbox>
|
||||
<spacer flex="1"/>
|
||||
<button label="&loadRemoteContentButton.label;" oncommand="LoadMsgWithRemoteContent();"/>
|
||||
<button label="&loadRemoteContentButton.label;" oncommand="loadMsgWithRemoteContent();"/>
|
||||
</hbox>
|
||||
</deck>
|
||||
|
||||
|
|
|
@ -379,5 +379,5 @@ confirmPhishingTitle=Email Scam Alert
|
|||
confirmPhishingUrl1=%1$S thinks this site is suspicious! It may be trying to impersonate the web page you want to visit. Most legitimate sites use names instead of numbers. Are you sure you want to visit %2$S?
|
||||
confirmPhishingUrl2=%1$S thinks this site is suspicious! It may be trying to impersonate the web page you want to visit. Are you sure you want to visit %2$S?
|
||||
|
||||
#LOCALIZATION NOTE %1$S is the e-mail address of the person we will allow remote images for
|
||||
alwaysLoadRemoteContentForSender=Click here to always load remote images from %1$S
|
||||
#LOCALIZATION NOTE %1$S is the e-mail address of the person we will allow remote content for
|
||||
alwaysLoadRemoteContentForSender=Click here to always load remote content from %1$S.
|
||||
|
|
|
@ -547,8 +547,8 @@
|
|||
and Plug-ins</h2>
|
||||
|
||||
<p>By default, images and other content, that is hosted remotely, will not
|
||||
display in messages you receive, except from senders in your Personal
|
||||
Address Book. To change these settings:</p>
|
||||
display in messages you receive, except from senders in your address books
|
||||
whom you have allowed. To change these settings:</p>
|
||||
|
||||
<ol>
|
||||
<li>Open the <span class="mac">&brandShortName;</span>
|
||||
|
@ -556,20 +556,15 @@
|
|||
<li>Under the Mail & Newsgroups category, click Message Display. (If
|
||||
no subcategories are visible, double-click Mail & Newsgroups to
|
||||
expand the list.)</li>
|
||||
<li>In the General section, do one of the following:
|
||||
<ul>
|
||||
<li>To allow all remote content, uncheck <q>Block images and other
|
||||
content from remote sources</q>.</li>
|
||||
<li>To block all remote content, uncheck <q>but allow if the sender is in
|
||||
this address book:</q>.</li>
|
||||
<li>To change which address book you use for people who send messages
|
||||
that are allowed to display remote content, select the correct address
|
||||
book from the drop down.</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Uncheck <q>Block images and other content from remote sources</q>.</li>
|
||||
<li>Click OK to have your change take affect.</li>
|
||||
</ol>
|
||||
|
||||
<p><strong>Note</strong>: See <q>Allow remote images in HTML mail</q> in
|
||||
<a href="#creating_a_new_address_book_card">Creating a New Address Book
|
||||
Card</a> for details of how to change which senders can show remote
|
||||
content.</p>
|
||||
|
||||
<p>By default, JavaScript and plug-ins are not enabled for mail messages you
|
||||
receive. To change these settings:</p>
|
||||
|
||||
|
@ -1643,6 +1638,9 @@
|
|||
Mail & Newsgroups still can't determine the correct
|
||||
format, Mail & Newsgroups will prompt you to choose a sending
|
||||
format when you send the message.</li>
|
||||
<li>Allow remote images in HTML mail: If you want to allow this
|
||||
sender to have remote content they send you displayed in your
|
||||
message window.</li>
|
||||
<li>Screen name (the AIM contact name).</li>
|
||||
<li>Phones (enter phone numbers for this person)</li>
|
||||
</ul>
|
||||
|
@ -4458,10 +4456,8 @@ to filter unwanted mail, and how phishing detection works.</p>
|
|||
want to open a new one for each.</li>
|
||||
<li><strong>Block images and other content from remote sources</strong>:
|
||||
Select this checkbox if you do not want to display remote images and other
|
||||
content in received messages. (This checkbox is selected by default.)</li>
|
||||
<li><strong>but allow if the sender is in this address book</strong>: Select
|
||||
this checkbox if you want to allow remote content in messages from senders
|
||||
in the chosen address book. (This checkbox is selected by default.)</li>
|
||||
content in received messages, except from senders in your address books
|
||||
whom you have allowed. (This checkbox is selected by default.)</li>
|
||||
<li><strong>Wait [__] seconds before marking a message as read</strong>:
|
||||
Choose this option if you do not want a message to be marked as read when
|
||||
you are only taking a brief look at it. Enter the number of seconds you
|
||||
|
|
|
@ -270,3 +270,7 @@
|
|||
list-style-image: url("chrome://messenger/skin/icons/remote-blocked.png");
|
||||
padding: 3px;
|
||||
}
|
||||
|
||||
#allowRemoteContentForAuthorDesc {
|
||||
padding-left: 10px;
|
||||
}
|
||||
|
|
|
@ -1,283 +0,0 @@
|
|||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla 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/MPL/
|
||||
*
|
||||
* 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.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1998
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Joe Hewitt <hewitt@netscape.com>
|
||||
* Adam Becevello <abecevello@sympatico.ca>
|
||||
* Seth Spitzer <sspitzer@netscape.com>
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
/* ===== primaryToolbar.css =============================================
|
||||
== Images for the Mail primary toolbar.
|
||||
======================================================================= */
|
||||
|
||||
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
|
||||
|
||||
/* ::::: primary toolbar masthead ::::: */
|
||||
|
||||
#msgToolbar > .toolbar-holder > .toolbar-primary-icon {
|
||||
list-style-image: url("chrome://messenger/skin/icons/mast-mail.gif");
|
||||
}
|
||||
|
||||
/* ::::: primary toolbar buttons ::::: */
|
||||
|
||||
.toolbarbutton-1 {
|
||||
list-style-image: url("chrome://messenger/skin/icons/btn1.gif");
|
||||
}
|
||||
|
||||
#button-getmsg {
|
||||
-moz-image-region: rect(102px 49px 135px 0);
|
||||
}
|
||||
|
||||
#button-getmsg:hover {
|
||||
-moz-image-region: rect(102px 99px 135px 50px);
|
||||
}
|
||||
|
||||
#button-getmsg:hover:active {
|
||||
-moz-image-region: rect(102px 149px 135px 100px);
|
||||
}
|
||||
|
||||
#button-getmsg[disabled] {
|
||||
-moz-image-region: rect(102px 199px 135px 150px) !important;
|
||||
}
|
||||
|
||||
#button-getmsg[buttonstyle="text"] > stack > .toolbarbutton-menubutton-dropmarker {
|
||||
margin: 0px 2px 0px 55px !important;
|
||||
}
|
||||
|
||||
#button-newmsg {
|
||||
-moz-image-region: rect(170px 49px 203px 0);
|
||||
}
|
||||
|
||||
#button-newmsg:hover {
|
||||
-moz-image-region: rect(170px 99px 203px 50px);
|
||||
}
|
||||
|
||||
#button-newmsg:hover:active {
|
||||
-moz-image-region: rect(170px 149px 203px 100px);
|
||||
}
|
||||
|
||||
#button-newmsg[disabled] {
|
||||
-moz-image-region: rect(170px 199px 203px 150px) !important;
|
||||
}
|
||||
|
||||
#button-reply {
|
||||
-moz-image-region: rect(238px 49px 271px 0);
|
||||
}
|
||||
|
||||
#button-reply:hover {
|
||||
-moz-image-region: rect(238px 99px 271px 50px);
|
||||
}
|
||||
|
||||
#button-reply:hover:active {
|
||||
-moz-image-region: rect(238px 149px 271px 100px);
|
||||
}
|
||||
|
||||
#button-reply[disabled] {
|
||||
-moz-image-region: rect(238px 199px 271px 150px) !important;
|
||||
}
|
||||
|
||||
#button-replyall {
|
||||
-moz-image-region: rect(272px 49px 305px 0);
|
||||
}
|
||||
|
||||
#button-replyall:hover {
|
||||
-moz-image-region: rect(272px 99px 305px 50px);
|
||||
}
|
||||
|
||||
#button-replyall:hover:active {
|
||||
-moz-image-region: rect(272px 149px 305px 100px);
|
||||
}
|
||||
|
||||
#button-replyall[disabled] {
|
||||
-moz-image-region: rect(272px 199px 305px 150px) !important;
|
||||
}
|
||||
|
||||
#button-forward {
|
||||
-moz-image-region: rect(68px 49px 101px 0);
|
||||
}
|
||||
|
||||
#button-forward:hover {
|
||||
-moz-image-region: rect(68px 99px 101px 50px);
|
||||
}
|
||||
|
||||
#button-forward:hover:active {
|
||||
-moz-image-region: rect(68px 149px 101px 100px);
|
||||
}
|
||||
|
||||
#button-forward[disabled] {
|
||||
-moz-image-region: rect(68px 199px 101px 150px) !important;
|
||||
}
|
||||
|
||||
#button-file {
|
||||
-moz-image-region: rect(34px 49px 67px 0);
|
||||
}
|
||||
|
||||
#button-file:hover {
|
||||
-moz-image-region: rect(34px 99px 67px 50px);
|
||||
}
|
||||
|
||||
#button-file:hover:active,
|
||||
#button-file[open] {
|
||||
-moz-image-region: rect(34px 149px 67px 100px);
|
||||
}
|
||||
|
||||
#button-file[disabled] {
|
||||
-moz-image-region: rect(34px 199px 67px 150px) !important;
|
||||
}
|
||||
|
||||
#button-next {
|
||||
-moz-image-region: rect(204px 49px 237px 0);
|
||||
}
|
||||
|
||||
#button-next:hover {
|
||||
-moz-image-region: rect(204px 99px 237px 50px);
|
||||
}
|
||||
|
||||
#button-next:hover:active {
|
||||
-moz-image-region: rect(204px 149px 237px 100px);
|
||||
}
|
||||
|
||||
#button-next[disabled] {
|
||||
-moz-image-region: rect(204px 199px 237px 150px) !important;
|
||||
}
|
||||
|
||||
#button-delete {
|
||||
-moz-image-region: rect(0, 49px 33px 0);
|
||||
}
|
||||
|
||||
#button-delete:hover {
|
||||
-moz-image-region: rect(0, 99px 33px 50px);
|
||||
}
|
||||
|
||||
#button-delete:hover:active {
|
||||
-moz-image-region: rect(0 149px 33px 100px);
|
||||
}
|
||||
|
||||
#button-delete[disabled] {
|
||||
-moz-image-region: rect(0 199px 33px 150px) !important;
|
||||
}
|
||||
|
||||
#button-mark {
|
||||
-moz-image-region: rect(136px 49px 169px 0);
|
||||
}
|
||||
|
||||
#button-mark:hover {
|
||||
-moz-image-region: rect(136px 99px 169px 50px);
|
||||
}
|
||||
|
||||
#button-mark:hover:active {
|
||||
-moz-image-region: rect(136px 149px 169px 100px);
|
||||
}
|
||||
|
||||
#button-mark[disabled] {
|
||||
-moz-image-region: rect(136px 199px 169px 150px) !important;
|
||||
}
|
||||
|
||||
#button-junk {
|
||||
-moz-image-region: rect(544px 49px 577px 0);
|
||||
}
|
||||
|
||||
#button-junk:hover {
|
||||
-moz-image-region: rect(544px 99px 577px 50px);
|
||||
}
|
||||
|
||||
#button-junk:hover:active {
|
||||
-moz-image-region: rect(544px 149px 577px 100px);
|
||||
}
|
||||
|
||||
#button-junk[disabled="true"] {
|
||||
-moz-image-region: rect(544px 199px 577px 150px) !important;
|
||||
}
|
||||
|
||||
#button-print {
|
||||
list-style-image: url("chrome://communicator/skin/icons/btn1.gif");
|
||||
-moz-image-region: rect(34px 49px 67px 0);
|
||||
}
|
||||
|
||||
#button-print:hover {
|
||||
-moz-image-region: rect(34px 99px 67px 50px);
|
||||
}
|
||||
|
||||
#button-print:hover:active {
|
||||
-moz-image-region: rect(34px 149px 67px 100px);
|
||||
}
|
||||
|
||||
#button-print[disabled] {
|
||||
-moz-image-region: rect(34px 199px 67px 150px) !important;
|
||||
}
|
||||
|
||||
#button-stop {
|
||||
list-style-image: url("chrome://communicator/skin/icons/btn1.gif");
|
||||
-moz-image-region: rect(68px 49px 101px 0);
|
||||
}
|
||||
|
||||
#button-stop:hover {
|
||||
-moz-image-region: rect(68px 99px 101px 50px);
|
||||
}
|
||||
|
||||
#button-stop:hover:active {
|
||||
-moz-image-region: rect(68px 149px 101px 100px);
|
||||
}
|
||||
|
||||
#button-stop[disabled="true"] {
|
||||
-moz-image-region: rect(68px 199px 101px 150px) !important;
|
||||
}
|
||||
|
||||
/* ::::: message notification bar style rules ::::: */
|
||||
|
||||
.msgNotificationBar {
|
||||
border-bottom: 1px solid;
|
||||
-moz-border-bottom-colors: #000000;
|
||||
-moz-appearance: toolbox;
|
||||
background-color: #C7BC8F;
|
||||
color: black;
|
||||
}
|
||||
|
||||
.msgNotificationBarText {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#junkBarImage {
|
||||
list-style-image: url("chrome://messenger/skin/icons/junkBar.gif");
|
||||
}
|
||||
|
||||
#junkIcon {
|
||||
margin-left: 0.3ex;
|
||||
list-style-image: url("chrome://messenger/skin/icons/message-junk-other.gif");
|
||||
}
|
||||
|
||||
#remoteContentImage {
|
||||
list-style-image: url("chrome://messenger/skin/icons/remote-blocked.png");
|
||||
padding: 3px;
|
||||
}
|
Загрузка…
Ссылка в новой задаче