зеркало из https://github.com/mozilla/pjs.git
Add pref for the default :active styling. Bug 142163, patch by
mats.palmgren@bredband.net (Mats Palmgren), r=bzbarsky/sr=dbaron on the layout/xpfe parts of the patch, r=glazou/sr=bzbarsky on the editor part, moa=neil on the prefwindow changes.
This commit is contained in:
Родитель
8968621f4c
Коммит
92ccceaf8d
|
@ -365,6 +365,11 @@ static PRBool SetColor(const nsCSSValue& aValue, const nscolor aParentColor,
|
|||
result = PR_TRUE;
|
||||
}
|
||||
break;
|
||||
case NS_COLOR_MOZ_ACTIVEHYPERLINKTEXT:
|
||||
if (NS_SUCCEEDED(aPresContext->GetDefaultActiveLinkColor(&aResult))) {
|
||||
result = PR_TRUE;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
NS_NOTREACHED("Should never have an unknown negative colorID.");
|
||||
break;
|
||||
|
|
|
@ -411,7 +411,7 @@ nsHTMLBodyElement::Set##func_(const nsAString& aColor) \
|
|||
}
|
||||
|
||||
NS_IMPL_HTMLBODY_COLOR_ATTR(vlink, VLink, VisitedLinkColor)
|
||||
NS_IMPL_HTMLBODY_COLOR_ATTR(alink, ALink, LinkColor)
|
||||
NS_IMPL_HTMLBODY_COLOR_ATTR(alink, ALink, ActiveLinkColor)
|
||||
NS_IMPL_HTMLBODY_COLOR_ATTR(link, Link, LinkColor)
|
||||
// XXX Should text check the body frame's style struct for color,
|
||||
// like we do for bgColor?
|
||||
|
|
|
@ -66,6 +66,7 @@
|
|||
// OUTPUT_CLASS=nsCSSKeywords
|
||||
// MACRO_NAME=CSS_KEY
|
||||
|
||||
CSS_KEY(-moz-activehyperlinktext, _moz_activehyperlinktext)
|
||||
CSS_KEY(-moz-alias, _moz_alias)
|
||||
CSS_KEY(-moz-all, _moz_all)
|
||||
CSS_KEY(-moz-anchor-decoration, _moz_anchor_decoration)
|
||||
|
|
|
@ -352,6 +352,7 @@ const PRInt32 nsCSSProps::kColorKTable[] = {
|
|||
eCSSKeyword_window, nsILookAndFeel::eColor_window,
|
||||
eCSSKeyword_windowframe, nsILookAndFeel::eColor_windowframe,
|
||||
eCSSKeyword_windowtext, nsILookAndFeel::eColor_windowtext,
|
||||
eCSSKeyword__moz_activehyperlinktext, NS_COLOR_MOZ_ACTIVEHYPERLINKTEXT,
|
||||
eCSSKeyword__moz_buttondefault, nsILookAndFeel::eColor__moz_buttondefault,
|
||||
eCSSKeyword__moz_field, nsILookAndFeel::eColor__moz_field,
|
||||
eCSSKeyword__moz_fieldtext, nsILookAndFeel::eColor__moz_fieldtext,
|
||||
|
|
|
@ -1537,7 +1537,7 @@ function EditorSelectColor(colorType, mouseEvent)
|
|||
editor.setAttribute(bodyelement, "link", defColors.LinkColor);
|
||||
|
||||
if (!bodyelement.getAttribute("alink"))
|
||||
editor.setAttribute(bodyelement, "alink", defColors.LinkColor);
|
||||
editor.setAttribute(bodyelement, "alink", defColors.ActiveLinkColor);
|
||||
|
||||
if (!bodyelement.getAttribute("vlink"))
|
||||
editor.setAttribute(bodyelement, "vlink", defColors.VisitedLinkColor);
|
||||
|
|
|
@ -594,7 +594,7 @@ function SaveFilePickerDirectory(filePicker, fileType)
|
|||
function GetDefaultBrowserColors()
|
||||
{
|
||||
var prefs = GetPrefs();
|
||||
var colors = { TextColor:0, BackgroundColor:0, LinkColor:0, VisitedLinkColor:0 };
|
||||
var colors = { TextColor:0, BackgroundColor:0, LinkColor:0, ActiveLinkColor:0 , VisitedLinkColor:0 };
|
||||
var useSysColors = false;
|
||||
try { useSysColors = prefs.getBoolPref("browser.display.use_system_colors"); } catch (e) {}
|
||||
|
||||
|
@ -612,6 +612,7 @@ function GetDefaultBrowserColors()
|
|||
colors.BackgroundColor = "window";
|
||||
|
||||
colors.LinkColor = prefs.getCharPref("browser.anchor_color");
|
||||
colors.ActiveLinkColor = prefs.getCharPref("browser.active_color");
|
||||
colors.VisitedLinkColor = prefs.getCharPref("browser.visited_color");
|
||||
|
||||
return colors;
|
||||
|
|
|
@ -75,8 +75,7 @@ function Startup()
|
|||
// Use author's browser pref colors passed into dialog
|
||||
defaultTextColor = browserColors.TextColor;
|
||||
defaultLinkColor = browserColors.LinkColor;
|
||||
// Note: Browser doesn't store a value for ActiveLinkColor
|
||||
defaultActiveColor = defaultLinkColor;
|
||||
defaultActiveColor = browserColors.ActiveLinkColor;
|
||||
defaultVisitedColor = browserColors.VisitedLinkColor;
|
||||
defaultBackgroundColor= browserColors.BackgroundColor;
|
||||
|
||||
|
|
|
@ -104,8 +104,7 @@ function Startup()
|
|||
// Use author's browser pref colors passed into dialog
|
||||
defaultTextColor = browserColors.TextColor;
|
||||
defaultLinkColor = browserColors.LinkColor;
|
||||
// Note: Browser doesn't store a value for ActiveLinkColor
|
||||
defaultActiveColor = defaultLinkColor;
|
||||
defaultActiveColor = browserColors.ActiveLinkColor;
|
||||
defaultVisitedColor = browserColors.VisitedLinkColor;
|
||||
defaultBackgroundColor= browserColors.BackgroundColor;
|
||||
}
|
||||
|
|
|
@ -1,28 +0,0 @@
|
|||
<!-- extracted from content/pref-colors.xul -->
|
||||
|
||||
<!-- LOCALIZATION NOTE : FILE Color management prefs -->
|
||||
<!ENTITY window.title "Colors">
|
||||
<!ENTITY lHeader "Colors">
|
||||
<!ENTITY color "Text and background">
|
||||
<!ENTITY textColor.label "Text:">
|
||||
<!ENTITY textColor.accesskey "t">
|
||||
<!ENTITY backgroundColor.label "Background:">
|
||||
<!ENTITY backgroundColor.accesskey "b">
|
||||
<!ENTITY useWindowsColors.label "Use Windows colors">
|
||||
<!ENTITY useWindowsColors.accesskey "w">
|
||||
|
||||
<!ENTITY underlineLinks.label "Underline links">
|
||||
<!ENTITY underlineLinks.accesskey "u">
|
||||
<!ENTITY links "Link colors">
|
||||
<!ENTITY linkColor.label "Unvisited Links:">
|
||||
<!ENTITY linkColor.accesskey "l">
|
||||
<!ENTITY visitedLinkColor.label "Visited Links:">
|
||||
<!ENTITY visitedLinkColor.accesskey "v">
|
||||
<!-- LOCALIZATION NOTE (someProvColors): This is the start of a sentence and will be followed by the following radio buttons. -->
|
||||
<!ENTITY someProvColors "When a web page provides its own colors and background">
|
||||
<!-- LOCALIZATION NOTE (alwaysUseDocColors.label): This is option one, and it appends to 'someProvColors' above. -->
|
||||
<!ENTITY alwaysUseDocumentColors.label "always use the colors and background specified by the web page">
|
||||
<!ENTITY alwaysUseDocumentColors.accesskey "a">
|
||||
<!-- LOCALIZATION NOTE (ignoreDocColors.label): This is option two, and it appends to 'someProvColors' above. -->
|
||||
<!ENTITY useMyColors.label "use my chosen colors, ignoring the colors specified">
|
||||
<!ENTITY useMyColors.accesskey "i">
|
|
@ -1,28 +0,0 @@
|
|||
<!-- extracted from content/pref-colors.xul -->
|
||||
|
||||
<!-- LOCALIZATION NOTE : FILE Color management prefs -->
|
||||
<!ENTITY window.title "Colors">
|
||||
<!ENTITY lHeader "Colors">
|
||||
<!ENTITY color "Text and background">
|
||||
<!ENTITY textColor.label "Text:">
|
||||
<!ENTITY textColor.accesskey "t">
|
||||
<!ENTITY backgroundColor.label "Background:">
|
||||
<!ENTITY backgroundColor.accesskey "b">
|
||||
<!ENTITY useWindowsColors.label "Use Windows colors">
|
||||
<!ENTITY useWindowsColors.accesskey "w">
|
||||
|
||||
<!ENTITY underlineLinks.label "Underline links">
|
||||
<!ENTITY underlineLinks.accesskey "u">
|
||||
<!ENTITY links "Link colors">
|
||||
<!ENTITY linkColor.label "Unvisited Links:">
|
||||
<!ENTITY linkColor.accesskey "l">
|
||||
<!ENTITY visitedLinkColor.label "Visited Links:">
|
||||
<!ENTITY visitedLinkColor.accesskey "v">
|
||||
<!-- LOCALIZATION NOTE (someProvColors): This is the start of a sentence and will be followed by the following radio buttons. -->
|
||||
<!ENTITY someProvColors "When a web page provides its own colors and background">
|
||||
<!-- LOCALIZATION NOTE (alwaysUseDocColors.label): This is option one, and it appends to 'someProvColors' above. -->
|
||||
<!ENTITY alwaysUseDocumentColors.label "always use the colors and background specified by the web page">
|
||||
<!ENTITY alwaysUseDocumentColors.accesskey "a">
|
||||
<!-- LOCALIZATION NOTE (ignoreDocColors.label): This is option two, and it appends to 'someProvColors' above. -->
|
||||
<!ENTITY useMyColors.label "use my chosen colors, ignoring the colors specified">
|
||||
<!ENTITY useMyColors.accesskey "i">
|
|
@ -184,8 +184,9 @@ nsPresContext::nsPresContext()
|
|||
// the minimum font-size is unconstrained by default
|
||||
mMinimumFontSize = 0;
|
||||
|
||||
mLinkColor = NS_RGB(0x33, 0x33, 0xFF);
|
||||
mVisitedLinkColor = NS_RGB(0x66, 0x00, 0xCC);
|
||||
mLinkColor = NS_RGB(0x00, 0x00, 0xEE);
|
||||
mActiveLinkColor = NS_RGB(0xEE, 0x00, 0x00);
|
||||
mVisitedLinkColor = NS_RGB(0x55, 0x1A, 0x8B);
|
||||
mUnderlineLinks = PR_TRUE;
|
||||
|
||||
mUseFocusColors = PR_FALSE;
|
||||
|
@ -222,6 +223,7 @@ nsPresContext::~nsPresContext()
|
|||
mPrefs->UnregisterCallback("browser.display.", nsPresContext::PrefChangedCallback, (void*)this);
|
||||
mPrefs->UnregisterCallback("browser.underline_anchors", nsPresContext::PrefChangedCallback, (void*)this);
|
||||
mPrefs->UnregisterCallback("browser.anchor_color", nsPresContext::PrefChangedCallback, (void*)this);
|
||||
mPrefs->UnregisterCallback("browser.active_color", nsPresContext::PrefChangedCallback, (void*)this);
|
||||
mPrefs->UnregisterCallback("browser.visited_color", nsPresContext::PrefChangedCallback, (void*)this);
|
||||
mPrefs->UnregisterCallback("network.image.imageBehavior", nsPresContext::PrefChangedCallback, (void*)this);
|
||||
mPrefs->UnregisterCallback("image.animation_mode", nsPresContext::PrefChangedCallback, (void*)this);
|
||||
|
@ -470,6 +472,9 @@ nsPresContext::GetUserPreferences()
|
|||
if (NS_SUCCEEDED(mPrefs->CopyCharPref("browser.anchor_color", getter_Copies(colorStr)))) {
|
||||
mLinkColor = MakeColorPref(colorStr);
|
||||
}
|
||||
if (NS_SUCCEEDED(mPrefs->CopyCharPref("browser.active_color", getter_Copies(colorStr)))) {
|
||||
mActiveLinkColor = MakeColorPref(colorStr);
|
||||
}
|
||||
if (NS_SUCCEEDED(mPrefs->CopyCharPref("browser.visited_color", getter_Copies(colorStr)))) {
|
||||
mVisitedLinkColor = MakeColorPref(colorStr);
|
||||
}
|
||||
|
@ -637,6 +642,7 @@ nsPresContext::Init(nsIDeviceContext* aDeviceContext)
|
|||
mPrefs->RegisterCallback("browser.display.", nsPresContext::PrefChangedCallback, (void*)this);
|
||||
mPrefs->RegisterCallback("browser.underline_anchors", nsPresContext::PrefChangedCallback, (void*)this);
|
||||
mPrefs->RegisterCallback("browser.anchor_color", nsPresContext::PrefChangedCallback, (void*)this);
|
||||
mPrefs->RegisterCallback("browser.active_color", nsPresContext::PrefChangedCallback, (void*)this);
|
||||
mPrefs->RegisterCallback("browser.visited_color", nsPresContext::PrefChangedCallback, (void*)this);
|
||||
mPrefs->RegisterCallback("network.image.imageBehavior", nsPresContext::PrefChangedCallback, (void*)this);
|
||||
mPrefs->RegisterCallback("image.animation_mode", nsPresContext::PrefChangedCallback, (void*)this);
|
||||
|
@ -1160,6 +1166,14 @@ nsPresContext::GetDefaultLinkColor(nscolor* aColor)
|
|||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsPresContext::GetDefaultActiveLinkColor(nscolor* aColor)
|
||||
{
|
||||
NS_PRECONDITION(aColor, "null out param");
|
||||
*aColor = mActiveLinkColor;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsPresContext::GetDefaultVisitedLinkColor(nscolor* aColor)
|
||||
{
|
||||
|
@ -1232,6 +1246,13 @@ nsPresContext::SetDefaultLinkColor(nscolor aColor)
|
|||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsPresContext::SetDefaultActiveLinkColor(nscolor aColor)
|
||||
{
|
||||
mActiveLinkColor = aColor;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsPresContext::SetDefaultVisitedLinkColor(nscolor aColor)
|
||||
{
|
||||
|
|
|
@ -298,6 +298,7 @@ public:
|
|||
NS_IMETHOD GetDefaultColor(nscolor* aColor) = 0;
|
||||
NS_IMETHOD GetDefaultBackgroundColor(nscolor* aColor) = 0;
|
||||
NS_IMETHOD GetDefaultLinkColor(nscolor* aColor) = 0;
|
||||
NS_IMETHOD GetDefaultActiveLinkColor(nscolor* aColor) = 0;
|
||||
NS_IMETHOD GetDefaultVisitedLinkColor(nscolor* aColor) = 0;
|
||||
NS_IMETHOD GetFocusBackgroundColor(nscolor* aColor) = 0;
|
||||
NS_IMETHOD GetFocusTextColor(nscolor* aColor) = 0;
|
||||
|
@ -309,6 +310,7 @@ public:
|
|||
NS_IMETHOD SetDefaultColor(nscolor aColor) = 0;
|
||||
NS_IMETHOD SetDefaultBackgroundColor(nscolor aColor) = 0;
|
||||
NS_IMETHOD SetDefaultLinkColor(nscolor aColor) = 0;
|
||||
NS_IMETHOD SetDefaultActiveLinkColor(nscolor aColor) = 0;
|
||||
NS_IMETHOD SetDefaultVisitedLinkColor(nscolor aColor) = 0;
|
||||
|
||||
/**
|
||||
|
|
|
@ -2352,114 +2352,87 @@ PresShell::SetPrefNoScriptRule()
|
|||
nsresult PresShell::SetPrefLinkRules(void)
|
||||
{
|
||||
NS_ASSERTION(mPresContext,"null prescontext not allowed");
|
||||
if (mPresContext) {
|
||||
nsresult result = NS_OK;
|
||||
|
||||
if (!mPrefStyleSheet) {
|
||||
result = CreatePreferenceStyleSheet();
|
||||
}
|
||||
if (NS_SUCCEEDED(result)) {
|
||||
NS_ASSERTION(mPrefStyleSheet, "prefstylesheet should not be null");
|
||||
|
||||
// get the DOM interface to the stylesheet
|
||||
nsCOMPtr<nsIDOMCSSStyleSheet> sheet(do_QueryInterface(mPrefStyleSheet,&result));
|
||||
if (NS_SUCCEEDED(result)) {
|
||||
|
||||
#ifdef DEBUG_attinasi
|
||||
printf(" - Creating rules for link and visited colors\n");
|
||||
#endif
|
||||
|
||||
// support default link colors:
|
||||
// this means the link colors need to be overridable,
|
||||
// which they are if we put them in the agent stylesheet,
|
||||
// though if using an override sheet this will cause authors grief still
|
||||
// In the agent stylesheet, they are !important when we are ignoring document colors
|
||||
//
|
||||
// XXX: Do active links and visited links get another color?
|
||||
// They are red in the html.css rules, but there is no pref for their color.
|
||||
|
||||
nscolor linkColor, visitedColor;
|
||||
result = mPresContext->GetDefaultLinkColor(&linkColor);
|
||||
if (NS_SUCCEEDED(result)) {
|
||||
result = mPresContext->GetDefaultVisitedLinkColor(&visitedColor);
|
||||
}
|
||||
if (NS_SUCCEEDED(result)) {
|
||||
// insert a rule to make links the preferred color
|
||||
PRUint32 index = 0;
|
||||
nsAutoString strColor;
|
||||
PRBool useDocColors = PR_TRUE;
|
||||
|
||||
// see if we need to create the rules first
|
||||
mPresContext->GetCachedBoolPref(kPresContext_UseDocumentColors, useDocColors);
|
||||
|
||||
///////////////////////////////////////////////////////////////
|
||||
// - links: '*|*:link {color: #RRGGBB [!important];}'
|
||||
ColorToString(linkColor,strColor);
|
||||
NS_NAMED_LITERAL_STRING(notImportantStr, "}");
|
||||
NS_NAMED_LITERAL_STRING(importantStr, "!important}");
|
||||
const nsAString& ruleClose = useDocColors ? notImportantStr : importantStr;
|
||||
result = sheet->InsertRule(NS_LITERAL_STRING("*|*:link{color:") +
|
||||
strColor +
|
||||
ruleClose,
|
||||
sInsertPrefSheetRulesAt, &index);
|
||||
NS_ENSURE_SUCCESS(result, result);
|
||||
|
||||
///////////////////////////////////////////////////////////////
|
||||
// - visited links '*|*:visited {color: #RRGGBB [!important];}'
|
||||
ColorToString(visitedColor,strColor);
|
||||
// insert the rule
|
||||
result = sheet->InsertRule(NS_LITERAL_STRING("*|*:visited{color:") +
|
||||
strColor +
|
||||
ruleClose,
|
||||
sInsertPrefSheetRulesAt, &index);
|
||||
|
||||
///////////////////////////////////////////////////////////////
|
||||
// - active links '*|*:-moz-any-link {color: red [!important];}'
|
||||
// This has to be here (i.e. we can't just rely on the rule in the UA stylesheet)
|
||||
// because this entire stylesheet is at the user level (not UA level) and so
|
||||
// the two rules above override the rule in the UA stylesheet regardless of the
|
||||
// weights of the respective rules.
|
||||
result = sheet->InsertRule(NS_LITERAL_STRING("*|*:-moz-any-link:active{color:red") +
|
||||
ruleClose,
|
||||
sInsertPrefSheetRulesAt, &index);
|
||||
}
|
||||
|
||||
if (NS_SUCCEEDED(result)) {
|
||||
PRBool underlineLinks = PR_TRUE;
|
||||
result = mPresContext->GetCachedBoolPref(kPresContext_UnderlineLinks,underlineLinks);
|
||||
if (NS_SUCCEEDED(result)) {
|
||||
// create a rule for underline: on or off
|
||||
PRUint32 index = 0;
|
||||
nsAutoString strRule;
|
||||
if (underlineLinks) {
|
||||
// create a rule to make underlining happen
|
||||
// ':link, :visited {text-decoration:[underline|none];}'
|
||||
// no need for important, we want these to be overridable
|
||||
// NOTE: these must go in the agent stylesheet or they cannot be
|
||||
// overridden by authors
|
||||
#ifdef DEBUG_attinasi
|
||||
printf (" - Creating rules for enabling link underlines\n");
|
||||
#endif
|
||||
// make a rule to make text-decoration: underline happen for links
|
||||
strRule.Append(NS_LITERAL_STRING("*|*:-moz-any-link{text-decoration:underline}"));
|
||||
} else {
|
||||
#ifdef DEBUG_attinasi
|
||||
printf (" - Creating rules for disabling link underlines\n");
|
||||
#endif
|
||||
// make a rule to make text-decoration: none happen for links
|
||||
strRule.Append(NS_LITERAL_STRING("*|*:-moz-any-link{text-decoration:none}"));
|
||||
}
|
||||
|
||||
// ...now insert the rule
|
||||
result = sheet->InsertRule(strRule, sInsertPrefSheetRulesAt, &index);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
} else {
|
||||
if (!mPresContext) {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
nsresult rv = NS_OK;
|
||||
|
||||
if (!mPrefStyleSheet) {
|
||||
rv = CreatePreferenceStyleSheet();
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
}
|
||||
|
||||
NS_ASSERTION(mPrefStyleSheet, "prefstylesheet should not be null");
|
||||
|
||||
// get the DOM interface to the stylesheet
|
||||
nsCOMPtr<nsIDOMCSSStyleSheet> sheet(do_QueryInterface(mPrefStyleSheet, &rv));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
// support default link colors:
|
||||
// this means the link colors need to be overridable,
|
||||
// which they are if we put them in the agent stylesheet,
|
||||
// though if using an override sheet this will cause authors grief still
|
||||
// In the agent stylesheet, they are !important when we are ignoring document colors
|
||||
|
||||
nscolor linkColor, activeColor, visitedColor;
|
||||
|
||||
rv = mPresContext->GetDefaultLinkColor(&linkColor);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
rv = mPresContext->GetDefaultActiveLinkColor(&activeColor);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
rv = mPresContext->GetDefaultVisitedLinkColor(&visitedColor);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
PRBool useDocColors = PR_TRUE;
|
||||
mPresContext->GetCachedBoolPref(kPresContext_UseDocumentColors, useDocColors);
|
||||
NS_NAMED_LITERAL_STRING(notImportantStr, "}");
|
||||
NS_NAMED_LITERAL_STRING(importantStr, "!important}");
|
||||
const nsAString& ruleClose = useDocColors ? notImportantStr : importantStr;
|
||||
PRUint32 index = 0;
|
||||
nsAutoString strColor;
|
||||
|
||||
// insert a rule to color links: '*|*:link {color: #RRGGBB [!important];}'
|
||||
ColorToString(linkColor, strColor);
|
||||
rv = sheet->InsertRule(NS_LITERAL_STRING("*|*:link{color:") +
|
||||
strColor + ruleClose,
|
||||
sInsertPrefSheetRulesAt, &index);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
// - visited links: '*|*:visited {color: #RRGGBB [!important];}'
|
||||
ColorToString(visitedColor, strColor);
|
||||
rv = sheet->InsertRule(NS_LITERAL_STRING("*|*:visited{color:") +
|
||||
strColor + ruleClose,
|
||||
sInsertPrefSheetRulesAt, &index);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
// - active links: '*|*:-moz-any-link:active {color: #RRGGBB [!important];}'
|
||||
ColorToString(activeColor, strColor);
|
||||
rv = sheet->InsertRule(NS_LITERAL_STRING("*|*:-moz-any-link:active{color:") +
|
||||
strColor + ruleClose,
|
||||
sInsertPrefSheetRulesAt, &index);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
PRBool underlineLinks = PR_TRUE;
|
||||
rv = mPresContext->GetCachedBoolPref(kPresContext_UnderlineLinks, underlineLinks);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
if (underlineLinks) {
|
||||
// create a rule to make underlining happen
|
||||
// '*|*:-moz-any-link {text-decoration:[underline|none];}'
|
||||
// no need for important, we want these to be overridable
|
||||
// NOTE: these must go in the agent stylesheet or they cannot be
|
||||
// overridden by authors
|
||||
rv = sheet->InsertRule(NS_LITERAL_STRING("*|*:-moz-any-link{text-decoration:underline}"),
|
||||
sInsertPrefSheetRulesAt, &index);
|
||||
} else {
|
||||
rv = sheet->InsertRule(NS_LITERAL_STRING("*|*:-moz-any-link{text-decoration:none}"),
|
||||
sInsertPrefSheetRulesAt, &index);
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
nsresult PresShell::SetPrefFocusRules(void)
|
||||
|
|
|
@ -196,6 +196,7 @@
|
|||
// See nsStyleColor
|
||||
#define NS_COLOR_MOZ_HYPERLINKTEXT -1
|
||||
#define NS_COLOR_MOZ_VISITEDHYPERLINKTEXT -2
|
||||
#define NS_COLOR_MOZ_ACTIVEHYPERLINKTEXT -3
|
||||
|
||||
// See nsStyleBackground
|
||||
#define NS_STYLE_BG_COLOR_TRANSPARENT 0x01
|
||||
|
|
|
@ -298,6 +298,7 @@ public:
|
|||
NS_IMETHOD GetDefaultColor(nscolor* aColor) = 0;
|
||||
NS_IMETHOD GetDefaultBackgroundColor(nscolor* aColor) = 0;
|
||||
NS_IMETHOD GetDefaultLinkColor(nscolor* aColor) = 0;
|
||||
NS_IMETHOD GetDefaultActiveLinkColor(nscolor* aColor) = 0;
|
||||
NS_IMETHOD GetDefaultVisitedLinkColor(nscolor* aColor) = 0;
|
||||
NS_IMETHOD GetFocusBackgroundColor(nscolor* aColor) = 0;
|
||||
NS_IMETHOD GetFocusTextColor(nscolor* aColor) = 0;
|
||||
|
@ -309,6 +310,7 @@ public:
|
|||
NS_IMETHOD SetDefaultColor(nscolor aColor) = 0;
|
||||
NS_IMETHOD SetDefaultBackgroundColor(nscolor aColor) = 0;
|
||||
NS_IMETHOD SetDefaultLinkColor(nscolor aColor) = 0;
|
||||
NS_IMETHOD SetDefaultActiveLinkColor(nscolor aColor) = 0;
|
||||
NS_IMETHOD SetDefaultVisitedLinkColor(nscolor aColor) = 0;
|
||||
|
||||
/**
|
||||
|
|
|
@ -298,6 +298,7 @@ public:
|
|||
NS_IMETHOD GetDefaultColor(nscolor* aColor) = 0;
|
||||
NS_IMETHOD GetDefaultBackgroundColor(nscolor* aColor) = 0;
|
||||
NS_IMETHOD GetDefaultLinkColor(nscolor* aColor) = 0;
|
||||
NS_IMETHOD GetDefaultActiveLinkColor(nscolor* aColor) = 0;
|
||||
NS_IMETHOD GetDefaultVisitedLinkColor(nscolor* aColor) = 0;
|
||||
NS_IMETHOD GetFocusBackgroundColor(nscolor* aColor) = 0;
|
||||
NS_IMETHOD GetFocusTextColor(nscolor* aColor) = 0;
|
||||
|
@ -309,6 +310,7 @@ public:
|
|||
NS_IMETHOD SetDefaultColor(nscolor aColor) = 0;
|
||||
NS_IMETHOD SetDefaultBackgroundColor(nscolor aColor) = 0;
|
||||
NS_IMETHOD SetDefaultLinkColor(nscolor aColor) = 0;
|
||||
NS_IMETHOD SetDefaultActiveLinkColor(nscolor aColor) = 0;
|
||||
NS_IMETHOD SetDefaultVisitedLinkColor(nscolor aColor) = 0;
|
||||
|
||||
/**
|
||||
|
|
|
@ -196,6 +196,7 @@
|
|||
// See nsStyleColor
|
||||
#define NS_COLOR_MOZ_HYPERLINKTEXT -1
|
||||
#define NS_COLOR_MOZ_VISITEDHYPERLINKTEXT -2
|
||||
#define NS_COLOR_MOZ_ACTIVEHYPERLINKTEXT -3
|
||||
|
||||
// See nsStyleBackground
|
||||
#define NS_STYLE_BG_COLOR_TRANSPARENT 0x01
|
||||
|
|
|
@ -184,8 +184,9 @@ nsPresContext::nsPresContext()
|
|||
// the minimum font-size is unconstrained by default
|
||||
mMinimumFontSize = 0;
|
||||
|
||||
mLinkColor = NS_RGB(0x33, 0x33, 0xFF);
|
||||
mVisitedLinkColor = NS_RGB(0x66, 0x00, 0xCC);
|
||||
mLinkColor = NS_RGB(0x00, 0x00, 0xEE);
|
||||
mActiveLinkColor = NS_RGB(0xEE, 0x00, 0x00);
|
||||
mVisitedLinkColor = NS_RGB(0x55, 0x1A, 0x8B);
|
||||
mUnderlineLinks = PR_TRUE;
|
||||
|
||||
mUseFocusColors = PR_FALSE;
|
||||
|
@ -222,6 +223,7 @@ nsPresContext::~nsPresContext()
|
|||
mPrefs->UnregisterCallback("browser.display.", nsPresContext::PrefChangedCallback, (void*)this);
|
||||
mPrefs->UnregisterCallback("browser.underline_anchors", nsPresContext::PrefChangedCallback, (void*)this);
|
||||
mPrefs->UnregisterCallback("browser.anchor_color", nsPresContext::PrefChangedCallback, (void*)this);
|
||||
mPrefs->UnregisterCallback("browser.active_color", nsPresContext::PrefChangedCallback, (void*)this);
|
||||
mPrefs->UnregisterCallback("browser.visited_color", nsPresContext::PrefChangedCallback, (void*)this);
|
||||
mPrefs->UnregisterCallback("network.image.imageBehavior", nsPresContext::PrefChangedCallback, (void*)this);
|
||||
mPrefs->UnregisterCallback("image.animation_mode", nsPresContext::PrefChangedCallback, (void*)this);
|
||||
|
@ -470,6 +472,9 @@ nsPresContext::GetUserPreferences()
|
|||
if (NS_SUCCEEDED(mPrefs->CopyCharPref("browser.anchor_color", getter_Copies(colorStr)))) {
|
||||
mLinkColor = MakeColorPref(colorStr);
|
||||
}
|
||||
if (NS_SUCCEEDED(mPrefs->CopyCharPref("browser.active_color", getter_Copies(colorStr)))) {
|
||||
mActiveLinkColor = MakeColorPref(colorStr);
|
||||
}
|
||||
if (NS_SUCCEEDED(mPrefs->CopyCharPref("browser.visited_color", getter_Copies(colorStr)))) {
|
||||
mVisitedLinkColor = MakeColorPref(colorStr);
|
||||
}
|
||||
|
@ -637,6 +642,7 @@ nsPresContext::Init(nsIDeviceContext* aDeviceContext)
|
|||
mPrefs->RegisterCallback("browser.display.", nsPresContext::PrefChangedCallback, (void*)this);
|
||||
mPrefs->RegisterCallback("browser.underline_anchors", nsPresContext::PrefChangedCallback, (void*)this);
|
||||
mPrefs->RegisterCallback("browser.anchor_color", nsPresContext::PrefChangedCallback, (void*)this);
|
||||
mPrefs->RegisterCallback("browser.active_color", nsPresContext::PrefChangedCallback, (void*)this);
|
||||
mPrefs->RegisterCallback("browser.visited_color", nsPresContext::PrefChangedCallback, (void*)this);
|
||||
mPrefs->RegisterCallback("network.image.imageBehavior", nsPresContext::PrefChangedCallback, (void*)this);
|
||||
mPrefs->RegisterCallback("image.animation_mode", nsPresContext::PrefChangedCallback, (void*)this);
|
||||
|
@ -1160,6 +1166,14 @@ nsPresContext::GetDefaultLinkColor(nscolor* aColor)
|
|||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsPresContext::GetDefaultActiveLinkColor(nscolor* aColor)
|
||||
{
|
||||
NS_PRECONDITION(aColor, "null out param");
|
||||
*aColor = mActiveLinkColor;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsPresContext::GetDefaultVisitedLinkColor(nscolor* aColor)
|
||||
{
|
||||
|
@ -1232,6 +1246,13 @@ nsPresContext::SetDefaultLinkColor(nscolor aColor)
|
|||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsPresContext::SetDefaultActiveLinkColor(nscolor aColor)
|
||||
{
|
||||
mActiveLinkColor = aColor;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsPresContext::SetDefaultVisitedLinkColor(nscolor aColor)
|
||||
{
|
||||
|
|
|
@ -121,6 +121,7 @@ public:
|
|||
NS_IMETHOD GetDefaultColor(nscolor* aColor);
|
||||
NS_IMETHOD GetDefaultBackgroundColor(nscolor* aColor);
|
||||
NS_IMETHOD GetDefaultLinkColor(nscolor* aColor);
|
||||
NS_IMETHOD GetDefaultActiveLinkColor(nscolor* aColor);
|
||||
NS_IMETHOD GetDefaultVisitedLinkColor(nscolor* aColor);
|
||||
|
||||
NS_IMETHOD GetFocusBackgroundColor(nscolor* aColor);
|
||||
|
@ -131,6 +132,7 @@ public:
|
|||
NS_IMETHOD SetDefaultColor(nscolor aColor);
|
||||
NS_IMETHOD SetDefaultBackgroundColor(nscolor aColor);
|
||||
NS_IMETHOD SetDefaultLinkColor(nscolor aColor);
|
||||
NS_IMETHOD SetDefaultActiveLinkColor(nscolor aColor);
|
||||
NS_IMETHOD SetDefaultVisitedLinkColor(nscolor aColor);
|
||||
|
||||
NS_IMETHOD LoadImage(nsIURI* aURL,
|
||||
|
@ -240,6 +242,7 @@ protected:
|
|||
nscolor mDefaultColor; // set in GetUserPrefs
|
||||
nscolor mDefaultBackgroundColor; // set in GetUserPrefs
|
||||
nscolor mLinkColor; // set in GetUserPrefs
|
||||
nscolor mActiveLinkColor; // set in GetUserPrefs
|
||||
nscolor mVisitedLinkColor; // set in GetUserPrefs
|
||||
nscolor mFocusTextColor; // set in GetUserPrefs
|
||||
nscolor mFocusBackgroundColor; // set in GetUserPrefs
|
||||
|
|
|
@ -2352,114 +2352,87 @@ PresShell::SetPrefNoScriptRule()
|
|||
nsresult PresShell::SetPrefLinkRules(void)
|
||||
{
|
||||
NS_ASSERTION(mPresContext,"null prescontext not allowed");
|
||||
if (mPresContext) {
|
||||
nsresult result = NS_OK;
|
||||
|
||||
if (!mPrefStyleSheet) {
|
||||
result = CreatePreferenceStyleSheet();
|
||||
}
|
||||
if (NS_SUCCEEDED(result)) {
|
||||
NS_ASSERTION(mPrefStyleSheet, "prefstylesheet should not be null");
|
||||
|
||||
// get the DOM interface to the stylesheet
|
||||
nsCOMPtr<nsIDOMCSSStyleSheet> sheet(do_QueryInterface(mPrefStyleSheet,&result));
|
||||
if (NS_SUCCEEDED(result)) {
|
||||
|
||||
#ifdef DEBUG_attinasi
|
||||
printf(" - Creating rules for link and visited colors\n");
|
||||
#endif
|
||||
|
||||
// support default link colors:
|
||||
// this means the link colors need to be overridable,
|
||||
// which they are if we put them in the agent stylesheet,
|
||||
// though if using an override sheet this will cause authors grief still
|
||||
// In the agent stylesheet, they are !important when we are ignoring document colors
|
||||
//
|
||||
// XXX: Do active links and visited links get another color?
|
||||
// They are red in the html.css rules, but there is no pref for their color.
|
||||
|
||||
nscolor linkColor, visitedColor;
|
||||
result = mPresContext->GetDefaultLinkColor(&linkColor);
|
||||
if (NS_SUCCEEDED(result)) {
|
||||
result = mPresContext->GetDefaultVisitedLinkColor(&visitedColor);
|
||||
}
|
||||
if (NS_SUCCEEDED(result)) {
|
||||
// insert a rule to make links the preferred color
|
||||
PRUint32 index = 0;
|
||||
nsAutoString strColor;
|
||||
PRBool useDocColors = PR_TRUE;
|
||||
|
||||
// see if we need to create the rules first
|
||||
mPresContext->GetCachedBoolPref(kPresContext_UseDocumentColors, useDocColors);
|
||||
|
||||
///////////////////////////////////////////////////////////////
|
||||
// - links: '*|*:link {color: #RRGGBB [!important];}'
|
||||
ColorToString(linkColor,strColor);
|
||||
NS_NAMED_LITERAL_STRING(notImportantStr, "}");
|
||||
NS_NAMED_LITERAL_STRING(importantStr, "!important}");
|
||||
const nsAString& ruleClose = useDocColors ? notImportantStr : importantStr;
|
||||
result = sheet->InsertRule(NS_LITERAL_STRING("*|*:link{color:") +
|
||||
strColor +
|
||||
ruleClose,
|
||||
sInsertPrefSheetRulesAt, &index);
|
||||
NS_ENSURE_SUCCESS(result, result);
|
||||
|
||||
///////////////////////////////////////////////////////////////
|
||||
// - visited links '*|*:visited {color: #RRGGBB [!important];}'
|
||||
ColorToString(visitedColor,strColor);
|
||||
// insert the rule
|
||||
result = sheet->InsertRule(NS_LITERAL_STRING("*|*:visited{color:") +
|
||||
strColor +
|
||||
ruleClose,
|
||||
sInsertPrefSheetRulesAt, &index);
|
||||
|
||||
///////////////////////////////////////////////////////////////
|
||||
// - active links '*|*:-moz-any-link {color: red [!important];}'
|
||||
// This has to be here (i.e. we can't just rely on the rule in the UA stylesheet)
|
||||
// because this entire stylesheet is at the user level (not UA level) and so
|
||||
// the two rules above override the rule in the UA stylesheet regardless of the
|
||||
// weights of the respective rules.
|
||||
result = sheet->InsertRule(NS_LITERAL_STRING("*|*:-moz-any-link:active{color:red") +
|
||||
ruleClose,
|
||||
sInsertPrefSheetRulesAt, &index);
|
||||
}
|
||||
|
||||
if (NS_SUCCEEDED(result)) {
|
||||
PRBool underlineLinks = PR_TRUE;
|
||||
result = mPresContext->GetCachedBoolPref(kPresContext_UnderlineLinks,underlineLinks);
|
||||
if (NS_SUCCEEDED(result)) {
|
||||
// create a rule for underline: on or off
|
||||
PRUint32 index = 0;
|
||||
nsAutoString strRule;
|
||||
if (underlineLinks) {
|
||||
// create a rule to make underlining happen
|
||||
// ':link, :visited {text-decoration:[underline|none];}'
|
||||
// no need for important, we want these to be overridable
|
||||
// NOTE: these must go in the agent stylesheet or they cannot be
|
||||
// overridden by authors
|
||||
#ifdef DEBUG_attinasi
|
||||
printf (" - Creating rules for enabling link underlines\n");
|
||||
#endif
|
||||
// make a rule to make text-decoration: underline happen for links
|
||||
strRule.Append(NS_LITERAL_STRING("*|*:-moz-any-link{text-decoration:underline}"));
|
||||
} else {
|
||||
#ifdef DEBUG_attinasi
|
||||
printf (" - Creating rules for disabling link underlines\n");
|
||||
#endif
|
||||
// make a rule to make text-decoration: none happen for links
|
||||
strRule.Append(NS_LITERAL_STRING("*|*:-moz-any-link{text-decoration:none}"));
|
||||
}
|
||||
|
||||
// ...now insert the rule
|
||||
result = sheet->InsertRule(strRule, sInsertPrefSheetRulesAt, &index);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
} else {
|
||||
if (!mPresContext) {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
nsresult rv = NS_OK;
|
||||
|
||||
if (!mPrefStyleSheet) {
|
||||
rv = CreatePreferenceStyleSheet();
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
}
|
||||
|
||||
NS_ASSERTION(mPrefStyleSheet, "prefstylesheet should not be null");
|
||||
|
||||
// get the DOM interface to the stylesheet
|
||||
nsCOMPtr<nsIDOMCSSStyleSheet> sheet(do_QueryInterface(mPrefStyleSheet, &rv));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
// support default link colors:
|
||||
// this means the link colors need to be overridable,
|
||||
// which they are if we put them in the agent stylesheet,
|
||||
// though if using an override sheet this will cause authors grief still
|
||||
// In the agent stylesheet, they are !important when we are ignoring document colors
|
||||
|
||||
nscolor linkColor, activeColor, visitedColor;
|
||||
|
||||
rv = mPresContext->GetDefaultLinkColor(&linkColor);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
rv = mPresContext->GetDefaultActiveLinkColor(&activeColor);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
rv = mPresContext->GetDefaultVisitedLinkColor(&visitedColor);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
PRBool useDocColors = PR_TRUE;
|
||||
mPresContext->GetCachedBoolPref(kPresContext_UseDocumentColors, useDocColors);
|
||||
NS_NAMED_LITERAL_STRING(notImportantStr, "}");
|
||||
NS_NAMED_LITERAL_STRING(importantStr, "!important}");
|
||||
const nsAString& ruleClose = useDocColors ? notImportantStr : importantStr;
|
||||
PRUint32 index = 0;
|
||||
nsAutoString strColor;
|
||||
|
||||
// insert a rule to color links: '*|*:link {color: #RRGGBB [!important];}'
|
||||
ColorToString(linkColor, strColor);
|
||||
rv = sheet->InsertRule(NS_LITERAL_STRING("*|*:link{color:") +
|
||||
strColor + ruleClose,
|
||||
sInsertPrefSheetRulesAt, &index);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
// - visited links: '*|*:visited {color: #RRGGBB [!important];}'
|
||||
ColorToString(visitedColor, strColor);
|
||||
rv = sheet->InsertRule(NS_LITERAL_STRING("*|*:visited{color:") +
|
||||
strColor + ruleClose,
|
||||
sInsertPrefSheetRulesAt, &index);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
// - active links: '*|*:-moz-any-link:active {color: #RRGGBB [!important];}'
|
||||
ColorToString(activeColor, strColor);
|
||||
rv = sheet->InsertRule(NS_LITERAL_STRING("*|*:-moz-any-link:active{color:") +
|
||||
strColor + ruleClose,
|
||||
sInsertPrefSheetRulesAt, &index);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
PRBool underlineLinks = PR_TRUE;
|
||||
rv = mPresContext->GetCachedBoolPref(kPresContext_UnderlineLinks, underlineLinks);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
if (underlineLinks) {
|
||||
// create a rule to make underlining happen
|
||||
// '*|*:-moz-any-link {text-decoration:[underline|none];}'
|
||||
// no need for important, we want these to be overridable
|
||||
// NOTE: these must go in the agent stylesheet or they cannot be
|
||||
// overridden by authors
|
||||
rv = sheet->InsertRule(NS_LITERAL_STRING("*|*:-moz-any-link{text-decoration:underline}"),
|
||||
sInsertPrefSheetRulesAt, &index);
|
||||
} else {
|
||||
rv = sheet->InsertRule(NS_LITERAL_STRING("*|*:-moz-any-link{text-decoration:none}"),
|
||||
sInsertPrefSheetRulesAt, &index);
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
nsresult PresShell::SetPrefFocusRules(void)
|
||||
|
|
|
@ -116,10 +116,6 @@
|
|||
-moz-user-focus: normal;
|
||||
}
|
||||
|
||||
*|*:-moz-any-link:active {
|
||||
color: red;
|
||||
}
|
||||
|
||||
*|*:-moz-any-link:focus {
|
||||
-moz-outline: 1px dotted invert;
|
||||
}
|
||||
|
|
|
@ -66,6 +66,7 @@
|
|||
// OUTPUT_CLASS=nsCSSKeywords
|
||||
// MACRO_NAME=CSS_KEY
|
||||
|
||||
CSS_KEY(-moz-activehyperlinktext, _moz_activehyperlinktext)
|
||||
CSS_KEY(-moz-alias, _moz_alias)
|
||||
CSS_KEY(-moz-all, _moz_all)
|
||||
CSS_KEY(-moz-anchor-decoration, _moz_anchor_decoration)
|
||||
|
|
|
@ -352,6 +352,7 @@ const PRInt32 nsCSSProps::kColorKTable[] = {
|
|||
eCSSKeyword_window, nsILookAndFeel::eColor_window,
|
||||
eCSSKeyword_windowframe, nsILookAndFeel::eColor_windowframe,
|
||||
eCSSKeyword_windowtext, nsILookAndFeel::eColor_windowtext,
|
||||
eCSSKeyword__moz_activehyperlinktext, NS_COLOR_MOZ_ACTIVEHYPERLINKTEXT,
|
||||
eCSSKeyword__moz_buttondefault, nsILookAndFeel::eColor__moz_buttondefault,
|
||||
eCSSKeyword__moz_field, nsILookAndFeel::eColor__moz_field,
|
||||
eCSSKeyword__moz_fieldtext, nsILookAndFeel::eColor__moz_fieldtext,
|
||||
|
|
|
@ -365,6 +365,11 @@ static PRBool SetColor(const nsCSSValue& aValue, const nscolor aParentColor,
|
|||
result = PR_TRUE;
|
||||
}
|
||||
break;
|
||||
case NS_COLOR_MOZ_ACTIVEHYPERLINKTEXT:
|
||||
if (NS_SUCCEEDED(aPresContext->GetDefaultActiveLinkColor(&aResult))) {
|
||||
result = PR_TRUE;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
NS_NOTREACHED("Should never have an unknown negative colorID.");
|
||||
break;
|
||||
|
|
|
@ -116,10 +116,6 @@
|
|||
-moz-user-focus: normal;
|
||||
}
|
||||
|
||||
*|*:-moz-any-link:active {
|
||||
color: red;
|
||||
}
|
||||
|
||||
*|*:-moz-any-link:focus {
|
||||
-moz-outline: 1px dotted invert;
|
||||
}
|
||||
|
|
|
@ -90,6 +90,7 @@ pref("browser.display.force_inline_alttext", false); // true = force ALT text fo
|
|||
pref("browser.display.normal_lineheight_calc_control", 2);
|
||||
pref("browser.display.show_image_placeholders", true); // true = show image placeholders while image is loaded and when image is broken
|
||||
pref("browser.anchor_color", "#0000EE");
|
||||
pref("browser.active_color", "#EE0000");
|
||||
pref("browser.visited_color", "#551A8B");
|
||||
pref("browser.underline_anchors", true);
|
||||
pref("browser.blink_allowed", true);
|
||||
|
|
|
@ -1,40 +0,0 @@
|
|||
function setColorWell(aPicker)
|
||||
{
|
||||
var colorRef = aPicker.nextSibling; // colour value is held here
|
||||
colorRef.setAttribute( "value", aPicker.color );
|
||||
}
|
||||
|
||||
function setColorWellSr(menu,otherId,setbackground)
|
||||
{
|
||||
// Find the colorWell and colorPicker in the hierarchy.
|
||||
var colorWell = menu.firstChild;
|
||||
var colorPicker = menu.firstChild.nextSibling.nextSibling.firstChild;
|
||||
var colorRef = menu.nextSibling; // colour value is held here
|
||||
|
||||
// Extract color from colorPicker and assign to colorWell.
|
||||
var color = colorPicker.getAttribute('color');
|
||||
// set colour values in the display
|
||||
setColorFromPicker( colorWell, color );
|
||||
// set the colour value internally for use in prefwindow
|
||||
colorRef.setAttribute( "value", color );
|
||||
}
|
||||
|
||||
function getColorFromWellAndSetValue(aPickerId)
|
||||
{
|
||||
var picker = document.getElementById(aPickerId);
|
||||
var colorRef = picker.nextSibling;
|
||||
var color = colorRef.getAttribute("value");
|
||||
picker.color = color;
|
||||
return color;
|
||||
}
|
||||
|
||||
function Startup()
|
||||
{
|
||||
getColorFromWellAndSetValue("foregroundtextmenu");
|
||||
getColorFromWellAndSetValue("backgroundmenu");
|
||||
getColorFromWellAndSetValue("unvisitedlinkmenu");
|
||||
getColorFromWellAndSetValue("visitedlinkmenu");
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
@ -33,7 +33,7 @@
|
|||
|
||||
<script type="application/x-javascript">
|
||||
<![CDATA[
|
||||
var _elementIDs = ["foregroundText", "background", "browserUseSystemColors", "unvisitedLinks", "visitedLinks", "browserUnderlineAnchors", "browserUseDocumentColors"];
|
||||
var _elementIDs = ["foregroundText", "background", "browserUseSystemColors", "unvisitedLinks", "activeLinks", "visitedLinks", "browserUnderlineAnchors", "browserUseDocumentColors"];
|
||||
]]>
|
||||
</script>
|
||||
|
||||
|
@ -69,6 +69,12 @@
|
|||
<colorpicker type="button" id="unvisitedlinkmenu" palettename="standard" onchange="setColorWell(this)"/>
|
||||
<data id="unvisitedLinks" preftype="string" prefstring="browser.anchor_color" prefattribute="value" wsm_attributes="value"/>
|
||||
</hbox>
|
||||
<hbox align="center" style="margin-top: 5px">
|
||||
<label value="&activeLinkColor.label;" accesskey="&activeLinkColor.accesskey;" control="activelinkmenu"/>
|
||||
<spacer flex="1"/>
|
||||
<colorpicker type="button" id="activelinkmenu" palettename="standard" onchange="setColorWell(this)"/>
|
||||
<data id="activeLinks" preftype="string" prefstring="browser.active_color" prefattribute="value" wsm_attributes="value"/>
|
||||
</hbox>
|
||||
<hbox align="center" style="margin-top: 5px">
|
||||
<label value="&visitedLinkColor.label;" accesskey="&visitedLinkColor.accesskey;" control="visitedlinkmenu"/>
|
||||
<spacer flex="1"/>
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
<!ENTITY links "Link Colors">
|
||||
<!ENTITY linkColor.label "Unvisited Links:">
|
||||
<!ENTITY linkColor.accesskey "l">
|
||||
<!ENTITY activeLinkColor.label "Active Links:">
|
||||
<!ENTITY activeLinkColor.accesskey "c">
|
||||
<!ENTITY visitedLinkColor.label "Visited Links:">
|
||||
<!ENTITY visitedLinkColor.accesskey "v">
|
||||
<!-- LOCALIZATION NOTE (someProvColors): This is the start of a sentence and will be followed by the following radio buttons. -->
|
||||
|
|
Загрузка…
Ссылка в новой задаче