Bug 1497041 - Add dynamic CSS for tags to stylesheet. r=darktrojan,aceman

This commit is contained in:
Jorg K 2019-03-05 12:53:11 +01:00
Родитель 854b5cd72c
Коммит 919bb6d8fc
32 изменённых файлов: 241 добавлений и 3074 удалений

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

@ -15,6 +15,7 @@
var {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");
var {MailUtils} = ChromeUtils.import("resource:///modules/MailUtils.jsm");
var {PluralForm} = ChromeUtils.import("resource://gre/modules/PluralForm.jsm");
var {TagUtils} = ChromeUtils.import("resource:///modules/TagUtils.jsm");
var gCurrentFolder;
@ -219,6 +220,7 @@ SearchFolderDisplayWidget.prototype = {
function searchOnLoad() {
TagUtils.loadTagsIntoCSS(document);
initializeSearchWidgets();
initializeSearchWindowWidgets();
messenger = Cc["@mozilla.org/messenger;1"]

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

@ -7,6 +7,7 @@
<?xml-stylesheet href="chrome://messenger/content/bindings.css" type="text/css"?>
<?xml-stylesheet href="chrome://messenger/skin/searchDialog.css" type="text/css"?>
<?xml-stylesheet href="chrome://messenger/skin/folderPane.css" type="text/css"?>
<?xml-stylesheet href="chrome://messenger/skin/tagColors.css" type="text/css"?>
<?xml-stylesheet href="chrome://messenger/skin/folderMenus.css" type="text/css"?>
<!DOCTYPE window [

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

@ -6,7 +6,7 @@
/* global logException, Gloda */
var {MailServices} = ChromeUtils.import("resource:///modules/MailServices.jsm");
var {Windows8WindowFrameColor} = ChromeUtils.import("resource:///modules/Windows8WindowFrameColor.jsm");
var {TagUtils} = ChromeUtils.import("resource:///modules/TagUtils.jsm");
class MozFacetDate extends HTMLElement {
get build() {
@ -1534,7 +1534,7 @@ class MozFacetResultMessage extends HTMLElement {
let tagNode = document.createElement("span");
let color = MailServices.tags.getColorForKey(tag.key);
let textColor = "black";
if (!Windows8WindowFrameColor.isColorContrastEnough(color)) {
if (!TagUtils.isColorContrastEnough(color)) {
textColor = "white";
}
tagNode.setAttribute("class", "message-tag");

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

@ -17,7 +17,7 @@ var { StringBundle } = ChromeUtils.import("resource:///modules/StringBundle.js")
var { PluralForm } = ChromeUtils.import("resource://gre/modules/PluralForm.jsm");
var { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
var { MailServices } = ChromeUtils.import("resource:///modules/MailServices.jsm");
var { Windows8WindowFrameColor } = ChromeUtils.import("resource:///modules/Windows8WindowFrameColor.jsm");
var { TagUtils } = ChromeUtils.import("resource:///modules/TagUtils.jsm");
var {
logObject,
logException,
@ -99,7 +99,7 @@ const QueryExplanation = {
const tagNode = document.createElement("span");
const color = MailServices.tags.getColorForKey(tag.key);
let textColor = "black";
if (!Windows8WindowFrameColor.isColorContrastEnough(color)) {
if (!TagUtils.isColorContrastEnough(color)) {
textColor = "white";
}
tagNode.setAttribute("class", "message-tag");

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

@ -16,7 +16,7 @@ var {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");
var {MailUtils} = ChromeUtils.import("resource:///modules/MailUtils.jsm");
var {MailServices} = ChromeUtils.import("resource:///modules/MailServices.jsm");
var {DBViewWrapper} = ChromeUtils.import("resource:///modules/DBViewWrapper.jsm");
var { Windows8WindowFrameColor } = ChromeUtils.import("resource:///modules/Windows8WindowFrameColor.jsm");
var {TagUtils} = ChromeUtils.import("resource:///modules/TagUtils.jsm");
class MozMailHeaderfield extends MozXULElement {
connectedCallback() {
@ -76,7 +76,7 @@ class MozMailHeaderfieldTags extends MozXULElement {
let color = MailServices.tags.getColorForKey(tagsArray[i]);
let textColor = "black";
if (!Windows8WindowFrameColor.isColorContrastEnough(color)) {
if (!TagUtils.isColorContrastEnough(color)) {
textColor = "white";
}

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

@ -24,6 +24,7 @@ var {MailUtils} = ChromeUtils.import("resource:///modules/MailUtils.jsm");
var {PluralForm} = ChromeUtils.import("resource://gre/modules/PluralForm.jsm");
var {AppConstants} = ChromeUtils.import("resource://gre/modules/AppConstants.jsm");
var {AddonManager} = ChromeUtils.import("resource://gre/modules/AddonManager.jsm");
var {TagUtils} = ChromeUtils.import("resource:///modules/TagUtils.jsm");
var {BrowserToolboxProcess} = ChromeUtils.import("resource://devtools/client/framework/ToolboxProcess.jsm");
var {ScratchpadManager} = ChromeUtils.import("resource://devtools/client/scratchpad/scratchpad-manager.jsm");
@ -933,8 +934,11 @@ function ManageTags() {
function AddTagCallback(name, color) {
MailServices.tags.addTag(name, color, "");
let key = MailServices.tags.getKeyForTag(name);
TagUtils.addTagToAllDocumentSheets(key, color);
try {
ToggleMessageTag(MailServices.tags.getKeyForTag(name), true);
ToggleMessageTag(key, true);
} catch (ex) {
return false;
}

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

@ -6,6 +6,7 @@
#filter substitution
#define MAIN_WINDOW
<?xml-stylesheet href="chrome://messenger/skin/mailWindow1.css" type="text/css"?>
<?xml-stylesheet href="chrome://messenger/skin/tagColors.css" type="text/css"?>
<?xml-stylesheet href="chrome://gloda/content/glodacomplete.css" type="text/css"?>
<?xml-stylesheet href="chrome://messenger/content/bindings.css" type="text/css"?>
<?xml-stylesheet href="chrome://messenger/content/tabmail.css" type="text/css"?>

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

@ -36,6 +36,8 @@ var {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");
var {MailUtils} = ChromeUtils.import("resource:///modules/MailUtils.jsm");
var {AppConstants} = ChromeUtils.import("resource://gre/modules/AppConstants.jsm");
var {Color} = ChromeUtils.import("resource://gre/modules/Color.jsm");
var {TagUtils} = ChromeUtils.import("resource:///modules/TagUtils.jsm");
XPCOMUtils.defineLazyModuleGetters(this, {
LightweightThemeManager: "resource://gre/modules/LightweightThemeManager.jsm",
@ -423,6 +425,8 @@ function AutoConfigWizard(okCallback) {
* Called on startup to initialize various parts of the main window
*/
function OnLoadMessenger() {
TagUtils.loadTagsIntoCSS(document);
migrateMailnews();
// Rig up our TabsInTitlebar early so that we can catch any resize events.
TabsInTitlebar.init();

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

@ -10,7 +10,7 @@ var {
var { MsgHdrToMimeMessage } = ChromeUtils.import("resource:///modules/gloda/mimemsg.js");
var {DisplayNameUtils} = ChromeUtils.import("resource:///modules/DisplayNameUtils.jsm");
var {MailServices} = ChromeUtils.import("resource:///modules/MailServices.jsm");
var {Windows8WindowFrameColor} = ChromeUtils.import("resource:///modules/Windows8WindowFrameColor.jsm");
var {TagUtils} = ChromeUtils.import("resource:///modules/TagUtils.jsm");
var {
PluralStringFormatter,
@ -363,7 +363,7 @@ MultiMessageSummary.prototype = {
let tagNode = document.createElement("span");
let color = MailServices.tags.getColorForKey(tag.key);
let textColor = "black";
if (!Windows8WindowFrameColor.isColorContrastEnough(color)) {
if (!TagUtils.isColorContrastEnough(color)) {
textColor = "white";
}

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

@ -0,0 +1,112 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
const {MailServices} = ChromeUtils.import("resource:///modules/MailServices.jsm");
const {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");
const {Color} = ChromeUtils.import("resource://gre/modules/Color.jsm");
var EXPORTED_SYMBOLS = ["TagUtils"];
var TagUtils = {
loadTagsIntoCSS,
addTagToAllDocumentSheets,
isColorContrastEnough,
getColor,
};
function loadTagsIntoCSS(aDocument) {
let tagSheet = findTagColorSheet(aDocument);
let tagArray = MailServices.tags.getAllTags({});
for (let tag of tagArray) {
// tag.key is the internal key, like "$label1" for "Important".
// For user defined keys with non-ASCII characters, key is
// the MUTF-7 encoded name.
addTagToSheet(tag.key, tag.color, tagSheet);
}
}
function addTagToAllDocumentSheets(aKey, aColor) {
let windowList = Services.wm.getEnumerator("mail:3pane", true);
while (windowList.hasMoreElements()) {
let nextWin = windowList.getNext();
addTagToSheet(aKey, aColor, findTagColorSheet(nextWin.document));
}
windowList = Services.wm.getEnumerator("mailnews:search", true);
while (windowList.hasMoreElements()) {
let nextWin = windowList.getNext();
addTagToSheet(aKey, aColor, findTagColorSheet(nextWin.document));
}
}
function addTagToSheet(aKey, aColor, aSheet) {
if (!aSheet)
return;
// Add rules to sheet.
let selector = MailServices.tags.getSelectorForKey(aKey);
let ruleString1 = "treechildren::-moz-tree-row(" + selector +
", selected, focus) { background-color: " + aColor + " !important; }";
let ruleString2 = "treechildren::-moz-tree-cell-text(" + selector +
") { color: " + aColor + "; }";
let textColor = "black";
if (!isColorContrastEnough(aColor)) {
textColor = "white";
}
let ruleString3 = "treechildren::-moz-tree-cell-text(" + selector +
", selected, focus) { color: " + textColor + "; }";
try {
aSheet.insertRule(ruleString1, aSheet.cssRules.length);
aSheet.insertRule(ruleString2, aSheet.cssRules.length);
aSheet.insertRule(ruleString3, aSheet.cssRules.length);
} catch (ex) {
aSheet.ownerNode.addEventListener("load",
() => addTagToSheet(aKey, aColor, aSheet),
{ once: true });
}
}
function findTagColorSheet(aDocument) {
const cssUri = "chrome://messenger/skin/tagColors.css";
let tagSheet = null;
for (let sheet of aDocument.styleSheets) {
if (sheet.href == cssUri) {
tagSheet = sheet;
break;
}
}
if (!tagSheet) {
Cu.reportError("TagUtils.findTagColorSheet: tagColors.css not found");
}
return tagSheet;
}
// Here comes some stuff that was originally in Windows8WindowFrameColor.jsm.
/* Checks if black writing on 'aColor' background has enough contrast */
function isColorContrastEnough(aColor) {
let bgColor = getColor(aColor);
return new Color(...bgColor).isContrastRatioAcceptable(new Color(0, 0, 0));
}
function getColor(customizationColorHex, colorizationColorBalance) {
// Zero-pad the number just to make sure that it is 8 digits.
customizationColorHex = ("00000000" + customizationColorHex).substr(-8);
let customizationColorArray = customizationColorHex.match(/../g);
let [, fgR, fgG, fgB] = customizationColorArray.map(val => parseInt(val, 16));
if (colorizationColorBalance == undefined) {
colorizationColorBalance = 78;
}
// Window frame base color when Color Intensity is at 0, see bug 1004576.
let frameBaseColor = 217;
let alpha = colorizationColorBalance / 100;
// Alpha-blend the foreground color with the frame base color.
let r = Math.round(fgR * alpha + frameBaseColor * (1 - alpha));
let g = Math.round(fgG * alpha + frameBaseColor * (1 - alpha));
let b = Math.round(fgB * alpha + frameBaseColor * (1 - alpha));
return [r, g, b];
}

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

@ -6,10 +6,8 @@
this.EXPORTED_SYMBOLS = ["Windows8WindowFrameColor"];
if ("@mozilla.org/windows-registry-key;1" in Cc) {
var {WindowsRegistry} = ChromeUtils.import("resource://gre/modules/WindowsRegistry.jsm");
}
const {Color} = ChromeUtils.import("resource://gre/modules/Color.jsm");
const {WindowsRegistry} = ChromeUtils.import("resource://gre/modules/WindowsRegistry.jsm");
const {TagUtils} = ChromeUtils.import("resource:///modules/TagUtils.jsm");
var Windows8WindowFrameColor = {
_windowFrameColor: null,
@ -32,34 +30,7 @@ var Windows8WindowFrameColor = {
let colorizationColorBalance = WindowsRegistry.readRegKey(HKCU, dwmKey,
"ColorizationColorBalance");
return this._windowFrameColor = this.getColor(customizationColorHex,
colorizationColorBalance);
},
/* Checks if black writing on 'aColor' background has enough contrast */
isColorContrastEnough(aColor) {
let bgColor = this.getColor(aColor);
return new Color(...bgColor).isContrastRatioAcceptable(new Color(0, 0, 0));
},
getColor(customizationColorHex, colorizationColorBalance) {
// Zero-pad the number just to make sure that it is 8 digits.
customizationColorHex = ("00000000" + customizationColorHex).substr(-8);
let customizationColorArray = customizationColorHex.match(/../g);
let [, fgR, fgG, fgB] = customizationColorArray.map(val => parseInt(val, 16));
if (colorizationColorBalance == undefined) {
colorizationColorBalance = 78;
}
// Window frame base color when Color Intensity is at 0, see bug 1004576.
let frameBaseColor = 217;
let alpha = colorizationColorBalance / 100;
// Alpha-blend the foreground color with the frame base color.
let r = Math.round(fgR * alpha + frameBaseColor * (1 - alpha));
let g = Math.round(fgG * alpha + frameBaseColor * (1 - alpha));
let b = Math.round(fgB * alpha + frameBaseColor * (1 - alpha));
return [r, g, b];
return this._windowFrameColor = TagUtils.getColor(customizationColorHex,
colorizationColorBalance);
},
};

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

@ -20,6 +20,7 @@ EXTRA_JS_MODULES += [
'SearchSpec.jsm',
'SessionStoreManager.jsm',
'SummaryFrameManager.jsm',
'TagUtils.jsm',
'TBDistCustomizer.jsm',
'Windows8WindowFrameColor.jsm',
]

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

@ -8,6 +8,7 @@
/* import-globals-from ../../../../toolkit/mozapps/preferences/fontbuilder.js */
/* import-globals-from preferences.js */
/* import-globals-from subdialogs.js */
var {TagUtils} = ChromeUtils.import("resource:///modules/TagUtils.jsm");
document.getElementById("paneDisplay")
.addEventListener("paneload", function() { gDisplayPane.init(); });
@ -304,7 +305,11 @@ var gDisplayPane = {
function addTagCallback(aName, aColor) {
MailServices.tags.addTag(aName, aColor, "");
var item = gDisplayPane.appendTagItem(aName, MailServices.tags.getKeyForTag(aName), aColor);
// Add to style sheet.
let key = MailServices.tags.getKeyForTag(aName);
TagUtils.addTagToAllDocumentSheets(key, aColor);
var item = gDisplayPane.appendTagItem(aName, key, aColor);
var tagListBox = document.getElementById("tagList");
tagListBox.ensureElementIsVisible(item);
tagListBox.selectItem(item);
@ -313,13 +318,19 @@ function addTagCallback(aName, aColor) {
function editTagCallback() {
// update the values of the selected item
var tagListEl = document.getElementById("tagList");
var index = tagListEl.selectedIndex;
if (index >= 0) {
var tagElToEdit = tagListEl.getItemAtIndex(index);
var key = tagElToEdit.getAttribute("value");
// update the color and label elements
tagElToEdit.setAttribute("label", MailServices.tags.getTagForKey(key));
tagElToEdit.style.color = MailServices.tags.getColorForKey(key);
}
let tagListEl = document.getElementById("tagList");
let index = tagListEl.selectedIndex;
if (index < 0)
return;
let tagElToEdit = tagListEl.getItemAtIndex(index);
let key = tagElToEdit.getAttribute("value");
let color = MailServices.tags.getColorForKey(key);
// update the color and label elements
tagElToEdit.setAttribute("label", MailServices.tags.getTagForKey(key));
tagElToEdit.style.color = color;
// Add to style sheet. We simply add the new color, the rule is added at the
// end and will overrule the previous rule.
TagUtils.addTagToAllDocumentSheets(key, color);
}

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

@ -34,7 +34,6 @@ classic.jar:
skin/classic/messenger/attachmentList.css (mail/attachmentList.css)
skin/classic/messenger/imageFilters.svg (mail/imageFilters.svg)
skin/classic/messenger/mailWindow1.css (mail/mailWindow1.css)
skin/classic/messenger/tagColors.css (mail/tagColors.css)
skin/classic/messenger/messageWindow.css (mail/messageWindow.css)
skin/classic/messenger/searchBox.css (mail/searchBox.css)
skin/classic/messenger/junkMail.css (mail/junkMail.css)

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

@ -12,7 +12,6 @@
@import url("chrome://messenger/skin/primaryToolbar.css");
@import url("chrome://messenger/skin/folderMenus.css");
@import url("chrome://messenger/skin/folderPane.css");
@import url("chrome://messenger/skin/tagColors.css");
@import url("chrome://messenger/skin/messageIcons.css");
@import url("chrome://messenger/skin/shared/mailWindow1.css");

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

@ -7,7 +7,6 @@
======================================================================= */
@import url("chrome://messenger/skin/");
@import url("chrome://messenger/skin/tagColors.css");
@import url("chrome://messenger/skin/messageIcons.css");
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");

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

@ -1,725 +0,0 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
/* ::::: thread labels decoration ::::: */
/* There are 10x7 color definitions (size of the color picker used)
times 2 (2 style definitions for each color) + 2 general black
and white color definitions.
The color definitions can be in the following formats:
color: red;
color: #FF0000;
color: rgb(128, 0, 0);
*/
treechildren::-moz-tree-cell-text(lc-FFFFFF), .lc-FFFFFF:not([_moz-menuactive]) {
color: #FFFFFF;
}
treechildren::-moz-tree-row(lc-FFFFFF, selected, focus), .blc-FFFFFF {
background-color: #FFFFFF !important;
}
.blc-FFFFFF {
border-color: #FFFFFF;
}
treechildren::-moz-tree-cell-text(lc-CCCCCC), .lc-CCCCCC:not([_moz-menuactive]) {
color: #CCCCCC;
}
treechildren::-moz-tree-row(lc-CCCCCC, selected, focus), .blc-CCCCCC {
background-color: #CCCCCC !important;
}
.blc-CCCCCC {
border-color: #CCCCCC;
}
treechildren::-moz-tree-cell-text(lc-C0C0C0), .lc-C0C0C0:not([_moz-menuactive]) {
color: #C0C0C0;
}
treechildren::-moz-tree-row(lc-C0C0C0, selected, focus), .blc-C0C0C0 {
background-color: #C0C0C0 !important;
}
.blc-C0C0C0 {
border-color: #C0C0C0;
}
treechildren::-moz-tree-cell-text(lc-999999), .lc-999999:not([_moz-menuactive]) {
color: #999999;
}
treechildren::-moz-tree-row(lc-999999, selected, focus), .blc-999999 {
background-color: #999999 !important;
}
.blc-999999 {
border-color: #999999;
}
treechildren::-moz-tree-cell-text(lc-666666), .lc-666666:not([_moz-menuactive]) {
color: #666666;
}
treechildren::-moz-tree-row(lc-666666, selected, focus), .blc-666666 {
background-color: #666666 !important;
}
.blc-666666 {
border-color: #666666;
}
treechildren::-moz-tree-cell-text(lc-333333), .lc-333333:not([_moz-menuactive]) {
color: #333333;
}
treechildren::-moz-tree-row(lc-333333, selected, focus), .blc-333333 {
background-color: #333333 !important;
}
.blc-333333 {
border-color: #333333;
}
treechildren::-moz-tree-cell-text(lc-000000), .lc-000000:not([_moz-menuactive]) {
color: #000000;
}
treechildren::-moz-tree-row(lc-000000, selected, focus), .blc-000000 {
/* our assumed color is #111111 and !important is needed to override it */
color: #FFFFFF !important;
text-shadow: 0 1px 0 rgba(46,52,54,0.4) !important; /* Tango Alumninum 6 */
background-color: #000000 !important;
}
.blc-000000 {
border-color: #000000;
}
treechildren::-moz-tree-cell-text(lc-FFCCCC), .lc-FFCCCC:not([_moz-menuactive]) {
color: #FFCCCC;
}
treechildren::-moz-tree-row(lc-FFCCCC, selected, focus), .blc-FFCCCC {
background-color: #FFCCCC !important;
}
.blc-FFCCCC {
border-color: #FFCCCC;
}
treechildren::-moz-tree-cell-text(lc-FF6666), .lc-FF6666:not([_moz-menuactive]) {
color: #FF6666;
}
treechildren::-moz-tree-row(lc-FF6666, selected, focus), .blc-FF6666 {
background-color: #FF6666 !important;
}
.blc-FF6666 {
border-color: #FF6666;
}
treechildren::-moz-tree-cell-text(lc-FF0000), .lc-FF0000:not([_moz-menuactive]) {
color: #FF0000;
}
treechildren::-moz-tree-row(lc-FF0000, selected, focus), .blc-FF0000 {
background-color: #FF0000 !important;
}
.blc-FF0000 {
border-color: #FF0000;
}
treechildren::-moz-tree-cell-text(lc-CC0000), .lc-CC0000:not([_moz-menuactive]) {
color: #CC0000;
}
treechildren::-moz-tree-row(lc-CC0000, selected, focus), .blc-CC0000 {
background-color: #CC0000 !important;
}
.blc-CC0000 {
border-color: #CC0000;
}
treechildren::-moz-tree-cell-text(lc-990000), .lc-990000:not([_moz-menuactive]) {
color: #990000;
}
treechildren::-moz-tree-row(lc-990000, selected, focus), .blc-990000 {
background-color: #990000 !important;
}
.blc-990000 {
border-color: #990000;
}
treechildren::-moz-tree-cell-text(lc-660000), .lc-660000:not([_moz-menuactive]) {
color: #660000;
}
treechildren::-moz-tree-row(lc-660000, selected, focus), .blc-660000 {
background-color: #660000 !important;
}
.blc-660000 {
border-color: #660000;
}
treechildren::-moz-tree-cell-text(lc-330000), .lc-330000:not([_moz-menuactive]) {
color: #330000;
}
treechildren::-moz-tree-row(lc-330000, selected, focus), .blc-330000 {
background-color: #330000 !important;
}
.blc-330000 {
border-color: #330000;
}
treechildren::-moz-tree-cell-text(lc-FFCC99), .lc-FFCC99:not([_moz-menuactive]) {
color: #FFCC99;
}
treechildren::-moz-tree-row(lc-FFCC99, selected, focus), .blc-FFCC99 {
background-color: #FFCC99 !important;
}
.blc-FFCC99 {
border-color: #FFCC99;
}
treechildren::-moz-tree-cell-text(lc-FF9966), .lc-FF9966:not([_moz-menuactive]) {
color: #FF9966;
}
treechildren::-moz-tree-row(lc-FF9966, selected, focus), .blc-FF9966 {
background-color: #FF9966 !important;
}
.blc-FF9966 {
border-color: #FF9966;
}
treechildren::-moz-tree-cell-text(lc-FF9900), .lc-FF9900:not([_moz-menuactive]) {
color: #FF9900;
}
treechildren::-moz-tree-row(lc-FF9900, selected, focus), .blc-FF9900 {
background-color: #FF9900 !important;
}
.blc-FF9900 {
border-color: #FF9900;
}
treechildren::-moz-tree-cell-text(lc-FF6600), .lc-FF6600:not([_moz-menuactive]) {
color: #FF6600;
}
treechildren::-moz-tree-row(lc-FF6600, selected, focus), .blc-FF6600 {
background-color: #FF6600 !important;
}
.blc-FF6600 {
border-color: #FF6600;
}
treechildren::-moz-tree-cell-text(lc-CC6600), .lc-CC6600:not([_moz-menuactive]) {
color: #CC6600;
}
treechildren::-moz-tree-row(lc-CC6600, selected, focus), .blc-CC6600 {
background-color: #CC6600 !important;
}
.blc-CC6600 {
border-color: #CC6600;
}
treechildren::-moz-tree-cell-text(lc-993300), .lc-993300:not([_moz-menuactive]) {
color: #993300;
}
treechildren::-moz-tree-row(lc-993300, selected, focus), .blc-993300 {
background-color: #993300 !important;
}
.blc-993300 {
border-color: #993300;
}
treechildren::-moz-tree-cell-text(lc-663300), .lc-663300:not([_moz-menuactive]) {
color: #663300;
}
treechildren::-moz-tree-row(lc-663300, selected, focus), .blc-663300 {
background-color: #663300 !important;
}
.blc-663300 {
border-color: #663300;
}
treechildren::-moz-tree-cell-text(lc-FFFF99), .lc-FFFF99:not([_moz-menuactive]) {
color: #FFFF99;
}
treechildren::-moz-tree-row(lc-FFFF99, selected, focus), .blc-FFFF99 {
background-color: #FFFF99 !important;
}
.blc-FFFF99 {
border-color: #FFFF99;
}
treechildren::-moz-tree-cell-text(lc-FFFF66), .lc-FFFF66:not([_moz-menuactive]) {
color: #FFFF66;
}
treechildren::-moz-tree-row(lc-FFFF66, selected, focus), .blc-FFFF66 {
background-color: #FFFF66 !important;
}
.blc-FFFF66 {
border-color: #FFFF66;
}
treechildren::-moz-tree-cell-text(lc-FFCC66), .lc-FFCC66:not([_moz-menuactive]) {
color: #FFCC66;
}
treechildren::-moz-tree-row(lc-FFCC66, selected, focus), .blc-FFCC66 {
background-color: #FFCC66 !important;
}
.blc-FFCC66 {
border-color: #FFCC66;
}
treechildren::-moz-tree-cell-text(lc-FFCC33), .lc-FFCC33:not([_moz-menuactive]) {
color: #FFCC33;
}
treechildren::-moz-tree-row(lc-FFCC33, selected, focus), .blc-FFCC33 {
background-color: #FFCC33 !important;
}
.blc-FFCC33 {
border-color: #FFCC33;
}
treechildren::-moz-tree-cell-text(lc-CC9933), .lc-CC9933:not([_moz-menuactive]) {
color: #CC9933;
}
treechildren::-moz-tree-row(lc-CC9933, selected, focus), .blc-CC9933 {
background-color: #CC9933 !important;
}
.blc-CC9933 {
border-color: #CC9933;
}
treechildren::-moz-tree-cell-text(lc-996633), .lc-996633:not([_moz-menuactive]) {
color: #996633;
}
treechildren::-moz-tree-row(lc-996633, selected, focus), .blc-996633 {
background-color: #996633 !important;
}
.blc-996633 {
border-color: #996633;
}
treechildren::-moz-tree-cell-text(lc-663333), .lc-663333:not([_moz-menuactive]) {
color: #663333;
}
treechildren::-moz-tree-row(lc-663333, selected, focus), .blc-663333 {
background-color: #663333 !important;
}
.blc-663333 {
border-color: #663333;
}
treechildren::-moz-tree-cell-text(lc-FFFFCC), .lc-FFFFCC:not([_moz-menuactive]) {
color: #FFFFCC;
}
treechildren::-moz-tree-row(lc-FFFFCC, selected, focus), .blc-FFFFCC {
background-color: #FFFFCC !important;
}
.blc-FFFFCC {
border-color: #FFFFCC;
}
treechildren::-moz-tree-cell-text(lc-FFFF33), .lc-FFFF33:not([_moz-menuactive]) {
color: #FFFF33;
}
treechildren::-moz-tree-row(lc-FFFF33, selected, focus), .blc-FFFF33 {
background-color: #FFFF33 !important;
}
.blc-FFFF33 {
border-color: #FFFF33;
}
treechildren::-moz-tree-cell-text(lc-FFFF00), .lc-FFFF00:not([_moz-menuactive]) {
color: #FFFF00;
}
treechildren::-moz-tree-row(lc-FFFF00, selected, focus), .blc-FFFF00 {
background-color: #FFFF00 !important;
}
.blc-FFFF00 {
border-color: #FFFF00;
}
treechildren::-moz-tree-cell-text(lc-FFCC00), .lc-FFCC00:not([_moz-menuactive]) {
color: #FFCC00;
}
treechildren::-moz-tree-row(lc-FFCC00, selected, focus), .blc-FFCC00 {
background-color: #FFCC00 !important;
}
.blc-FFCC00 {
border-color: #FFCC00;
}
treechildren::-moz-tree-cell-text(lc-999900), .lc-999900:not([_moz-menuactive]) {
color: #999900;
}
treechildren::-moz-tree-row(lc-999900, selected, focus), .blc-999900 {
background-color: #999900 !important;
}
.blc-999900 {
border-color: #999900;
}
treechildren::-moz-tree-cell-text(lc-666600), .lc-666600:not([_moz-menuactive]) {
color: #666600;
}
treechildren::-moz-tree-row(lc-666600, selected, focus), .blc-666600 {
background-color: #666600 !important;
}
.blc-666600 {
border-color: #666600;
}
treechildren::-moz-tree-cell-text(lc-333300), .lc-333300:not([_moz-menuactive]) {
color: #333300;
}
treechildren::-moz-tree-row(lc-333300, selected, focus), .blc-333300 {
background-color: #333300 !important;
}
.blc-333300 {
border-color: #333300;
}
treechildren::-moz-tree-cell-text(lc-99FF99), .lc-99FF99:not([_moz-menuactive]) {
color: #99FF99;
}
treechildren::-moz-tree-row(lc-99FF99, selected, focus), .blc-99FF99 {
background-color: #99FF99 !important;
}
.blc-99FF99 {
border-color: #99FF99;
}
treechildren::-moz-tree-cell-text(lc-66FF99), .lc-66FF99:not([_moz-menuactive]) {
color: #66FF99;
}
treechildren::-moz-tree-row(lc-66FF99, selected, focus), .blc-66FF99 {
background-color: #66FF99 !important;
}
.blc-66FF99 {
border-color: #66FF99;
}
treechildren::-moz-tree-cell-text(lc-33FF33), .lc-33FF33:not([_moz-menuactive]) {
color: #33FF33;
}
treechildren::-moz-tree-row(lc-33FF33, selected, focus), .blc-33FF33 {
background-color: #33FF33 !important;
}
.blc-33FF33 {
border-color: #33FF33;
}
treechildren::-moz-tree-cell-text(lc-33CC00), .lc-33CC00:not([_moz-menuactive]) {
color: #33CC00;
}
treechildren::-moz-tree-row(lc-33CC00, selected, focus), .blc-33CC00 {
background-color: #33CC00 !important;
}
.blc-33CC00 {
border-color: #33CC00;
}
treechildren::-moz-tree-cell-text(lc-009900), .lc-009900:not([_moz-menuactive]) {
color: #009900;
}
treechildren::-moz-tree-row(lc-009900, selected, focus), .blc-009900 {
background-color: #009900 !important;
}
.blc-009900 {
border-color: #009900;
}
treechildren::-moz-tree-cell-text(lc-006600), .lc-006600:not([_moz-menuactive]) {
color: #006600;
}
treechildren::-moz-tree-row(lc-006600, selected, focus), .blc-006600 {
background-color: #006600 !important;
}
.blc-006600 {
border-color: #006600;
}
treechildren::-moz-tree-cell-text(lc-003300), .lc-003300:not([_moz-menuactive]) {
color: #003300;
}
treechildren::-moz-tree-row(lc-003300, selected, focus), .blc-003300 {
background-color: #003300 !important;
}
.blc-003300 {
border-color: #003300;
}
treechildren::-moz-tree-cell-text(lc-99FFFF), .lc-99FFFF:not([_moz-menuactive]) {
color: #99FFFF;
}
treechildren::-moz-tree-row(lc-99FFFF, selected, focus), .blc-99FFFF {
background-color: #99FFFF !important;
}
.blc-99FFFF {
border-color: #99FFFF;
}
treechildren::-moz-tree-cell-text(lc-33FFFF), .lc-33FFFF:not([_moz-menuactive]) {
color: #33FFFF;
}
treechildren::-moz-tree-row(lc-33FFFF, selected, focus), .blc-33FFFF {
background-color: #33FFFF !important;
}
.blc-33FFFF {
border-color: #33FFFF;
}
treechildren::-moz-tree-cell-text(lc-66CCCC), .lc-66CCCC:not([_moz-menuactive]) {
color: #66CCCC;
}
treechildren::-moz-tree-row(lc-66CCCC, selected, focus), .blc-66CCCC {
background-color: #66CCCC !important;
}
.blc-66CCCC {
border-color: #66CCCC;
}
treechildren::-moz-tree-cell-text(lc-00CCCC), .lc-00CCCC:not([_moz-menuactive]) {
color: #00CCCC;
}
treechildren::-moz-tree-row(lc-00CCCC, selected, focus), .blc-00CCCC {
background-color: #00CCCC !important;
}
.blc-00CCCC {
border-color: #00CCCC;
}
treechildren::-moz-tree-cell-text(lc-339999), .lc-339999:not([_moz-menuactive]) {
color: #339999;
}
treechildren::-moz-tree-row(lc-339999, selected, focus), .blc-339999 {
background-color: #339999 !important;
}
.blc-339999 {
border-color: #339999;
}
treechildren::-moz-tree-cell-text(lc-336666), .lc-336666:not([_moz-menuactive]) {
color: #336666;
}
treechildren::-moz-tree-row(lc-336666, selected, focus), .blc-336666 {
background-color: #336666 !important;
}
.blc-336666 {
border-color: #336666;
}
treechildren::-moz-tree-cell-text(lc-003333), .lc-003333:not([_moz-menuactive]) {
color: #003333;
}
treechildren::-moz-tree-row(lc-003333, selected, focus), .blc-003333 {
background-color: #003333 !important;
}
.blc-003333 {
border-color: #003333;
}
treechildren::-moz-tree-cell-text(lc-CCFFFF), .lc-CCFFFF:not([_moz-menuactive]) {
color: #CCFFFF;
}
treechildren::-moz-tree-row(lc-CCFFFF, selected, focus), .blc-CCFFFF {
background-color: #CCFFFF !important;
}
.blc-CCFFFF {
border-color: #CCFFFF;
}
treechildren::-moz-tree-cell-text(lc-66FFFF), .lc-66FFFF:not([_moz-menuactive]) {
color: #66FFFF;
}
treechildren::-moz-tree-row(lc-66FFFF, selected, focus), .blc-66FFFF {
background-color: #66FFFF !important;
}
.blc-66FFFF {
border-color: #66FFFF;
}
treechildren::-moz-tree-cell-text(lc-33CCFF), .lc-33CCFF:not([_moz-menuactive]) {
color: #33CCFF;
}
treechildren::-moz-tree-row(lc-33CCFF, selected, focus), .blc-33CCFF {
background-color: #33CCFF !important;
}
.blc-33CCFF {
border-color: #33CCFF;
}
treechildren::-moz-tree-cell-text(lc-3366FF), .lc-3366FF:not([_moz-menuactive]) {
color: #3366FF;
}
treechildren::-moz-tree-row(lc-3366FF, selected, focus), .blc-3366FF {
background-color: #3366FF !important;
}
.blc-3366FF {
border-color: #3366FF;
}
treechildren::-moz-tree-cell-text(lc-3333FF), .lc-3333FF:not([_moz-menuactive]) {
color: #3333FF;
}
treechildren::-moz-tree-row(lc-3333FF, selected, focus), .blc-3333FF {
background-color: #3333FF !important;
}
.blc-3333FF {
border-color: #3333FF;
}
treechildren::-moz-tree-cell-text(lc-000099), .lc-000099:not([_moz-menuactive]) {
color: #000099;
}
treechildren::-moz-tree-row(lc-000099, selected, focus), .blc-000099 {
background-color: #000099 !important;
}
.blc-000099 {
border-color: #000099;
}
treechildren::-moz-tree-cell-text(lc-000066), .lc-000066:not([_moz-menuactive]) {
color: #000066;
}
treechildren::-moz-tree-row(lc-000066, selected, focus), .blc-000066 {
background-color: #000066 !important;
}
.blc-000066 {
border-color: #000066;
}
treechildren::-moz-tree-cell-text(lc-CCCCFF), .lc-CCCCFF:not([_moz-menuactive]) {
color: #CCCCFF;
}
treechildren::-moz-tree-row(lc-CCCCFF, selected, focus), .blc-CCCCFF {
background-color: #CCCCFF !important;
}
.blc-CCCCFF {
border-color: #CCCCFF;
}
treechildren::-moz-tree-cell-text(lc-9999FF), .lc-9999FF:not([_moz-menuactive]) {
color: #9999FF;
}
treechildren::-moz-tree-row(lc-9999FF, selected, focus), .blc-9999FF {
background-color: #9999FF !important;
}
.blc-9999FF {
border-color: #9999FF;
}
treechildren::-moz-tree-cell-text(lc-6666CC), .lc-6666CC:not([_moz-menuactive]) {
color: #6666CC;
}
treechildren::-moz-tree-row(lc-6666CC, selected, focus), .blc-6666CC {
background-color: #6666CC !important;
}
.blc-6666CC {
border-color: #6666CC;
}
treechildren::-moz-tree-cell-text(lc-6633FF), .lc-6633FF:not([_moz-menuactive]) {
color: #6633FF;
}
treechildren::-moz-tree-row(lc-6633FF, selected, focus), .blc-6633FF {
background-color: #6633FF !important;
}
.blc-6633FF {
border-color: #6633FF;
}
treechildren::-moz-tree-cell-text(lc-6600CC), .lc-6600CC:not([_moz-menuactive]) {
color: #6600CC;
}
treechildren::-moz-tree-row(lc-6600CC, selected, focus), .blc-6600CC {
background-color: #6600CC !important;
}
.blc-6600CC {
border-color: #6600CC;
}
treechildren::-moz-tree-cell-text(lc-333399), .lc-333399:not([_moz-menuactive]) {
color: #333399;
}
treechildren::-moz-tree-row(lc-333399, selected, focus), .blc-333399 {
background-color: #333399 !important;
}
.blc-333399 {
border-color: #333399;
}
treechildren::-moz-tree-cell-text(lc-330099), .lc-330099:not([_moz-menuactive]) {
color: #330099;
}
treechildren::-moz-tree-row(lc-330099, selected, focus), .blc-330099 {
background-color: #330099 !important;
}
.blc-330099 {
border-color: #330099;
}
treechildren::-moz-tree-cell-text(lc-FFCCFF), .lc-FFCCFF:not([_moz-menuactive]) {
color: #FFCCFF;
}
treechildren::-moz-tree-row(lc-FFCCFF, selected, focus), .blc-FFCCFF {
background-color: #FFCCFF !important;
}
.blc-FFCCFF {
border-color: #FFCCFF;
}
treechildren::-moz-tree-cell-text(lc-FF99FF), .lc-FF99FF:not([_moz-menuactive]) {
color: #FF99FF;
}
treechildren::-moz-tree-row(lc-FF99FF, selected, focus), .blc-FF99FF {
background-color: #FF99FF !important;
}
.blc-FF99FF {
border-color: #FF99FF;
}
treechildren::-moz-tree-cell-text(lc-CC66CC), .lc-CC66CC:not([_moz-menuactive]) {
color: #CC66CC;
}
treechildren::-moz-tree-row(lc-CC66CC, selected, focus), .blc-CC66CC {
background-color: #CC66CC !important;
}
.blc-CC66CC {
border-color: #CC66CC;
}
treechildren::-moz-tree-cell-text(lc-CC33CC), .lc-CC33CC:not([_moz-menuactive]) {
color: #CC33CC;
}
treechildren::-moz-tree-row(lc-CC33CC, selected, focus), .blc-CC33CC {
background-color: #CC33CC !important;
}
.blc-CC33CC {
border-color: #CC33CC;
}
treechildren::-moz-tree-cell-text(lc-993399), .lc-993399:not([_moz-menuactive]) {
color: #993399;
}
treechildren::-moz-tree-row(lc-993399, selected, focus), .blc-993399 {
background-color: #993399 !important;
}
.blc-993399 {
border-color: #993399;
}
treechildren::-moz-tree-cell-text(lc-663366), .lc-663366:not([_moz-menuactive]) {
color: #663366;
}
treechildren::-moz-tree-row(lc-663366, selected, focus), .blc-663366 {
background-color: #663366 !important;
}
.blc-663366 {
border-color: #663366;
}
treechildren::-moz-tree-cell-text(lc-330033), .lc-330033:not([_moz-menuactive]) {
color: #330033;
}
treechildren::-moz-tree-row(lc-330033, selected, focus), .blc-330033 {
background-color: #330033 !important;
}
.blc-330033 {
border-color: #330033;
}
treechildren::-moz-tree-cell-text(lc-white, selected, focus) {
color: #FFFFFF;
}
treechildren::-moz-tree-cell-text(lc-black, selected, focus), .blc-black {
color: #000000;
}

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

@ -40,7 +40,6 @@ classic.jar:
skin/classic/messenger/msgSelectOffline.css (mail/msgSelectOffline.css)
skin/classic/messenger/mailWindow1.css (mail/mailWindow1.css)
skin/classic/messenger/searchBox.css (mail/searchBox.css)
skin/classic/messenger/tagColors.css (mail/tagColors.css)
skin/classic/messenger/junkMail.css (mail/junkMail.css)
skin/classic/messenger/filefield.css (mail/filefield.css)
skin/classic/messenger/folderMenus.css (mail/folderMenus.css)

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

@ -12,7 +12,6 @@
@import url("chrome://messenger/skin/primaryToolbar.css");
@import url("chrome://messenger/skin/folderMenus.css");
@import url("chrome://messenger/skin/folderPane.css");
@import url("chrome://messenger/skin/tagColors.css");
@import url("chrome://messenger/skin/messageIcons.css");
@import url("chrome://messenger/skin/shared/mailWindow1.css");

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

@ -7,7 +7,6 @@
======================================================================= */
@import url("chrome://messenger/skin/");
@import url("chrome://messenger/skin/tagColors.css");
@import url("chrome://messenger/skin/messageIcons.css");
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");

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

@ -1,725 +0,0 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
/* ::::: thread labels decoration ::::: */
/* There are 10x7 color definitions (size of the color picker used)
times 2 (2 style definitions for each color) + 2 general black
and white color definitions.
The color definitions can be in the following formats:
color: red;
color: #FF0000;
color: rgb(128, 0, 0);
*/
treechildren::-moz-tree-cell-text(lc-FFFFFF), .lc-FFFFFF:not([_moz-menuactive]) {
color: #FFFFFF
}
treechildren::-moz-tree-row(lc-FFFFFF, selected, focus), .blc-FFFFFF {
background-color: #FFFFFF !important;
}
.blc-FFFFFF {
border-color: #FFFFFF;
}
treechildren::-moz-tree-cell-text(lc-CCCCCC), .lc-CCCCCC:not([_moz-menuactive]) {
color: #CCCCCC
}
treechildren::-moz-tree-row(lc-CCCCCC, selected, focus), .blc-CCCCCC {
background-color: #CCCCCC !important;
}
.blc-CCCCCC {
border-color: #CCCCCC;
}
treechildren::-moz-tree-cell-text(lc-C0C0C0), .lc-C0C0C0:not([_moz-menuactive]) {
color: #C0C0C0
}
treechildren::-moz-tree-row(lc-C0C0C0, selected, focus), .blc-C0C0C0 {
background-color: #C0C0C0 !important;
}
.blc-C0C0C0 {
border-color: #C0C0C0;
}
treechildren::-moz-tree-cell-text(lc-999999), .lc-999999:not([_moz-menuactive]) {
color: #999999
}
treechildren::-moz-tree-row(lc-999999, selected, focus), .blc-999999 {
background-color: #999999 !important;
}
.blc-999999 {
border-color: #999999;
}
treechildren::-moz-tree-cell-text(lc-666666), .lc-666666:not([_moz-menuactive]) {
color: #666666
}
treechildren::-moz-tree-row(lc-666666, selected, focus), .blc-666666 {
background-color: #666666 !important;
}
.blc-666666 {
border-color: #666666;
}
treechildren::-moz-tree-cell-text(lc-333333), .lc-333333:not([_moz-menuactive]) {
color: #333333
}
treechildren::-moz-tree-row(lc-333333, selected, focus), .blc-333333 {
background-color: #333333 !important;
}
.blc-333333 {
border-color: #333333;
}
treechildren::-moz-tree-cell-text(lc-000000), .lc-000000:not([_moz-menuactive]) {
color: #000000
}
treechildren::-moz-tree-row(lc-000000, selected, focus), .blc-000000 {
/* our assumed color is #111111 and !important is needed to override it */
color: #FFFFFF !important;
text-shadow: 0 1px 0 rgba(46,52,54,0.4) !important; /* Tango Alumninum 6 */
background-color: #000000 !important;
}
.blc-000000 {
border-color: #000000;
}
treechildren::-moz-tree-cell-text(lc-FFCCCC), .lc-FFCCCC:not([_moz-menuactive]) {
color: #FFCCCC
}
treechildren::-moz-tree-row(lc-FFCCCC, selected, focus), .blc-FFCCCC {
background-color: #FFCCCC !important;
}
.blc-FFCCCC {
border-color: #FFCCCC;
}
treechildren::-moz-tree-cell-text(lc-FF6666), .lc-FF6666:not([_moz-menuactive]) {
color: #FF6666
}
treechildren::-moz-tree-row(lc-FF6666, selected, focus), .blc-FF6666 {
background-color: #FF6666 !important;
}
.blc-FF6666 {
border-color: #FF6666;
}
treechildren::-moz-tree-cell-text(lc-FF0000), .lc-FF0000:not([_moz-menuactive]) {
color: #FF0000
}
treechildren::-moz-tree-row(lc-FF0000, selected, focus), .blc-FF0000 {
background-color: #FF0000 !important;
}
.blc-FF0000 {
border-color: #FF0000;
}
treechildren::-moz-tree-cell-text(lc-CC0000), .lc-CC0000:not([_moz-menuactive]) {
color: #CC0000
}
treechildren::-moz-tree-row(lc-CC0000, selected, focus), .blc-CC0000 {
background-color: #CC0000 !important;
}
.blc-CC0000 {
border-color: #CC0000;
}
treechildren::-moz-tree-cell-text(lc-990000), .lc-990000:not([_moz-menuactive]) {
color: #990000
}
treechildren::-moz-tree-row(lc-990000, selected, focus), .blc-990000 {
background-color: #990000 !important;
}
.blc-990000 {
border-color: #990000;
}
treechildren::-moz-tree-cell-text(lc-660000), .lc-660000:not([_moz-menuactive]) {
color: #660000
}
treechildren::-moz-tree-row(lc-660000, selected, focus), .blc-660000 {
background-color: #660000 !important;
}
.blc-660000 {
border-color: #660000;
}
treechildren::-moz-tree-cell-text(lc-330000), .lc-330000:not([_moz-menuactive]) {
color: #330000
}
treechildren::-moz-tree-row(lc-330000, selected, focus), .blc-330000 {
background-color: #330000 !important;
}
.blc-330000 {
border-color: #330000;
}
treechildren::-moz-tree-cell-text(lc-FFCC99), .lc-FFCC99:not([_moz-menuactive]) {
color: #FFCC99
}
treechildren::-moz-tree-row(lc-FFCC99, selected, focus), .blc-FFCC99 {
background-color: #FFCC99 !important;
}
.blc-FFCC99 {
border-color: #FFCC99;
}
treechildren::-moz-tree-cell-text(lc-FF9966), .lc-FF9966:not([_moz-menuactive]) {
color: #FF9966
}
treechildren::-moz-tree-row(lc-FF9966, selected, focus), .blc-FF9966 {
background-color: #FF9966 !important;
}
.blc-FF9966 {
border-color: #FF9966;
}
treechildren::-moz-tree-cell-text(lc-FF9900), .lc-FF9900:not([_moz-menuactive]) {
color: #FF9900
}
treechildren::-moz-tree-row(lc-FF9900, selected, focus), .blc-FF9900 {
background-color: #FF9900 !important;
}
.blc-FF9900 {
border-color: #FF9900;
}
treechildren::-moz-tree-cell-text(lc-FF6600), .lc-FF6600:not([_moz-menuactive]) {
color: #FF6600
}
treechildren::-moz-tree-row(lc-FF6600, selected, focus), .blc-FF6600 {
background-color: #FF6600 !important;
}
.blc-FF6600 {
border-color: #FF6600;
}
treechildren::-moz-tree-cell-text(lc-CC6600), .lc-CC6600:not([_moz-menuactive]) {
color: #CC6600
}
treechildren::-moz-tree-row(lc-CC6600, selected, focus), .blc-CC6600 {
background-color: #CC6600 !important;
}
.blc-CC6600 {
border-color: #CC6600;
}
treechildren::-moz-tree-cell-text(lc-993300), .lc-993300:not([_moz-menuactive]) {
color: #993300
}
treechildren::-moz-tree-row(lc-993300, selected, focus), .blc-993300 {
background-color: #993300 !important;
}
.blc-993300 {
border-color: #993300;
}
treechildren::-moz-tree-cell-text(lc-663300), .lc-663300:not([_moz-menuactive]) {
color: #663300
}
treechildren::-moz-tree-row(lc-663300, selected, focus), .blc-663300 {
background-color: #663300 !important;
}
.blc-663300 {
border-color: #663300;
}
treechildren::-moz-tree-cell-text(lc-FFFF99), .lc-FFFF99:not([_moz-menuactive]) {
color: #FFFF99
}
treechildren::-moz-tree-row(lc-FFFF99, selected, focus), .blc-FFFF99 {
background-color: #FFFF99 !important;
}
.blc-FFFF99 {
border-color: #FFFF99;
}
treechildren::-moz-tree-cell-text(lc-FFFF66), .lc-FFFF66:not([_moz-menuactive]) {
color: #FFFF66
}
treechildren::-moz-tree-row(lc-FFFF66, selected, focus), .blc-FFFF66 {
background-color: #FFFF66 !important;
}
.blc-FFFF66 {
border-color: #FFFF66;
}
treechildren::-moz-tree-cell-text(lc-FFCC66), .lc-FFCC66:not([_moz-menuactive]) {
color: #FFCC66
}
treechildren::-moz-tree-row(lc-FFCC66, selected, focus), .blc-FFCC66 {
background-color: #FFCC66 !important;
}
.blc-FFCC66 {
border-color: #FFCC66;
}
treechildren::-moz-tree-cell-text(lc-FFCC33), .lc-FFCC33:not([_moz-menuactive]) {
color: #FFCC33
}
treechildren::-moz-tree-row(lc-FFCC33, selected, focus), .blc-FFCC33 {
background-color: #FFCC33 !important;
}
.blc-FFCC33 {
border-color: #FFCC33;
}
treechildren::-moz-tree-cell-text(lc-CC9933), .lc-CC9933:not([_moz-menuactive]) {
color: #CC9933
}
treechildren::-moz-tree-row(lc-CC9933, selected, focus), .blc-CC9933 {
background-color: #CC9933 !important;
}
.blc-CC9933 {
border-color: #CC9933;
}
treechildren::-moz-tree-cell-text(lc-996633), .lc-996633:not([_moz-menuactive]) {
color: #996633
}
treechildren::-moz-tree-row(lc-996633, selected, focus), .blc-996633 {
background-color: #996633 !important;
}
.blc-996633 {
border-color: #996633;
}
treechildren::-moz-tree-cell-text(lc-663333), .lc-663333:not([_moz-menuactive]) {
color: #663333
}
treechildren::-moz-tree-row(lc-663333, selected, focus), .blc-663333 {
background-color: #663333 !important;
}
.blc-663333 {
border-color: #663333;
}
treechildren::-moz-tree-cell-text(lc-FFFFCC), .lc-FFFFCC:not([_moz-menuactive]) {
color: #FFFFCC
}
treechildren::-moz-tree-row(lc-FFFFCC, selected, focus), .blc-FFFFCC {
background-color: #FFFFCC !important;
}
.blc-FFFFCC {
border-color: #FFFFCC;
}
treechildren::-moz-tree-cell-text(lc-FFFF33), .lc-FFFF33:not([_moz-menuactive]) {
color: #FFFF33
}
treechildren::-moz-tree-row(lc-FFFF33, selected, focus), .blc-FFFF33 {
background-color: #FFFF33 !important;
}
.blc-FFFF33 {
border-color: #FFFF33;
}
treechildren::-moz-tree-cell-text(lc-FFFF00), .lc-FFFF00:not([_moz-menuactive]) {
color: #FFFF00
}
treechildren::-moz-tree-row(lc-FFFF00, selected, focus), .blc-FFFF00 {
background-color: #FFFF00 !important;
}
.blc-FFFF00 {
border-color: #FFFF00;
}
treechildren::-moz-tree-cell-text(lc-FFCC00), .lc-FFCC00:not([_moz-menuactive]) {
color: #FFCC00
}
treechildren::-moz-tree-row(lc-FFCC00, selected, focus), .blc-FFCC00 {
background-color: #FFCC00 !important;
}
.blc-FFCC00 {
border-color: #FFCC00;
}
treechildren::-moz-tree-cell-text(lc-999900), .lc-999900:not([_moz-menuactive]) {
color: #999900
}
treechildren::-moz-tree-row(lc-999900, selected, focus), .blc-999900 {
background-color: #999900 !important;
}
.blc-999900 {
border-color: #999900;
}
treechildren::-moz-tree-cell-text(lc-666600), .lc-666600:not([_moz-menuactive]) {
color: #666600
}
treechildren::-moz-tree-row(lc-666600, selected, focus), .blc-666600 {
background-color: #666600 !important;
}
.blc-666600 {
border-color: #666600;
}
treechildren::-moz-tree-cell-text(lc-333300), .lc-333300:not([_moz-menuactive]) {
color: #333300
}
treechildren::-moz-tree-row(lc-333300, selected, focus), .blc-333300 {
background-color: #333300 !important;
}
.blc-333300 {
border-color: #333300;
}
treechildren::-moz-tree-cell-text(lc-99FF99), .lc-99FF99:not([_moz-menuactive]) {
color: #99FF99
}
treechildren::-moz-tree-row(lc-99FF99, selected, focus), .blc-99FF99 {
background-color: #99FF99 !important;
}
.blc-99FF99 {
border-color: #99FF99;
}
treechildren::-moz-tree-cell-text(lc-66FF99), .lc-66FF99:not([_moz-menuactive]) {
color: #66FF99
}
treechildren::-moz-tree-row(lc-66FF99, selected, focus), .blc-66FF99 {
background-color: #66FF99 !important;
}
.blc-66FF99 {
border-color: #66FF99;
}
treechildren::-moz-tree-cell-text(lc-33FF33), .lc-33FF33:not([_moz-menuactive]) {
color: #33FF33
}
treechildren::-moz-tree-row(lc-33FF33, selected, focus), .blc-33FF33 {
background-color: #33FF33 !important;
}
.blc-33FF33 {
border-color: #33FF33;
}
treechildren::-moz-tree-cell-text(lc-33CC00), .lc-33CC00:not([_moz-menuactive]) {
color: #33CC00
}
treechildren::-moz-tree-row(lc-33CC00, selected, focus), .blc-33CC00 {
background-color: #33CC00 !important;
}
.blc-33CC00 {
border-color: #33CC00;
}
treechildren::-moz-tree-cell-text(lc-009900), .lc-009900:not([_moz-menuactive]) {
color: #009900
}
treechildren::-moz-tree-row(lc-009900, selected, focus), .blc-009900 {
background-color: #009900 !important;
}
.blc-009900 {
border-color: #009900;
}
treechildren::-moz-tree-cell-text(lc-006600), .lc-006600:not([_moz-menuactive]) {
color: #006600
}
treechildren::-moz-tree-row(lc-006600, selected, focus), .blc-006600 {
background-color: #006600 !important;
}
.blc-006600 {
border-color: #006600;
}
treechildren::-moz-tree-cell-text(lc-003300), .lc-003300:not([_moz-menuactive]) {
color: #003300
}
treechildren::-moz-tree-row(lc-003300, selected, focus), .blc-003300 {
background-color: #003300 !important;
}
.blc-003300 {
border-color: #003300;
}
treechildren::-moz-tree-cell-text(lc-99FFFF), .lc-99FFFF:not([_moz-menuactive]) {
color: #99FFFF
}
treechildren::-moz-tree-row(lc-99FFFF, selected, focus), .blc-99FFFF {
background-color: #99FFFF !important;
}
.blc-99FFFF {
border-color: #99FFFF;
}
treechildren::-moz-tree-cell-text(lc-33FFFF), .lc-33FFFF:not([_moz-menuactive]) {
color: #33FFFF
}
treechildren::-moz-tree-row(lc-33FFFF, selected, focus), .blc-33FFFF {
background-color: #33FFFF !important;
}
.blc-33FFFF {
border-color: #33FFFF;
}
treechildren::-moz-tree-cell-text(lc-66CCCC), .lc-66CCCC:not([_moz-menuactive]) {
color: #66CCCC
}
treechildren::-moz-tree-row(lc-66CCCC, selected, focus), .blc-66CCCC {
background-color: #66CCCC !important;
}
.blc-66CCCC {
border-color: #66CCCC;
}
treechildren::-moz-tree-cell-text(lc-00CCCC), .lc-00CCCC:not([_moz-menuactive]) {
color: #00CCCC
}
treechildren::-moz-tree-row(lc-00CCCC, selected, focus), .blc-00CCCC {
background-color: #00CCCC !important;
}
.blc-00CCCC {
border-color: #00CCCC;
}
treechildren::-moz-tree-cell-text(lc-339999), .lc-339999:not([_moz-menuactive]) {
color: #339999
}
treechildren::-moz-tree-row(lc-339999, selected, focus), .blc-339999 {
background-color: #339999 !important;
}
.blc-339999 {
border-color: #339999;
}
treechildren::-moz-tree-cell-text(lc-336666), .lc-336666:not([_moz-menuactive]) {
color: #336666
}
treechildren::-moz-tree-row(lc-336666, selected, focus), .blc-336666 {
background-color: #336666 !important;
}
.blc-336666 {
border-color: #336666;
}
treechildren::-moz-tree-cell-text(lc-003333), .lc-003333:not([_moz-menuactive]) {
color: #003333
}
treechildren::-moz-tree-row(lc-003333, selected, focus), .blc-003333 {
background-color: #003333 !important;
}
.blc-003333 {
border-color: #003333;
}
treechildren::-moz-tree-cell-text(lc-CCFFFF), .lc-CCFFFF:not([_moz-menuactive]) {
color: #CCFFFF
}
treechildren::-moz-tree-row(lc-CCFFFF, selected, focus), .blc-CCFFFF {
background-color: #CCFFFF !important;
}
.blc-CCFFFF {
border-color: #CCFFFF;
}
treechildren::-moz-tree-cell-text(lc-66FFFF), .lc-66FFFF:not([_moz-menuactive]) {
color: #66FFFF
}
treechildren::-moz-tree-row(lc-66FFFF, selected, focus), .blc-66FFFF {
background-color: #66FFFF !important;
}
.blc-66FFFF {
border-color: #66FFFF;
}
treechildren::-moz-tree-cell-text(lc-33CCFF), .lc-33CCFF:not([_moz-menuactive]) {
color: #33CCFF
}
treechildren::-moz-tree-row(lc-33CCFF, selected, focus), .blc-33CCFF {
background-color: #33CCFF !important;
}
.blc-33CCFF {
border-color: #33CCFF;
}
treechildren::-moz-tree-cell-text(lc-3366FF), .lc-3366FF:not([_moz-menuactive]) {
color: #3366FF
}
treechildren::-moz-tree-row(lc-3366FF, selected, focus), .blc-3366FF {
background-color: #3366FF !important;
}
.blc-3366FF {
border-color: #3366FF;
}
treechildren::-moz-tree-cell-text(lc-3333FF), .lc-3333FF:not([_moz-menuactive]) {
color: #3333FF
}
treechildren::-moz-tree-row(lc-3333FF, selected, focus), .blc-3333FF {
background-color: #3333FF !important;
}
.blc-3333FF {
border-color: #3333FF;
}
treechildren::-moz-tree-cell-text(lc-000099), .lc-000099:not([_moz-menuactive]) {
color: #000099
}
treechildren::-moz-tree-row(lc-000099, selected, focus), .blc-000099 {
background-color: #000099 !important;
}
.blc-000099 {
border-color: #000099;
}
treechildren::-moz-tree-cell-text(lc-000066), .lc-000066:not([_moz-menuactive]) {
color: #000066
}
treechildren::-moz-tree-row(lc-000066, selected, focus), .blc-000066 {
background-color: #000066 !important;
}
.blc-000066 {
border-color: #000066;
}
treechildren::-moz-tree-cell-text(lc-CCCCFF), .lc-CCCCFF:not([_moz-menuactive]) {
color: #CCCCFF
}
treechildren::-moz-tree-row(lc-CCCCFF, selected, focus), .blc-CCCCFF {
background-color: #CCCCFF !important;
}
.blc-CCCCFF {
border-color: #CCCCFF;
}
treechildren::-moz-tree-cell-text(lc-9999FF), .lc-9999FF:not([_moz-menuactive]) {
color: #9999FF
}
treechildren::-moz-tree-row(lc-9999FF, selected, focus), .blc-9999FF {
background-color: #9999FF !important;
}
.blc-9999FF {
border-color: #9999FF;
}
treechildren::-moz-tree-cell-text(lc-6666CC), .lc-6666CC:not([_moz-menuactive]) {
color: #6666CC
}
treechildren::-moz-tree-row(lc-6666CC, selected, focus), .blc-6666CC {
background-color: #6666CC !important;
}
.blc-6666CC {
border-color: #6666CC;
}
treechildren::-moz-tree-cell-text(lc-6633FF), .lc-6633FF:not([_moz-menuactive]) {
color: #6633FF
}
treechildren::-moz-tree-row(lc-6633FF, selected, focus), .blc-6633FF {
background-color: #6633FF !important;
}
.blc-6633FF {
border-color: #6633FF;
}
treechildren::-moz-tree-cell-text(lc-6600CC), .lc-6600CC:not([_moz-menuactive]) {
color: #6600CC
}
treechildren::-moz-tree-row(lc-6600CC, selected, focus), .blc-6600CC {
background-color: #6600CC !important;
}
.blc-6600CC {
border-color: #6600CC;
}
treechildren::-moz-tree-cell-text(lc-333399), .lc-333399:not([_moz-menuactive]) {
color: #333399
}
treechildren::-moz-tree-row(lc-333399, selected, focus), .blc-333399 {
background-color: #333399 !important;
}
.blc-333399 {
border-color: #333399;
}
treechildren::-moz-tree-cell-text(lc-330099), .lc-330099:not([_moz-menuactive]) {
color: #330099
}
treechildren::-moz-tree-row(lc-330099, selected, focus), .blc-330099 {
background-color: #330099 !important;
}
.blc-330099 {
border-color: #330099;
}
treechildren::-moz-tree-cell-text(lc-FFCCFF), .lc-FFCCFF:not([_moz-menuactive]) {
color: #FFCCFF
}
treechildren::-moz-tree-row(lc-FFCCFF, selected, focus), .blc-FFCCFF {
background-color: #FFCCFF !important;
}
.blc-FFCCFF {
border-color: #FFCCFF;
}
treechildren::-moz-tree-cell-text(lc-FF99FF), .lc-FF99FF:not([_moz-menuactive]) {
color: #FF99FF
}
treechildren::-moz-tree-row(lc-FF99FF, selected, focus), .blc-FF99FF {
background-color: #FF99FF !important;
}
.blc-FF99FF {
border-color: #FF99FF;
}
treechildren::-moz-tree-cell-text(lc-CC66CC), .lc-CC66CC:not([_moz-menuactive]) {
color: #CC66CC
}
treechildren::-moz-tree-row(lc-CC66CC, selected, focus), .blc-CC66CC {
background-color: #CC66CC !important;
}
.blc-CC66CC {
border-color: #CC66CC;
}
treechildren::-moz-tree-cell-text(lc-CC33CC), .lc-CC33CC:not([_moz-menuactive]) {
color: #CC33CC
}
treechildren::-moz-tree-row(lc-CC33CC, selected, focus), .blc-CC33CC {
background-color: #CC33CC !important;
}
.blc-CC33CC {
border-color: #CC33CC;
}
treechildren::-moz-tree-cell-text(lc-993399), .lc-993399:not([_moz-menuactive]) {
color: #993399
}
treechildren::-moz-tree-row(lc-993399, selected, focus), .blc-993399 {
background-color: #993399 !important;
}
.blc-993399 {
border-color: #993399;
}
treechildren::-moz-tree-cell-text(lc-663366), .lc-663366:not([_moz-menuactive]) {
color: #663366
}
treechildren::-moz-tree-row(lc-663366, selected, focus), .blc-663366 {
background-color: #663366 !important;
}
.blc-663366 {
border-color: #663366;
}
treechildren::-moz-tree-cell-text(lc-330033), .lc-330033:not([_moz-menuactive]) {
color: #330033
}
treechildren::-moz-tree-row(lc-330033, selected, focus), .blc-330033 {
background-color: #330033 !important;
}
.blc-330033 {
border-color: #330033;
}
treechildren::-moz-tree-cell-text(lc-white, selected, focus) {
color: #FFFFFF;
}
treechildren::-moz-tree-cell-text(lc-black, selected, focus), .blc-black {
color: #000000;
}

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

@ -107,6 +107,7 @@
skin/classic/messenger/shared/messenger.css (../shared/mail/messenger.css)
skin/classic/messenger/shared/messengercompose.css (../shared/mail/messengercompose.css)
skin/classic/messenger/shared/tabmail.css (../shared/mail/tabmail.css)
skin/classic/messenger/tagColors.css (../shared/mail/tagColors.css)
skin/classic/messenger/shared/smime/smime-compose.css (../shared/mail/smime/smime-compose.css)
#ifndef XP_MACOSX
skin/classic/messenger/icons/anchor.svg (../shared/mail/icons/anchor.svg)

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

@ -0,0 +1,13 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
/* ::::: thread labels decoration ::::: */
/*
* This style sheet is empty and will be dynamically populated.
* To populate it, typically TagUtils.loadTagsIntoCSS(document)
* is called from the document's onload() handler.
* There is also TagUtils.addTagToAllDocumentSheets() which inserts
* CSS into this sheet on all open messenger and search windows.
*/

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

@ -34,7 +34,6 @@ classic.jar:
skin/classic/messenger/attachmentList.css (mail/attachmentList.css)
skin/classic/messenger/imageFilters.svg (mail/imageFilters.svg)
skin/classic/messenger/mailWindow1.css (mail/mailWindow1.css)
skin/classic/messenger/tagColors.css (mail/tagColors.css)
skin/classic/messenger/messageWindow.css (mail/messageWindow.css)
skin/classic/messenger/searchBox.css (mail/searchBox.css)
skin/classic/messenger/junkMail.css (mail/junkMail.css)

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

@ -10,7 +10,6 @@
@import url("chrome://messenger/skin/primaryToolbar.css");
@import url("chrome://messenger/skin/folderMenus.css");
@import url("chrome://messenger/skin/folderPane.css");
@import url("chrome://messenger/skin/tagColors.css");
@import url("chrome://messenger/skin/messageIcons.css");
@import url("chrome://messenger/skin/shared/mailWindow1.css");

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

@ -460,6 +460,10 @@ treechildren::-moz-tree-indentation {
color: -moz-DialogText;
}
treechildren::-moz-tree-row(tagged, selected, focus) {
border-color: rgba(0,0,0,0.25);
}
@media (-moz-os-version: windows-win7),
(-moz-os-version: windows-win8) {
treechildren {
@ -484,6 +488,10 @@ treechildren::-moz-tree-indentation {
background-image: linear-gradient(rgba(255,255,255,.7), transparent);
}
treechildren::-moz-tree-row(tagged, selected, focus) {
background-image: linear-gradient(rgba(255,255,255,0.1), rgba(255,255,255,0.5));
}
treechildren::-moz-tree-row {
border-radius: 3px;
}

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

@ -7,7 +7,6 @@
======================================================================= */
@import url("chrome://messenger/skin/");
@import url("chrome://messenger/skin/tagColors.css");
@import url("chrome://messenger/skin/messageIcons.css");
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");

Разница между файлами не показана из-за своего большого размера Загрузить разницу

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

@ -49,6 +49,7 @@ interface nsIMsgTagService : nsISupports {
AString getTagForKey(in ACString key); // look up the tag for a key.
void setTagForKey(in ACString key, in AString tag); // this can be used to "rename" a tag
ACString getColorForKey(in ACString key);
AString getSelectorForKey(in ACString key); // return wide string to avoid conversion
void setColorForKey(in ACString key, in ACString color);
ACString getOrdinalForKey(in ACString key);
void setOrdinalForKey(in ACString key, in ACString ordinal);

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

@ -248,10 +248,9 @@ nsMsgDBView::GetPrefLocalizedString(const char *aPrefName,
nsresult
nsMsgDBView::AppendKeywordProperties(const nsACString& keywords,
nsAString& properties,
bool addSelectedTextProperty)
nsAString& properties)
{
// Get the top most keyword's color and append that as a property.
// Get the top most keyword's CSS selector and append that as a property.
nsresult rv;
if (!mTagService)
{
@ -265,21 +264,13 @@ nsMsgDBView::AppendKeywordProperties(const nsACString& keywords,
if (topKey.IsEmpty())
return NS_OK;
nsCString color;
rv = mTagService->GetColorForKey(topKey, color);
if (NS_SUCCEEDED(rv) && !color.IsEmpty())
nsString selector;
rv = mTagService->GetSelectorForKey(topKey, selector);
if (NS_SUCCEEDED(rv))
{
if (addSelectedTextProperty)
{
if (color.EqualsLiteral(LABEL_COLOR_WHITE_STRING))
properties.AppendLiteral(" lc-black");
else
properties.AppendLiteral(" lc-white");
}
color.Replace(0, 1, NS_LITERAL_CSTRING(LABEL_COLOR_STRING));
properties.AppendASCII(color.get());
properties.Append(' ');
properties.Append(selector);
}
return rv;
}
@ -1444,10 +1435,12 @@ nsMsgDBView::GetRowProperties(int32_t index,
nsCString keywordProperty;
FetchRowKeywords(index, msgHdr, keywordProperty);
if (keywordProperty.IsEmpty())
if (keywordProperty.IsEmpty()) {
properties.AppendLiteral(" untagged");
else
AppendKeywordProperties(keywordProperty, properties, false);
} else {
AppendKeywordProperties(keywordProperty, properties);
properties.AppendLiteral(" tagged");
}
// Give the custom column handlers a chance to style the row.
for (int i = 0; i < m_customColumnHandlers.Count(); i++)
@ -1577,10 +1570,12 @@ nsMsgDBView::GetCellProperties(int32_t aRow,
nsCString keywords;
FetchRowKeywords(aRow, msgHdr, keywords);
if (keywords.IsEmpty())
if (keywords.IsEmpty()) {
properties.AppendLiteral(" untagged");
else
AppendKeywordProperties(keywords, properties, true);
} else {
AppendKeywordProperties(keywords, properties);
properties.AppendLiteral(" tagged");
}
// This is a double fetch of the keywords property since we also fetch
// it for the tags - do we want to do this?

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

@ -69,9 +69,6 @@ public:
#define PREF_LABELS_DESCRIPTION "mailnews.labels.description."
#define PREF_LABELS_COLOR "mailnews.labels.color."
#define LABEL_COLOR_STRING " lc-"
#define LABEL_COLOR_WHITE_STRING "#FFFFFF"
struct IdUint32
{
nsMsgKey id;
@ -407,8 +404,7 @@ protected:
char16_t * GetString(const char16_t *aStringName);
nsresult GetPrefLocalizedString(const char *aPrefName, nsString& aResult);
nsresult AppendKeywordProperties(const nsACString& keywords,
nsAString& properties,
bool addSelectedTextProperty);
nsAString& properties);
nsresult InitLabelStrings(void);
nsresult CopyDBView(nsMsgDBView *aNewMsgDBView,
nsIMessenger *aMessengerInstance,

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

@ -284,6 +284,47 @@ NS_IMETHODIMP nsMsgTagService::GetColorForKey(const nsACString &key, nsACString
return NS_OK;
}
/* long getSelectorForKey (in ACString key, out AString selector); */
NS_IMETHODIMP nsMsgTagService::GetSelectorForKey(const nsACString &key, nsAString &_retval)
{
// Our keys are the result of MUTF-7 encoding. For CSS selectors we need
// to reduce this to 0-9A-Za-z_ with a leading alpha character.
// We encode non-alphanumeric characters using _ as an escape character
// and start with a leading T in all cases. This way users defining tags
// "selected" or "focus" don't collide with inbuilt "selected" or "focus".
// Calculate length of selector string.
const char *in = key.BeginReading();
size_t outLen = 1;
while (*in) {
if (('0' <= *in && *in <= '9') ||
('A' <= *in && *in <= 'Z') ||
('a' <= *in && *in <= 'z')) {
outLen++;
} else {
outLen += 3;
}
in++;
}
// Now fill selector string.
_retval.SetCapacity(outLen);
_retval.Assign('T');
in = key.BeginReading();
while (*in) {
if (('0' <= *in && *in <= '9') ||
('A' <= *in && *in <= 'Z') ||
('a' <= *in && *in <= 'z')) {
_retval.Append(*in);
} else {
_retval.AppendPrintf("_%02x", *in);
}
in++;
}
return NS_OK;
}
/* void setColorForKey (in ACString key, in ACString color); */
NS_IMETHODIMP nsMsgTagService::SetColorForKey(const nsACString & key, const nsACString & color)
{