mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-10 20:05:49 +00:00
Bug 181975 - Convert layout to use nsIPrefService, nsIPrefBranch, and friends.
r/sr=roc+moz
This commit is contained in:
parent
b3da95428f
commit
71f8783cae
@ -93,7 +93,8 @@
|
||||
#include "nsIAnonymousContentCreator.h"
|
||||
#include "nsIFrameManager.h"
|
||||
#include "nsIAttributeContent.h"
|
||||
#include "nsIPref.h"
|
||||
#include "nsIPrefBranch.h"
|
||||
#include "nsIPrefService.h"
|
||||
#include "nsLegendFrame.h"
|
||||
#include "nsIContentIterator.h"
|
||||
#include "nsBoxLayoutState.h"
|
||||
@ -4231,10 +4232,10 @@ nsCSSFrameConstructor::HasGfxScrollbars()
|
||||
#endif
|
||||
// Get the Prefs
|
||||
if (!mGotGfxPrefs) {
|
||||
nsCOMPtr<nsIPref> pref(do_GetService(NS_PREF_CONTRACTID));
|
||||
if (pref) {
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch(do_GetService(NS_PREFSERVICE_CONTRACTID));
|
||||
if (prefBranch) {
|
||||
PRBool hasGfxScroll = PR_FALSE; // use a temp since we have a PRPackedBool
|
||||
pref->GetBoolPref("nglayout.widget.gfxscrollbars", &hasGfxScroll);
|
||||
prefBranch->GetBoolPref("nglayout.widget.gfxscrollbars", &hasGfxScroll);
|
||||
mHasGfxScrollbars = hasGfxScroll;
|
||||
mGotGfxPrefs = PR_TRUE;
|
||||
} else {
|
||||
@ -4251,10 +4252,10 @@ PRBool
|
||||
nsCSSFrameConstructor::UseXBLForms()
|
||||
{
|
||||
if (!mGotXBLFormPrefs) {
|
||||
nsCOMPtr<nsIPref> pref(do_GetService(NS_PREF_CONTRACTID));
|
||||
if (pref) {
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch(do_GetService(NS_PREFSERVICE_CONTRACTID));
|
||||
if (prefBranch) {
|
||||
PRBool useXBLForms = PR_FALSE; // use a temp since we have a PRPackedBool
|
||||
pref->GetBoolPref("nglayout.debug.enable_xbl_forms", &useXBLForms);
|
||||
prefBranch->GetBoolPref("nglayout.debug.enable_xbl_forms", &useXBLForms);
|
||||
mUseXBLForms = useXBLForms;
|
||||
mGotXBLFormPrefs = PR_TRUE;
|
||||
}
|
||||
|
@ -75,7 +75,6 @@
|
||||
#ifdef IBMBIDI
|
||||
//-------------------------------IBM BIDI--------------------------------------
|
||||
// Mamdouh : Modifiaction of the caret to work with Bidi in the LTR and RTL
|
||||
#include "nsIPref.h"
|
||||
#include "nsLayoutAtoms.h"
|
||||
//------------------------------END OF IBM BIDI--------------------------------
|
||||
#endif //IBMBIDI
|
||||
|
@ -37,7 +37,9 @@
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsPresContext.h"
|
||||
#include "nsIPresShell.h"
|
||||
#include "nsIPref.h"
|
||||
#include "nsIPrefService.h"
|
||||
#include "nsIPrefBranchInternal.h"
|
||||
#include "nsISupportsPrimitives.h"
|
||||
#include "nsILinkHandler.h"
|
||||
#include "nsIDocShellTreeItem.h"
|
||||
#include "nsIStyleSet.h"
|
||||
@ -95,18 +97,6 @@ MakeColorPref(const char *colstr)
|
||||
return colorref;
|
||||
}
|
||||
|
||||
int PR_CALLBACK
|
||||
nsPresContext::PrefChangedCallback(const char* aPrefName, void* instance_data)
|
||||
{
|
||||
nsPresContext* presContext = (nsPresContext*)instance_data;
|
||||
|
||||
NS_ASSERTION(nsnull != presContext, "bad instance data");
|
||||
if (nsnull != presContext) {
|
||||
presContext->PreferenceChanged(aPrefName);
|
||||
}
|
||||
return 0; // PREF_OK
|
||||
}
|
||||
|
||||
#ifdef IBMBIDI
|
||||
PRBool
|
||||
IsVisualCharset(const nsAutoString& aCharset)
|
||||
@ -223,23 +213,22 @@ nsPresContext::~nsPresContext()
|
||||
if (mEventManager)
|
||||
mEventManager->SetPresContext(nsnull); // unclear if this is needed, but can't hurt
|
||||
|
||||
// Unregister preference callbacks
|
||||
if (mPrefs) {
|
||||
mPrefs->UnregisterCallback("font.", nsPresContext::PrefChangedCallback, (void*)this);
|
||||
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.visited_color", nsPresContext::PrefChangedCallback, (void*)this);
|
||||
mPrefs->UnregisterCallback("network.image.imageBehavior", nsPresContext::PrefChangedCallback, (void*)this);
|
||||
mPrefs->UnregisterCallback("image.animation_mode", nsPresContext::PrefChangedCallback, (void*)this);
|
||||
// Unregister preference observers
|
||||
nsCOMPtr<nsIPrefBranchInternal> prefInternal(do_QueryInterface(mPrefBranch));
|
||||
if (prefInternal) {
|
||||
prefInternal->RemoveObserver("browser.anchor_color", this);
|
||||
prefInternal->RemoveObserver("browser.display.", this);
|
||||
prefInternal->RemoveObserver("browser.underline_anchors", this);
|
||||
prefInternal->RemoveObserver("browser.visited_color", this);
|
||||
prefInternal->RemoveObserver("font.", this);
|
||||
prefInternal->RemoveObserver("image.animation_mode", this);
|
||||
prefInternal->RemoveObserver("network.image.imageBehavior", this);
|
||||
#ifdef IBMBIDI
|
||||
mPrefs->UnregisterCallback("bidi.", PrefChangedCallback, (void*)this);
|
||||
prefInternal->RemoveObserver("bidi.", this);
|
||||
#endif
|
||||
}
|
||||
#ifdef IBMBIDI
|
||||
if (mBidiUtils) {
|
||||
delete mBidiUtils;
|
||||
}
|
||||
delete mBidiUtils;
|
||||
#endif // IBMBIDI
|
||||
}
|
||||
|
||||
@ -262,7 +251,7 @@ static const char* const kGenericFont[] = {
|
||||
void
|
||||
nsPresContext::GetFontPreferences()
|
||||
{
|
||||
if (!mPrefs || !mLanguage)
|
||||
if (!mPrefBranch || !mLanguage)
|
||||
return;
|
||||
|
||||
/* Fetch the font prefs to be used -- see bug 61883 for details.
|
||||
@ -292,13 +281,12 @@ nsPresContext::GetFontPreferences()
|
||||
langGroupAtom->ToString(langGroup);
|
||||
|
||||
nsCAutoString pref;
|
||||
nsXPIDLString value;
|
||||
nsXPIDLCString cvalue;
|
||||
|
||||
// get the current applicable font-size unit
|
||||
enum {eUnit_unknown = -1, eUnit_px, eUnit_pt};
|
||||
PRInt32 unit = eUnit_px;
|
||||
nsresult rv = mPrefs->CopyCharPref("font.size.unit", getter_Copies(cvalue));
|
||||
nsresult rv = mPrefBranch->GetCharPref("font.size.unit", getter_Copies(cvalue));
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
if (!PL_strcmp(cvalue.get(), "px")) {
|
||||
unit = eUnit_px;
|
||||
@ -314,8 +302,9 @@ nsPresContext::GetFontPreferences()
|
||||
|
||||
// get font.minimum-size.[langGroup]
|
||||
PRInt32 size;
|
||||
pref.Assign("font.minimum-size."); pref.Append(NS_ConvertUCS2toUTF8(langGroup));
|
||||
rv = mPrefs->GetIntPref(pref.get(), &size);
|
||||
pref.Assign("font.minimum-size.");
|
||||
pref.Append(NS_ConvertUCS2toUTF8(langGroup));
|
||||
rv = mPrefBranch->GetIntPref(pref.get(), &size);
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
if (unit == eUnit_px) {
|
||||
mMinimumFontSize = NSFloatPixelsToTwips((float)size, p2t);
|
||||
@ -331,7 +320,7 @@ nsPresContext::GetFontPreferences()
|
||||
generic_dot_langGroup.Assign(kGenericFont[eType]);
|
||||
generic_dot_langGroup.Append(NS_ConvertUCS2toUTF8(langGroup));
|
||||
|
||||
nsFont* font;
|
||||
nsFont* font = nsnull;
|
||||
switch (eType) {
|
||||
case eDefaultFont_Variable: font = &mDefaultVariableFont; break;
|
||||
case eDefaultFont_Fixed: font = &mDefaultFixedFont; break;
|
||||
@ -347,14 +336,19 @@ nsPresContext::GetFontPreferences()
|
||||
// in GFX and will be queried there when hunting for alternative fonts)
|
||||
if (eType == eDefaultFont_Variable) {
|
||||
MAKE_FONT_PREF_KEY(pref, "font.name", generic_dot_langGroup);
|
||||
rv = mPrefs->CopyUnicharPref(pref.get(), getter_Copies(value));
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
font->name.Assign(value);
|
||||
nsCOMPtr<nsISupportsString> prefString;
|
||||
mPrefBranch->GetComplexValue(pref.get(),
|
||||
NS_GET_IID(nsISupportsString),
|
||||
getter_AddRefs(prefString));
|
||||
if (prefString) {
|
||||
prefString->GetData(font->name);
|
||||
}
|
||||
else {
|
||||
rv = mPrefs->CopyUnicharPref("font.default", getter_Copies(value));
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
mDefaultVariableFont.name.Assign(value);
|
||||
mPrefBranch->GetComplexValue("font.default",
|
||||
NS_GET_IID(nsISupportsString),
|
||||
getter_AddRefs(prefString));
|
||||
if (prefString) {
|
||||
prefString->GetData(mDefaultVariableFont.name);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -381,7 +375,7 @@ nsPresContext::GetFontPreferences()
|
||||
// get font.size.[generic].[langGroup]
|
||||
// size=0 means 'Auto', i.e., generic fonts retain the size of the variable font
|
||||
MAKE_FONT_PREF_KEY(pref, "font.size", generic_dot_langGroup);
|
||||
rv = mPrefs->GetIntPref(pref.get(), &size);
|
||||
rv = mPrefBranch->GetIntPref(pref.get(), &size);
|
||||
if (NS_SUCCEEDED(rv) && size > 0) {
|
||||
if (unit == eUnit_px) {
|
||||
font->size = NSFloatPixelsToTwips((float)size, p2t);
|
||||
@ -394,7 +388,7 @@ nsPresContext::GetFontPreferences()
|
||||
// get font.size-adjust.[generic].[langGroup]
|
||||
// XXX only applicable on GFX ports that handle |font-size-adjust|
|
||||
MAKE_FONT_PREF_KEY(pref, "font.size-adjust", generic_dot_langGroup);
|
||||
rv = mPrefs->CopyCharPref(pref.get(), getter_Copies(cvalue));
|
||||
rv = mPrefBranch->GetCharPref(pref.get(), getter_Copies(cvalue));
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
font->sizeAdjust = (float)atof(cvalue.get());
|
||||
}
|
||||
@ -421,15 +415,15 @@ nsPresContext::GetDocumentColorPreferences()
|
||||
usePrefColors = PR_FALSE;
|
||||
}
|
||||
if (usePrefColors) {
|
||||
if (NS_SUCCEEDED(mPrefs->GetBoolPref("browser.display.use_system_colors", &boolPref))) {
|
||||
if (NS_SUCCEEDED(mPrefBranch->GetBoolPref("browser.display.use_system_colors", &boolPref))) {
|
||||
usePrefColors = !boolPref;
|
||||
}
|
||||
}
|
||||
if (usePrefColors) {
|
||||
if (NS_SUCCEEDED(mPrefs->CopyCharPref("browser.display.foreground_color", getter_Copies(colorStr)))) {
|
||||
if (NS_SUCCEEDED(mPrefBranch->GetCharPref("browser.display.foreground_color", getter_Copies(colorStr)))) {
|
||||
mDefaultColor = MakeColorPref(colorStr);
|
||||
}
|
||||
if (NS_SUCCEEDED(mPrefs->CopyCharPref("browser.display.background_color", getter_Copies(colorStr)))) {
|
||||
if (NS_SUCCEEDED(mPrefBranch->GetCharPref("browser.display.background_color", getter_Copies(colorStr)))) {
|
||||
mDefaultBackgroundColor = MakeColorPref(colorStr);
|
||||
}
|
||||
}
|
||||
@ -445,7 +439,7 @@ nsPresContext::GetDocumentColorPreferences()
|
||||
}
|
||||
}
|
||||
|
||||
if (NS_SUCCEEDED(mPrefs->GetBoolPref("browser.display.use_document_colors", &boolPref))) {
|
||||
if (NS_SUCCEEDED(mPrefBranch->GetBoolPref("browser.display.use_document_colors", &boolPref))) {
|
||||
mUseDocumentColors = boolPref;
|
||||
}
|
||||
}
|
||||
@ -453,13 +447,13 @@ nsPresContext::GetDocumentColorPreferences()
|
||||
void
|
||||
nsPresContext::GetUserPreferences()
|
||||
{
|
||||
PRInt32 prefInt;
|
||||
PRInt32 prefInt = 0;
|
||||
|
||||
if (NS_SUCCEEDED(mPrefs->GetIntPref("browser.display.base_font_scaler", &prefInt))) {
|
||||
if (NS_SUCCEEDED(mPrefBranch->GetIntPref("browser.display.base_font_scaler", &prefInt))) {
|
||||
mFontScaler = prefInt;
|
||||
}
|
||||
|
||||
if (NS_SUCCEEDED(mPrefs->GetIntPref("nglayout.widget.mode", &prefInt))) {
|
||||
if (NS_SUCCEEDED(mPrefBranch->GetIntPref("nglayout.widget.mode", &prefInt))) {
|
||||
mWidgetRenderingMode = (enum nsWidgetRendering)prefInt; // bad cast
|
||||
}
|
||||
|
||||
@ -468,78 +462,75 @@ nsPresContext::GetUserPreferences()
|
||||
|
||||
// * link colors
|
||||
PRBool boolPref;
|
||||
nsXPIDLCString colorStr;
|
||||
if (NS_SUCCEEDED(mPrefs->GetBoolPref("browser.underline_anchors", &boolPref))) {
|
||||
nsXPIDLCString stringPref;
|
||||
if (NS_SUCCEEDED(mPrefBranch->GetBoolPref("browser.underline_anchors", &boolPref))) {
|
||||
mUnderlineLinks = boolPref;
|
||||
}
|
||||
if (NS_SUCCEEDED(mPrefs->CopyCharPref("browser.anchor_color", getter_Copies(colorStr)))) {
|
||||
mLinkColor = MakeColorPref(colorStr);
|
||||
if (NS_SUCCEEDED(mPrefBranch->GetCharPref("browser.anchor_color", getter_Copies(stringPref)))) {
|
||||
mLinkColor = MakeColorPref(stringPref);
|
||||
}
|
||||
if (NS_SUCCEEDED(mPrefs->CopyCharPref("browser.visited_color", getter_Copies(colorStr)))) {
|
||||
mVisitedLinkColor = MakeColorPref(colorStr);
|
||||
if (NS_SUCCEEDED(mPrefBranch->GetCharPref("browser.visited_color", getter_Copies(stringPref)))) {
|
||||
mVisitedLinkColor = MakeColorPref(stringPref);
|
||||
}
|
||||
|
||||
|
||||
if (NS_SUCCEEDED(mPrefs->GetBoolPref("browser.display.use_focus_colors", &boolPref))) {
|
||||
if (NS_SUCCEEDED(mPrefBranch->GetBoolPref("browser.display.use_focus_colors", &boolPref))) {
|
||||
mUseFocusColors = boolPref;
|
||||
mFocusTextColor = mDefaultColor;
|
||||
mFocusBackgroundColor = mDefaultBackgroundColor;
|
||||
if (NS_SUCCEEDED(mPrefs->CopyCharPref("browser.display.focus_text_color", getter_Copies(colorStr)))) {
|
||||
mFocusTextColor = MakeColorPref(colorStr);
|
||||
if (NS_SUCCEEDED(mPrefBranch->GetCharPref("browser.display.focus_text_color", getter_Copies(stringPref)))) {
|
||||
mFocusTextColor = MakeColorPref(stringPref);
|
||||
}
|
||||
if (NS_SUCCEEDED(mPrefs->CopyCharPref("browser.display.focus_background_color", getter_Copies(colorStr)))) {
|
||||
mFocusBackgroundColor = MakeColorPref(colorStr);
|
||||
if (NS_SUCCEEDED(mPrefBranch->GetCharPref("browser.display.focus_background_color", getter_Copies(stringPref)))) {
|
||||
mFocusBackgroundColor = MakeColorPref(stringPref);
|
||||
}
|
||||
}
|
||||
|
||||
if (NS_SUCCEEDED(mPrefs->GetIntPref("browser.display.focus_ring_width", &prefInt))) {
|
||||
if (NS_SUCCEEDED(mPrefBranch->GetIntPref("browser.display.focus_ring_width", &prefInt))) {
|
||||
mFocusRingWidth = prefInt;
|
||||
}
|
||||
|
||||
if (NS_SUCCEEDED(mPrefs->GetBoolPref("browser.display.focus_ring_on_anything", &boolPref))) {
|
||||
if (NS_SUCCEEDED(mPrefBranch->GetBoolPref("browser.display.focus_ring_on_anything", &boolPref))) {
|
||||
mFocusRingOnAnything = boolPref;
|
||||
}
|
||||
|
||||
// * use fonts?
|
||||
if (NS_SUCCEEDED(mPrefs->GetIntPref("browser.display.use_document_fonts", &prefInt))) {
|
||||
if (NS_SUCCEEDED(mPrefBranch->GetIntPref("browser.display.use_document_fonts", &prefInt))) {
|
||||
mUseDocumentFonts = prefInt == 0 ? PR_FALSE : PR_TRUE;
|
||||
}
|
||||
|
||||
GetFontPreferences();
|
||||
|
||||
// * image animation
|
||||
char* animatePref = 0;
|
||||
nsresult rv = mPrefs->CopyCharPref("image.animation_mode", &animatePref);
|
||||
if (NS_SUCCEEDED(rv) && animatePref) {
|
||||
if (!nsCRT::strcmp(animatePref, "normal"))
|
||||
nsresult rv = mPrefBranch->GetCharPref("image.animation_mode", getter_Copies(stringPref));
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
if (stringPref.Equals("normal"))
|
||||
mImageAnimationModePref = imgIContainer::kNormalAnimMode;
|
||||
else if (!nsCRT::strcmp(animatePref, "none"))
|
||||
else if (stringPref.Equals("none"))
|
||||
mImageAnimationModePref = imgIContainer::kDontAnimMode;
|
||||
else if (!nsCRT::strcmp(animatePref, "once"))
|
||||
else if (stringPref.Equals("once"))
|
||||
mImageAnimationModePref = imgIContainer::kLoopOnceAnimMode;
|
||||
nsMemory::Free(animatePref);
|
||||
}
|
||||
|
||||
#ifdef IBMBIDI
|
||||
if (NS_SUCCEEDED(mPrefs->GetIntPref("bidi.direction", &prefInt))) {
|
||||
if (NS_SUCCEEDED(mPrefBranch->GetIntPref("bidi.direction", &prefInt))) {
|
||||
SET_BIDI_OPTION_DIRECTION(mBidi, prefInt);
|
||||
}
|
||||
if (NS_SUCCEEDED(mPrefs->GetIntPref("bidi.texttype", &prefInt))) {
|
||||
if (NS_SUCCEEDED(mPrefBranch->GetIntPref("bidi.texttype", &prefInt))) {
|
||||
SET_BIDI_OPTION_TEXTTYPE(mBidi, prefInt);
|
||||
}
|
||||
if (NS_SUCCEEDED(mPrefs->GetIntPref("bidi.controlstextmode", &prefInt))) {
|
||||
if (NS_SUCCEEDED(mPrefBranch->GetIntPref("bidi.controlstextmode", &prefInt))) {
|
||||
SET_BIDI_OPTION_CONTROLSTEXTMODE(mBidi, prefInt);
|
||||
}
|
||||
if (NS_SUCCEEDED(mPrefs->GetIntPref("bidi.clipboardtextmode", &prefInt))) {
|
||||
if (NS_SUCCEEDED(mPrefBranch->GetIntPref("bidi.clipboardtextmode", &prefInt))) {
|
||||
SET_BIDI_OPTION_CLIPBOARDTEXTMODE(mBidi, prefInt);
|
||||
}
|
||||
if (NS_SUCCEEDED(mPrefs->GetIntPref("bidi.numeral", &prefInt))) {
|
||||
if (NS_SUCCEEDED(mPrefBranch->GetIntPref("bidi.numeral", &prefInt))) {
|
||||
SET_BIDI_OPTION_NUMERAL(mBidi, prefInt);
|
||||
}
|
||||
if (NS_SUCCEEDED(mPrefs->GetIntPref("bidi.support", &prefInt))) {
|
||||
if (NS_SUCCEEDED(mPrefBranch->GetIntPref("bidi.support", &prefInt))) {
|
||||
SET_BIDI_OPTION_SUPPORT(mBidi, prefInt);
|
||||
}
|
||||
if (NS_SUCCEEDED(mPrefs->GetIntPref("bidi.characterset", &prefInt))) {
|
||||
if (NS_SUCCEEDED(mPrefBranch->GetIntPref("bidi.characterset", &prefInt))) {
|
||||
SET_BIDI_OPTION_CHARACTERSET(mBidi, prefInt);
|
||||
}
|
||||
#endif
|
||||
@ -634,18 +625,19 @@ nsPresContext::Init(nsIDeviceContext* aDeviceContext)
|
||||
mDeviceContext = dont_QueryInterface(aDeviceContext);
|
||||
|
||||
mLangService = do_GetService(NS_LANGUAGEATOMSERVICE_CONTRACTID);
|
||||
mPrefs = do_GetService(NS_PREF_CONTRACTID);
|
||||
if (mPrefs) {
|
||||
// Register callbacks so we're notified when the preferences change
|
||||
mPrefs->RegisterCallback("font.", nsPresContext::PrefChangedCallback, (void*)this);
|
||||
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.visited_color", nsPresContext::PrefChangedCallback, (void*)this);
|
||||
mPrefs->RegisterCallback("network.image.imageBehavior", nsPresContext::PrefChangedCallback, (void*)this);
|
||||
mPrefs->RegisterCallback("image.animation_mode", nsPresContext::PrefChangedCallback, (void*)this);
|
||||
mPrefBranch = do_GetService(NS_PREFSERVICE_CONTRACTID);
|
||||
nsCOMPtr<nsIPrefBranchInternal> prefInternal(do_QueryInterface(mPrefBranch));
|
||||
if (prefInternal) {
|
||||
// Register observers so we're notified when the preferences change
|
||||
prefInternal->AddObserver("browser.anchor_color", this, PR_FALSE);
|
||||
prefInternal->AddObserver("browser.display.", this, PR_FALSE);
|
||||
prefInternal->AddObserver("browser.underline_anchors", this, PR_FALSE);
|
||||
prefInternal->AddObserver("browser.visited_color", this, PR_FALSE);
|
||||
prefInternal->AddObserver("font.", this, PR_FALSE);
|
||||
prefInternal->AddObserver("image.animation_mode", this, PR_FALSE);
|
||||
prefInternal->AddObserver("network.image.imageBehavior", this, PR_FALSE);
|
||||
#ifdef IBMBIDI
|
||||
mPrefs->RegisterCallback("bidi.", PrefChangedCallback, (void*)this);
|
||||
prefInternal->AddObserver("bidi.", this, PR_FALSE);
|
||||
#endif
|
||||
|
||||
// Initialize our state from the user preferences
|
||||
@ -751,6 +743,11 @@ nsPresContext::Observe(nsISupports* aSubject,
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
if (!nsCRT::strcmp(aTopic, NS_PREFBRANCH_PREFCHANGE_TOPIC_ID)) {
|
||||
PreferenceChanged(NS_LossyConvertUCS2toASCII(aData).get());
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_WARNING("unrecognized topic in nsPresContext::Observe");
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
@ -60,7 +60,6 @@ class nsIFrame;
|
||||
class nsIImage;
|
||||
class nsILinkHandler;
|
||||
class nsIPresShell;
|
||||
class nsIPref;
|
||||
class nsIStyleContext;
|
||||
class nsIAtom;
|
||||
class nsString;
|
||||
|
@ -57,7 +57,8 @@
|
||||
#include "prinrval.h"
|
||||
#include "nsVoidArray.h"
|
||||
#include "nsHashtable.h"
|
||||
#include "nsIPref.h"
|
||||
#include "nsIPrefBranch.h"
|
||||
#include "nsIPrefService.h"
|
||||
#include "nsIViewObserver.h"
|
||||
#include "nsContainerFrame.h"
|
||||
#include "nsIDeviceContext.h"
|
||||
@ -197,7 +198,6 @@ static nsresult CtlStyleWatch(PRUint32 aCtlValue, nsIStyleSet *aStyleSet);
|
||||
static NS_DEFINE_CID(kFrameSelectionCID, NS_FRAMESELECTION_CID);
|
||||
static NS_DEFINE_CID(kEventQueueServiceCID, NS_EVENTQUEUESERVICE_CID);
|
||||
static NS_DEFINE_CID(kViewCID, NS_VIEW_CID);
|
||||
static NS_DEFINE_CID(kPrefServiceCID, NS_PREF_CID);
|
||||
|
||||
#undef NOISY
|
||||
|
||||
@ -1694,10 +1694,11 @@ PresShell::Init(nsIDocument* aDocument,
|
||||
gAsyncReflowDuringDocLoad = PR_TRUE;
|
||||
|
||||
// Get the prefs service
|
||||
nsCOMPtr<nsIPref> prefs(do_GetService(kPrefServiceCID, &result));
|
||||
if (NS_SUCCEEDED(result)) {
|
||||
prefs->GetIntPref("layout.reflow.timeslice", &gMaxRCProcessingTime);
|
||||
prefs->GetBoolPref("layout.reflow.async.duringDocLoad", &gAsyncReflowDuringDocLoad);
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch(do_GetService(NS_PREFSERVICE_CONTRACTID));
|
||||
if (prefBranch) {
|
||||
prefBranch->GetIntPref("layout.reflow.timeslice", &gMaxRCProcessingTime);
|
||||
prefBranch->GetBoolPref("layout.reflow.async.duringDocLoad",
|
||||
&gAsyncReflowDuringDocLoad);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1716,16 +1717,19 @@ PresShell::Init(nsIDocument* aDocument,
|
||||
#endif
|
||||
|
||||
#ifdef MOZ_REFLOW_PERF
|
||||
// Get the prefs service
|
||||
nsCOMPtr<nsIPref> prefs(do_GetService(kPrefServiceCID, &result));
|
||||
if (NS_SUCCEEDED(result)) {
|
||||
if (mReflowCountMgr != nsnull) {
|
||||
if (mReflowCountMgr) {
|
||||
// Get the prefs service
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch(do_GetService(NS_PREFSERVICE_CONTRACTID));
|
||||
if (prefBranch) {
|
||||
PRBool paintFrameCounts = PR_FALSE;
|
||||
PRBool dumpFrameCounts = PR_FALSE;
|
||||
PRBool dumpFrameByFrameCounts = PR_FALSE;
|
||||
prefs->GetBoolPref("layout.reflow.showframecounts", &paintFrameCounts);
|
||||
prefs->GetBoolPref("layout.reflow.dumpframecounts", &dumpFrameCounts);
|
||||
prefs->GetBoolPref("layout.reflow.dumpframebyframecounts", &dumpFrameByFrameCounts);
|
||||
prefBranch->GetBoolPref("layout.reflow.showframecounts",
|
||||
&paintFrameCounts);
|
||||
prefBranch->GetBoolPref("layout.reflow.dumpframecounts",
|
||||
&dumpFrameCounts);
|
||||
prefBranch->GetBoolPref("layout.reflow.dumpframebyframecounts",
|
||||
&dumpFrameByFrameCounts);
|
||||
|
||||
mReflowCountMgr->SetDumpFrameCounts(dumpFrameCounts);
|
||||
mReflowCountMgr->SetDumpFrameByFrameCounts(dumpFrameByFrameCounts);
|
||||
@ -2854,9 +2858,9 @@ PresShell::InitialReflow(nscoord aWidth, nscoord aHeight)
|
||||
else {
|
||||
// Initialize the timer.
|
||||
PRInt32 delay = PAINTLOCK_EVENT_DELAY; // Use this value if we fail to get the pref value.
|
||||
nsCOMPtr<nsIPref> prefs(do_GetService(kPrefServiceCID));
|
||||
if (prefs)
|
||||
prefs->GetIntPref("nglayout.initialpaint.delay", &delay);
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch(do_GetService(NS_PREFSERVICE_CONTRACTID));
|
||||
if (prefBranch)
|
||||
prefBranch->GetIntPref("nglayout.initialpaint.delay", &delay);
|
||||
|
||||
nsCOMPtr<nsITimerInternal> ti = do_QueryInterface(mPaintSuppressionTimer);
|
||||
ti->SetIdle(PR_FALSE);
|
||||
@ -4004,9 +4008,9 @@ PresShell::GoToAnchor(const nsAString& aAnchorName)
|
||||
// Should we select the target?
|
||||
// This action is controlled by a preference: the default is to not select.
|
||||
PRBool selectAnchor = PR_FALSE;
|
||||
nsCOMPtr<nsIPref> prefs(do_GetService(kPrefServiceCID,&rv));
|
||||
if (NS_SUCCEEDED(rv) && prefs) {
|
||||
prefs->GetBoolPref("layout.selectanchor",&selectAnchor);
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch(do_GetService(NS_PREFSERVICE_CONTRACTID));
|
||||
if (prefBranch) {
|
||||
prefBranch->GetBoolPref("layout.selectanchor", &selectAnchor);
|
||||
}
|
||||
// Even if select anchor pref is false, we must still move the caret there.
|
||||
// That way tabbing will start from the new location
|
||||
|
@ -60,7 +60,6 @@ class nsIFrame;
|
||||
class nsIImage;
|
||||
class nsILinkHandler;
|
||||
class nsIPresShell;
|
||||
class nsIPref;
|
||||
class nsIStyleContext;
|
||||
class nsIAtom;
|
||||
class nsString;
|
||||
|
@ -60,7 +60,6 @@ class nsIFrame;
|
||||
class nsIImage;
|
||||
class nsILinkHandler;
|
||||
class nsIPresShell;
|
||||
class nsIPref;
|
||||
class nsIStyleContext;
|
||||
class nsIAtom;
|
||||
class nsString;
|
||||
|
@ -75,7 +75,6 @@
|
||||
#ifdef IBMBIDI
|
||||
//-------------------------------IBM BIDI--------------------------------------
|
||||
// Mamdouh : Modifiaction of the caret to work with Bidi in the LTR and RTL
|
||||
#include "nsIPref.h"
|
||||
#include "nsLayoutAtoms.h"
|
||||
//------------------------------END OF IBM BIDI--------------------------------
|
||||
#endif //IBMBIDI
|
||||
|
@ -37,7 +37,9 @@
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsPresContext.h"
|
||||
#include "nsIPresShell.h"
|
||||
#include "nsIPref.h"
|
||||
#include "nsIPrefService.h"
|
||||
#include "nsIPrefBranchInternal.h"
|
||||
#include "nsISupportsPrimitives.h"
|
||||
#include "nsILinkHandler.h"
|
||||
#include "nsIDocShellTreeItem.h"
|
||||
#include "nsIStyleSet.h"
|
||||
@ -95,18 +97,6 @@ MakeColorPref(const char *colstr)
|
||||
return colorref;
|
||||
}
|
||||
|
||||
int PR_CALLBACK
|
||||
nsPresContext::PrefChangedCallback(const char* aPrefName, void* instance_data)
|
||||
{
|
||||
nsPresContext* presContext = (nsPresContext*)instance_data;
|
||||
|
||||
NS_ASSERTION(nsnull != presContext, "bad instance data");
|
||||
if (nsnull != presContext) {
|
||||
presContext->PreferenceChanged(aPrefName);
|
||||
}
|
||||
return 0; // PREF_OK
|
||||
}
|
||||
|
||||
#ifdef IBMBIDI
|
||||
PRBool
|
||||
IsVisualCharset(const nsAutoString& aCharset)
|
||||
@ -223,23 +213,22 @@ nsPresContext::~nsPresContext()
|
||||
if (mEventManager)
|
||||
mEventManager->SetPresContext(nsnull); // unclear if this is needed, but can't hurt
|
||||
|
||||
// Unregister preference callbacks
|
||||
if (mPrefs) {
|
||||
mPrefs->UnregisterCallback("font.", nsPresContext::PrefChangedCallback, (void*)this);
|
||||
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.visited_color", nsPresContext::PrefChangedCallback, (void*)this);
|
||||
mPrefs->UnregisterCallback("network.image.imageBehavior", nsPresContext::PrefChangedCallback, (void*)this);
|
||||
mPrefs->UnregisterCallback("image.animation_mode", nsPresContext::PrefChangedCallback, (void*)this);
|
||||
// Unregister preference observers
|
||||
nsCOMPtr<nsIPrefBranchInternal> prefInternal(do_QueryInterface(mPrefBranch));
|
||||
if (prefInternal) {
|
||||
prefInternal->RemoveObserver("browser.anchor_color", this);
|
||||
prefInternal->RemoveObserver("browser.display.", this);
|
||||
prefInternal->RemoveObserver("browser.underline_anchors", this);
|
||||
prefInternal->RemoveObserver("browser.visited_color", this);
|
||||
prefInternal->RemoveObserver("font.", this);
|
||||
prefInternal->RemoveObserver("image.animation_mode", this);
|
||||
prefInternal->RemoveObserver("network.image.imageBehavior", this);
|
||||
#ifdef IBMBIDI
|
||||
mPrefs->UnregisterCallback("bidi.", PrefChangedCallback, (void*)this);
|
||||
prefInternal->RemoveObserver("bidi.", this);
|
||||
#endif
|
||||
}
|
||||
#ifdef IBMBIDI
|
||||
if (mBidiUtils) {
|
||||
delete mBidiUtils;
|
||||
}
|
||||
delete mBidiUtils;
|
||||
#endif // IBMBIDI
|
||||
}
|
||||
|
||||
@ -262,7 +251,7 @@ static const char* const kGenericFont[] = {
|
||||
void
|
||||
nsPresContext::GetFontPreferences()
|
||||
{
|
||||
if (!mPrefs || !mLanguage)
|
||||
if (!mPrefBranch || !mLanguage)
|
||||
return;
|
||||
|
||||
/* Fetch the font prefs to be used -- see bug 61883 for details.
|
||||
@ -292,13 +281,12 @@ nsPresContext::GetFontPreferences()
|
||||
langGroupAtom->ToString(langGroup);
|
||||
|
||||
nsCAutoString pref;
|
||||
nsXPIDLString value;
|
||||
nsXPIDLCString cvalue;
|
||||
|
||||
// get the current applicable font-size unit
|
||||
enum {eUnit_unknown = -1, eUnit_px, eUnit_pt};
|
||||
PRInt32 unit = eUnit_px;
|
||||
nsresult rv = mPrefs->CopyCharPref("font.size.unit", getter_Copies(cvalue));
|
||||
nsresult rv = mPrefBranch->GetCharPref("font.size.unit", getter_Copies(cvalue));
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
if (!PL_strcmp(cvalue.get(), "px")) {
|
||||
unit = eUnit_px;
|
||||
@ -314,8 +302,9 @@ nsPresContext::GetFontPreferences()
|
||||
|
||||
// get font.minimum-size.[langGroup]
|
||||
PRInt32 size;
|
||||
pref.Assign("font.minimum-size."); pref.Append(NS_ConvertUCS2toUTF8(langGroup));
|
||||
rv = mPrefs->GetIntPref(pref.get(), &size);
|
||||
pref.Assign("font.minimum-size.");
|
||||
pref.Append(NS_ConvertUCS2toUTF8(langGroup));
|
||||
rv = mPrefBranch->GetIntPref(pref.get(), &size);
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
if (unit == eUnit_px) {
|
||||
mMinimumFontSize = NSFloatPixelsToTwips((float)size, p2t);
|
||||
@ -331,7 +320,7 @@ nsPresContext::GetFontPreferences()
|
||||
generic_dot_langGroup.Assign(kGenericFont[eType]);
|
||||
generic_dot_langGroup.Append(NS_ConvertUCS2toUTF8(langGroup));
|
||||
|
||||
nsFont* font;
|
||||
nsFont* font = nsnull;
|
||||
switch (eType) {
|
||||
case eDefaultFont_Variable: font = &mDefaultVariableFont; break;
|
||||
case eDefaultFont_Fixed: font = &mDefaultFixedFont; break;
|
||||
@ -347,14 +336,19 @@ nsPresContext::GetFontPreferences()
|
||||
// in GFX and will be queried there when hunting for alternative fonts)
|
||||
if (eType == eDefaultFont_Variable) {
|
||||
MAKE_FONT_PREF_KEY(pref, "font.name", generic_dot_langGroup);
|
||||
rv = mPrefs->CopyUnicharPref(pref.get(), getter_Copies(value));
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
font->name.Assign(value);
|
||||
nsCOMPtr<nsISupportsString> prefString;
|
||||
mPrefBranch->GetComplexValue(pref.get(),
|
||||
NS_GET_IID(nsISupportsString),
|
||||
getter_AddRefs(prefString));
|
||||
if (prefString) {
|
||||
prefString->GetData(font->name);
|
||||
}
|
||||
else {
|
||||
rv = mPrefs->CopyUnicharPref("font.default", getter_Copies(value));
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
mDefaultVariableFont.name.Assign(value);
|
||||
mPrefBranch->GetComplexValue("font.default",
|
||||
NS_GET_IID(nsISupportsString),
|
||||
getter_AddRefs(prefString));
|
||||
if (prefString) {
|
||||
prefString->GetData(mDefaultVariableFont.name);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -381,7 +375,7 @@ nsPresContext::GetFontPreferences()
|
||||
// get font.size.[generic].[langGroup]
|
||||
// size=0 means 'Auto', i.e., generic fonts retain the size of the variable font
|
||||
MAKE_FONT_PREF_KEY(pref, "font.size", generic_dot_langGroup);
|
||||
rv = mPrefs->GetIntPref(pref.get(), &size);
|
||||
rv = mPrefBranch->GetIntPref(pref.get(), &size);
|
||||
if (NS_SUCCEEDED(rv) && size > 0) {
|
||||
if (unit == eUnit_px) {
|
||||
font->size = NSFloatPixelsToTwips((float)size, p2t);
|
||||
@ -394,7 +388,7 @@ nsPresContext::GetFontPreferences()
|
||||
// get font.size-adjust.[generic].[langGroup]
|
||||
// XXX only applicable on GFX ports that handle |font-size-adjust|
|
||||
MAKE_FONT_PREF_KEY(pref, "font.size-adjust", generic_dot_langGroup);
|
||||
rv = mPrefs->CopyCharPref(pref.get(), getter_Copies(cvalue));
|
||||
rv = mPrefBranch->GetCharPref(pref.get(), getter_Copies(cvalue));
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
font->sizeAdjust = (float)atof(cvalue.get());
|
||||
}
|
||||
@ -421,15 +415,15 @@ nsPresContext::GetDocumentColorPreferences()
|
||||
usePrefColors = PR_FALSE;
|
||||
}
|
||||
if (usePrefColors) {
|
||||
if (NS_SUCCEEDED(mPrefs->GetBoolPref("browser.display.use_system_colors", &boolPref))) {
|
||||
if (NS_SUCCEEDED(mPrefBranch->GetBoolPref("browser.display.use_system_colors", &boolPref))) {
|
||||
usePrefColors = !boolPref;
|
||||
}
|
||||
}
|
||||
if (usePrefColors) {
|
||||
if (NS_SUCCEEDED(mPrefs->CopyCharPref("browser.display.foreground_color", getter_Copies(colorStr)))) {
|
||||
if (NS_SUCCEEDED(mPrefBranch->GetCharPref("browser.display.foreground_color", getter_Copies(colorStr)))) {
|
||||
mDefaultColor = MakeColorPref(colorStr);
|
||||
}
|
||||
if (NS_SUCCEEDED(mPrefs->CopyCharPref("browser.display.background_color", getter_Copies(colorStr)))) {
|
||||
if (NS_SUCCEEDED(mPrefBranch->GetCharPref("browser.display.background_color", getter_Copies(colorStr)))) {
|
||||
mDefaultBackgroundColor = MakeColorPref(colorStr);
|
||||
}
|
||||
}
|
||||
@ -445,7 +439,7 @@ nsPresContext::GetDocumentColorPreferences()
|
||||
}
|
||||
}
|
||||
|
||||
if (NS_SUCCEEDED(mPrefs->GetBoolPref("browser.display.use_document_colors", &boolPref))) {
|
||||
if (NS_SUCCEEDED(mPrefBranch->GetBoolPref("browser.display.use_document_colors", &boolPref))) {
|
||||
mUseDocumentColors = boolPref;
|
||||
}
|
||||
}
|
||||
@ -453,13 +447,13 @@ nsPresContext::GetDocumentColorPreferences()
|
||||
void
|
||||
nsPresContext::GetUserPreferences()
|
||||
{
|
||||
PRInt32 prefInt;
|
||||
PRInt32 prefInt = 0;
|
||||
|
||||
if (NS_SUCCEEDED(mPrefs->GetIntPref("browser.display.base_font_scaler", &prefInt))) {
|
||||
if (NS_SUCCEEDED(mPrefBranch->GetIntPref("browser.display.base_font_scaler", &prefInt))) {
|
||||
mFontScaler = prefInt;
|
||||
}
|
||||
|
||||
if (NS_SUCCEEDED(mPrefs->GetIntPref("nglayout.widget.mode", &prefInt))) {
|
||||
if (NS_SUCCEEDED(mPrefBranch->GetIntPref("nglayout.widget.mode", &prefInt))) {
|
||||
mWidgetRenderingMode = (enum nsWidgetRendering)prefInt; // bad cast
|
||||
}
|
||||
|
||||
@ -468,78 +462,75 @@ nsPresContext::GetUserPreferences()
|
||||
|
||||
// * link colors
|
||||
PRBool boolPref;
|
||||
nsXPIDLCString colorStr;
|
||||
if (NS_SUCCEEDED(mPrefs->GetBoolPref("browser.underline_anchors", &boolPref))) {
|
||||
nsXPIDLCString stringPref;
|
||||
if (NS_SUCCEEDED(mPrefBranch->GetBoolPref("browser.underline_anchors", &boolPref))) {
|
||||
mUnderlineLinks = boolPref;
|
||||
}
|
||||
if (NS_SUCCEEDED(mPrefs->CopyCharPref("browser.anchor_color", getter_Copies(colorStr)))) {
|
||||
mLinkColor = MakeColorPref(colorStr);
|
||||
if (NS_SUCCEEDED(mPrefBranch->GetCharPref("browser.anchor_color", getter_Copies(stringPref)))) {
|
||||
mLinkColor = MakeColorPref(stringPref);
|
||||
}
|
||||
if (NS_SUCCEEDED(mPrefs->CopyCharPref("browser.visited_color", getter_Copies(colorStr)))) {
|
||||
mVisitedLinkColor = MakeColorPref(colorStr);
|
||||
if (NS_SUCCEEDED(mPrefBranch->GetCharPref("browser.visited_color", getter_Copies(stringPref)))) {
|
||||
mVisitedLinkColor = MakeColorPref(stringPref);
|
||||
}
|
||||
|
||||
|
||||
if (NS_SUCCEEDED(mPrefs->GetBoolPref("browser.display.use_focus_colors", &boolPref))) {
|
||||
if (NS_SUCCEEDED(mPrefBranch->GetBoolPref("browser.display.use_focus_colors", &boolPref))) {
|
||||
mUseFocusColors = boolPref;
|
||||
mFocusTextColor = mDefaultColor;
|
||||
mFocusBackgroundColor = mDefaultBackgroundColor;
|
||||
if (NS_SUCCEEDED(mPrefs->CopyCharPref("browser.display.focus_text_color", getter_Copies(colorStr)))) {
|
||||
mFocusTextColor = MakeColorPref(colorStr);
|
||||
if (NS_SUCCEEDED(mPrefBranch->GetCharPref("browser.display.focus_text_color", getter_Copies(stringPref)))) {
|
||||
mFocusTextColor = MakeColorPref(stringPref);
|
||||
}
|
||||
if (NS_SUCCEEDED(mPrefs->CopyCharPref("browser.display.focus_background_color", getter_Copies(colorStr)))) {
|
||||
mFocusBackgroundColor = MakeColorPref(colorStr);
|
||||
if (NS_SUCCEEDED(mPrefBranch->GetCharPref("browser.display.focus_background_color", getter_Copies(stringPref)))) {
|
||||
mFocusBackgroundColor = MakeColorPref(stringPref);
|
||||
}
|
||||
}
|
||||
|
||||
if (NS_SUCCEEDED(mPrefs->GetIntPref("browser.display.focus_ring_width", &prefInt))) {
|
||||
if (NS_SUCCEEDED(mPrefBranch->GetIntPref("browser.display.focus_ring_width", &prefInt))) {
|
||||
mFocusRingWidth = prefInt;
|
||||
}
|
||||
|
||||
if (NS_SUCCEEDED(mPrefs->GetBoolPref("browser.display.focus_ring_on_anything", &boolPref))) {
|
||||
if (NS_SUCCEEDED(mPrefBranch->GetBoolPref("browser.display.focus_ring_on_anything", &boolPref))) {
|
||||
mFocusRingOnAnything = boolPref;
|
||||
}
|
||||
|
||||
// * use fonts?
|
||||
if (NS_SUCCEEDED(mPrefs->GetIntPref("browser.display.use_document_fonts", &prefInt))) {
|
||||
if (NS_SUCCEEDED(mPrefBranch->GetIntPref("browser.display.use_document_fonts", &prefInt))) {
|
||||
mUseDocumentFonts = prefInt == 0 ? PR_FALSE : PR_TRUE;
|
||||
}
|
||||
|
||||
GetFontPreferences();
|
||||
|
||||
// * image animation
|
||||
char* animatePref = 0;
|
||||
nsresult rv = mPrefs->CopyCharPref("image.animation_mode", &animatePref);
|
||||
if (NS_SUCCEEDED(rv) && animatePref) {
|
||||
if (!nsCRT::strcmp(animatePref, "normal"))
|
||||
nsresult rv = mPrefBranch->GetCharPref("image.animation_mode", getter_Copies(stringPref));
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
if (stringPref.Equals("normal"))
|
||||
mImageAnimationModePref = imgIContainer::kNormalAnimMode;
|
||||
else if (!nsCRT::strcmp(animatePref, "none"))
|
||||
else if (stringPref.Equals("none"))
|
||||
mImageAnimationModePref = imgIContainer::kDontAnimMode;
|
||||
else if (!nsCRT::strcmp(animatePref, "once"))
|
||||
else if (stringPref.Equals("once"))
|
||||
mImageAnimationModePref = imgIContainer::kLoopOnceAnimMode;
|
||||
nsMemory::Free(animatePref);
|
||||
}
|
||||
|
||||
#ifdef IBMBIDI
|
||||
if (NS_SUCCEEDED(mPrefs->GetIntPref("bidi.direction", &prefInt))) {
|
||||
if (NS_SUCCEEDED(mPrefBranch->GetIntPref("bidi.direction", &prefInt))) {
|
||||
SET_BIDI_OPTION_DIRECTION(mBidi, prefInt);
|
||||
}
|
||||
if (NS_SUCCEEDED(mPrefs->GetIntPref("bidi.texttype", &prefInt))) {
|
||||
if (NS_SUCCEEDED(mPrefBranch->GetIntPref("bidi.texttype", &prefInt))) {
|
||||
SET_BIDI_OPTION_TEXTTYPE(mBidi, prefInt);
|
||||
}
|
||||
if (NS_SUCCEEDED(mPrefs->GetIntPref("bidi.controlstextmode", &prefInt))) {
|
||||
if (NS_SUCCEEDED(mPrefBranch->GetIntPref("bidi.controlstextmode", &prefInt))) {
|
||||
SET_BIDI_OPTION_CONTROLSTEXTMODE(mBidi, prefInt);
|
||||
}
|
||||
if (NS_SUCCEEDED(mPrefs->GetIntPref("bidi.clipboardtextmode", &prefInt))) {
|
||||
if (NS_SUCCEEDED(mPrefBranch->GetIntPref("bidi.clipboardtextmode", &prefInt))) {
|
||||
SET_BIDI_OPTION_CLIPBOARDTEXTMODE(mBidi, prefInt);
|
||||
}
|
||||
if (NS_SUCCEEDED(mPrefs->GetIntPref("bidi.numeral", &prefInt))) {
|
||||
if (NS_SUCCEEDED(mPrefBranch->GetIntPref("bidi.numeral", &prefInt))) {
|
||||
SET_BIDI_OPTION_NUMERAL(mBidi, prefInt);
|
||||
}
|
||||
if (NS_SUCCEEDED(mPrefs->GetIntPref("bidi.support", &prefInt))) {
|
||||
if (NS_SUCCEEDED(mPrefBranch->GetIntPref("bidi.support", &prefInt))) {
|
||||
SET_BIDI_OPTION_SUPPORT(mBidi, prefInt);
|
||||
}
|
||||
if (NS_SUCCEEDED(mPrefs->GetIntPref("bidi.characterset", &prefInt))) {
|
||||
if (NS_SUCCEEDED(mPrefBranch->GetIntPref("bidi.characterset", &prefInt))) {
|
||||
SET_BIDI_OPTION_CHARACTERSET(mBidi, prefInt);
|
||||
}
|
||||
#endif
|
||||
@ -634,18 +625,19 @@ nsPresContext::Init(nsIDeviceContext* aDeviceContext)
|
||||
mDeviceContext = dont_QueryInterface(aDeviceContext);
|
||||
|
||||
mLangService = do_GetService(NS_LANGUAGEATOMSERVICE_CONTRACTID);
|
||||
mPrefs = do_GetService(NS_PREF_CONTRACTID);
|
||||
if (mPrefs) {
|
||||
// Register callbacks so we're notified when the preferences change
|
||||
mPrefs->RegisterCallback("font.", nsPresContext::PrefChangedCallback, (void*)this);
|
||||
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.visited_color", nsPresContext::PrefChangedCallback, (void*)this);
|
||||
mPrefs->RegisterCallback("network.image.imageBehavior", nsPresContext::PrefChangedCallback, (void*)this);
|
||||
mPrefs->RegisterCallback("image.animation_mode", nsPresContext::PrefChangedCallback, (void*)this);
|
||||
mPrefBranch = do_GetService(NS_PREFSERVICE_CONTRACTID);
|
||||
nsCOMPtr<nsIPrefBranchInternal> prefInternal(do_QueryInterface(mPrefBranch));
|
||||
if (prefInternal) {
|
||||
// Register observers so we're notified when the preferences change
|
||||
prefInternal->AddObserver("browser.anchor_color", this, PR_FALSE);
|
||||
prefInternal->AddObserver("browser.display.", this, PR_FALSE);
|
||||
prefInternal->AddObserver("browser.underline_anchors", this, PR_FALSE);
|
||||
prefInternal->AddObserver("browser.visited_color", this, PR_FALSE);
|
||||
prefInternal->AddObserver("font.", this, PR_FALSE);
|
||||
prefInternal->AddObserver("image.animation_mode", this, PR_FALSE);
|
||||
prefInternal->AddObserver("network.image.imageBehavior", this, PR_FALSE);
|
||||
#ifdef IBMBIDI
|
||||
mPrefs->RegisterCallback("bidi.", PrefChangedCallback, (void*)this);
|
||||
prefInternal->AddObserver("bidi.", this, PR_FALSE);
|
||||
#endif
|
||||
|
||||
// Initialize our state from the user preferences
|
||||
@ -751,6 +743,11 @@ nsPresContext::Observe(nsISupports* aSubject,
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
if (!nsCRT::strcmp(aTopic, NS_PREFBRANCH_PREFCHANGE_TOPIC_ID)) {
|
||||
PreferenceChanged(NS_LossyConvertUCS2toASCII(aData).get());
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_WARNING("unrecognized topic in nsPresContext::Observe");
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
@ -43,7 +43,7 @@
|
||||
#include "nsFont.h"
|
||||
#include "nsCRT.h"
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsIPref.h"
|
||||
#include "nsIPrefBranch.h"
|
||||
#include "nsICharsetConverterManager.h"
|
||||
#include "nsILanguageAtomService.h"
|
||||
#include "nsIURL.h"
|
||||
@ -206,7 +206,7 @@ protected:
|
||||
// class, please make the ownership explicit (pinkerton, scc).
|
||||
|
||||
nsIPresShell* mShell; // [WEAK]
|
||||
nsCOMPtr<nsIPref> mPrefs;
|
||||
nsCOMPtr<nsIPrefBranch> mPrefBranch;
|
||||
nsRect mVisibleArea;
|
||||
nsCOMPtr<nsIDeviceContext> mDeviceContext; // could be weak, but better safe than sorry. Cannot reintroduce cycles
|
||||
// since there is no dependency from gfx back to layout.
|
||||
@ -289,7 +289,6 @@ protected:
|
||||
void SetImgAnimations(nsCOMPtr<nsIContent>& aParent, PRUint16 aMode);
|
||||
|
||||
private:
|
||||
static int PR_CALLBACK PrefChangedCallback(const char*, void*);
|
||||
void PreferenceChanged(const char* aPrefName);
|
||||
|
||||
// these are private, use the list in nsFont.h if you want a public list
|
||||
|
@ -88,7 +88,8 @@
|
||||
#include "nsIPercentHeightObserver.h"
|
||||
|
||||
// For triple-click pref
|
||||
#include "nsIPref.h"
|
||||
#include "nsIPrefBranch.h"
|
||||
#include "nsIPrefService.h"
|
||||
#include "nsIServiceManager.h"
|
||||
#include "nsISelectionImageService.h"
|
||||
#include "imgIContainer.h"
|
||||
@ -98,7 +99,6 @@
|
||||
#include "nsWidgetsCID.h" // for NS_LOOKANDFEEL_CID
|
||||
#include "nsLayoutErrors.h"
|
||||
|
||||
static NS_DEFINE_CID(kPrefCID, NS_PREF_CID);//for triple click pref
|
||||
static NS_DEFINE_CID(kSelectionImageService, NS_SELECTIONIMAGESERVICE_CID);
|
||||
static NS_DEFINE_CID(kLookAndFeelCID, NS_LOOKANDFEEL_CID);
|
||||
|
||||
@ -1527,9 +1527,9 @@ nsFrame::HandleMultiplePress(nsIPresContext* aPresContext,
|
||||
selectPara = PR_TRUE;
|
||||
else if (me->clickCount == 3)
|
||||
{
|
||||
nsCOMPtr<nsIPref> prefsService( do_GetService(kPrefCID, &rv) );
|
||||
if (NS_SUCCEEDED(rv) && prefsService)
|
||||
prefsService->GetBoolPref("browser.triple_click_selects_paragraph", &selectPara);
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch( do_GetService(NS_PREFSERVICE_CONTRACTID) );
|
||||
if (prefBranch)
|
||||
prefBranch->GetBoolPref("browser.triple_click_selects_paragraph", &selectPara);
|
||||
}
|
||||
else
|
||||
return NS_OK;
|
||||
|
@ -68,7 +68,6 @@
|
||||
#include "nsIStyleContext.h"
|
||||
#include "nsStyleConsts.h"
|
||||
#include "nsIDocumentLoader.h"
|
||||
#include "nsIPref.h"
|
||||
#include "nsFrameSetFrame.h"
|
||||
#include "nsIDOMHTMLFrameElement.h"
|
||||
#include "nsIDOMHTMLIFrameElement.h"
|
||||
|
@ -48,7 +48,10 @@
|
||||
#include "nsBlockFrame.h"
|
||||
#include "nsLineBox.h"
|
||||
#include "nsImageFrame.h"
|
||||
#include "nsIPref.h"
|
||||
#include "nsIPrefService.h"
|
||||
#include "nsIPrefBranch.h"
|
||||
#include "nsIPrefBranchInternal.h"
|
||||
#include "nsIObserver.h"
|
||||
#include "nsIServiceManager.h"
|
||||
#include "nsIPercentHeightObserver.h"
|
||||
#ifdef IBMBIDI
|
||||
@ -1625,44 +1628,81 @@ nsHTMLReflowState::ComputeContainingBlockRectangle(nsIPresContext* aPre
|
||||
}
|
||||
}
|
||||
|
||||
// Prefs callback to pick up changes
|
||||
static int PR_CALLBACK PrefsChanged(const char *aPrefName, void *instance)
|
||||
class BlinkPrefObserver : public nsIObserver
|
||||
{
|
||||
nsCOMPtr<nsIPref> prefs = do_GetService(NS_PREF_CONTRACTID);
|
||||
if (prefs) {
|
||||
PRBool boolPref;
|
||||
if (NS_SUCCEEDED(prefs->GetBoolPref("browser.blink_allowed", &boolPref)))
|
||||
sBlinkIsAllowed = boolPref;
|
||||
}
|
||||
return 0; /* PREF_OK */
|
||||
public:
|
||||
BlinkPrefObserver();
|
||||
virtual ~BlinkPrefObserver();
|
||||
|
||||
NS_DECL_ISUPPORTS
|
||||
NS_DECL_NSIOBSERVER
|
||||
};
|
||||
|
||||
BlinkPrefObserver::BlinkPrefObserver()
|
||||
{
|
||||
NS_INIT_ISUPPORTS();
|
||||
}
|
||||
|
||||
BlinkPrefObserver::~BlinkPrefObserver()
|
||||
{
|
||||
}
|
||||
|
||||
NS_IMPL_ISUPPORTS1(BlinkPrefObserver, nsIObserver)
|
||||
|
||||
NS_IMETHODIMP
|
||||
BlinkPrefObserver::Observe(nsISupports *aSubject, const char *aTopic,
|
||||
const PRUnichar *aData)
|
||||
{
|
||||
NS_ASSERTION(!nsCRT::strcmp(aTopic, NS_PREFBRANCH_PREFCHANGE_TOPIC_ID),
|
||||
"We only handle pref changes");
|
||||
NS_ASSERTION(nsDependentString(aData) ==
|
||||
NS_LITERAL_STRING("browser.blink_allowed"),
|
||||
"We only handle the blink pref");
|
||||
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch(do_QueryInterface(aSubject));
|
||||
PRBool boolPrefValue = PR_TRUE;
|
||||
prefBranch->GetBoolPref("browser.blink_allowed", &boolPrefValue);
|
||||
sBlinkIsAllowed = boolPrefValue;
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
// Check to see if |text-decoration: blink| is allowed. The first time
|
||||
// called, register the callback and then force-load the pref. After that,
|
||||
// called, register the observer and then force-load the pref. After that,
|
||||
// just use the cached value.
|
||||
static PRBool BlinkIsAllowed(void)
|
||||
static
|
||||
PRBool BlinkIsAllowed()
|
||||
{
|
||||
if (!sPrefIsLoaded) {
|
||||
// Set up a listener and check the initial value
|
||||
nsCOMPtr<nsIPref> prefs = do_GetService(NS_PREF_CONTRACTID);
|
||||
if (prefs) {
|
||||
prefs->RegisterCallback("browser.blink_allowed", PrefsChanged,
|
||||
nsnull);
|
||||
// Set up an observer and check the initial value
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch = do_GetService(NS_PREFSERVICE_CONTRACTID);
|
||||
if (prefBranch) {
|
||||
PRBool boolPrefValue = PR_TRUE;
|
||||
prefBranch->GetBoolPref("browser.blink_allowed", &boolPrefValue);
|
||||
sBlinkIsAllowed = boolPrefValue;
|
||||
|
||||
nsCOMPtr<nsIObserver> observer = new BlinkPrefObserver();
|
||||
if (observer) {
|
||||
nsCOMPtr<nsIPrefBranchInternal> pbi = do_QueryInterface(prefBranch);
|
||||
if (pbi) {
|
||||
pbi->AddObserver("browser.blink_allowed", observer, PR_FALSE);
|
||||
}
|
||||
}
|
||||
}
|
||||
PrefsChanged(nsnull, nsnull);
|
||||
sPrefIsLoaded = PR_TRUE;
|
||||
}
|
||||
|
||||
return sBlinkIsAllowed;
|
||||
}
|
||||
|
||||
static eNormalLineHeightControl GetNormalLineHeightCalcControl(void)
|
||||
{
|
||||
if (sNormalLineHeightControl == eUninitialized) {
|
||||
nsCOMPtr<nsIPref> prefs = do_GetService(NS_PREF_CONTRACTID);
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch = do_GetService(NS_PREFSERVICE_CONTRACTID);
|
||||
PRInt32 intPref;
|
||||
// browser.display.normal_lineheight_calc_control is not user changable, so
|
||||
// no need to register callback for it.
|
||||
if (prefs && NS_SUCCEEDED(prefs->GetIntPref(
|
||||
if (prefBranch && NS_SUCCEEDED(prefBranch->GetIntPref(
|
||||
"browser.display.normal_lineheight_calc_control", &intPref)))
|
||||
sNormalLineHeightControl = NS_STATIC_CAST(eNormalLineHeightControl, intPref);
|
||||
else
|
||||
|
@ -94,7 +94,8 @@
|
||||
#include "nsIDOMWindow.h"
|
||||
#include "nsIDOMDocument.h"
|
||||
#include "nsCSSFrameConstructor.h"
|
||||
#include "nsIPref.h"
|
||||
#include "nsIPrefBranch.h"
|
||||
#include "nsIPrefService.h"
|
||||
|
||||
#ifdef DEBUG
|
||||
#undef NOISY_IMAGE_LOADING
|
||||
@ -2270,21 +2271,21 @@ void nsImageFrame::IconLoad::GetPrefs(nsIPresContext *aPresContext)
|
||||
NS_ASSERTION(aPresContext, "null presContext is not allowed in GetAltModePref");
|
||||
// NOTE: the presContext could be used to fetch a cached pref if needed, but is not for now
|
||||
|
||||
nsCOMPtr<nsIPref> prefs = do_GetService(NS_PREF_CONTRACTID);
|
||||
if (prefs) {
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch = do_GetService(NS_PREFSERVICE_CONTRACTID);
|
||||
if (prefBranch) {
|
||||
PRBool boolPref;
|
||||
PRInt32 intPref;
|
||||
if (NS_SUCCEEDED(prefs->GetBoolPref("browser.display.force_inline_alttext", &boolPref))) {
|
||||
if (NS_SUCCEEDED(prefBranch->GetBoolPref("browser.display.force_inline_alttext", &boolPref))) {
|
||||
mPrefForceInlineAltText = boolPref;
|
||||
} else {
|
||||
mPrefForceInlineAltText = PR_FALSE;
|
||||
}
|
||||
if (NS_SUCCEEDED(prefs->GetIntPref("network.image.imageBehavior", &intPref)) && intPref == 2) {
|
||||
if (NS_SUCCEEDED(prefBranch->GetIntPref("network.image.imageBehavior", &intPref)) && intPref == 2) {
|
||||
mPrefAllImagesBlocked = PR_TRUE;
|
||||
} else {
|
||||
mPrefAllImagesBlocked = PR_FALSE;
|
||||
}
|
||||
if (NS_SUCCEEDED(prefs->GetBoolPref("browser.display.show_image_placeholders", &boolPref))) {
|
||||
if (NS_SUCCEEDED(prefBranch->GetBoolPref("browser.display.show_image_placeholders", &boolPref))) {
|
||||
mPrefShowPlaceholders = boolPref;
|
||||
} else {
|
||||
mPrefShowPlaceholders = PR_TRUE;
|
||||
|
@ -114,7 +114,10 @@
|
||||
#include "jsapi.h"
|
||||
|
||||
// XXX temporary for Mac double buffering pref
|
||||
#include "nsIPref.h"
|
||||
#if defined(XP_MAC) || defined(XP_MACOSX)
|
||||
#include "nsIPrefBranch.h"
|
||||
#include "nsIPrefService.h"
|
||||
#endif
|
||||
|
||||
// XXX For temporary paint code
|
||||
#include "nsIStyleContext.h"
|
||||
@ -139,9 +142,6 @@
|
||||
#include "nsContentCID.h"
|
||||
static NS_DEFINE_CID(kRangeCID, NS_RANGE_CID);
|
||||
|
||||
// XXX temporary for Mac double buffering pref
|
||||
static NS_DEFINE_CID(kPrefServiceCID, NS_PREF_CID);
|
||||
|
||||
/* X headers suck */
|
||||
#ifdef KeyPress
|
||||
#undef KeyPress
|
||||
@ -797,10 +797,12 @@ nsObjectFrame::CreateWidget(nsIPresContext* aPresContext,
|
||||
// Turn off double buffering on the Mac. This depends on bug 49743 and partially
|
||||
// fixes 32327, 19931 amd 51787
|
||||
#if defined(XP_MAC) || defined(XP_MACOSX)
|
||||
nsCOMPtr<nsIPref> prefs(do_GetService(kPrefServiceCID));
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch(do_GetService(NS_PREFSERVICE_CONTRACTID));
|
||||
PRBool doubleBuffer = PR_FALSE;
|
||||
prefs ? prefs->GetBoolPref("plugin.enable_double_buffer", &doubleBuffer) : 0;
|
||||
|
||||
if (prefBranch) {
|
||||
prefBranch->GetBoolPref("plugin.enable_double_buffer", &doubleBuffer);
|
||||
}
|
||||
|
||||
viewMan->AllowDoubleBuffering(doubleBuffer);
|
||||
#endif
|
||||
|
||||
|
@ -54,7 +54,9 @@
|
||||
#include "nsRegion.h"
|
||||
#include "nsLayoutAtoms.h"
|
||||
|
||||
#include "nsIPref.h" // for header/footer gap & ExtraMargin for Print Preview
|
||||
// for header/footer gap & ExtraMargin for Print Preview
|
||||
#include "nsIPrefBranch.h"
|
||||
#include "nsIPrefService.h"
|
||||
|
||||
// DateTime Includes
|
||||
#include "nsDateTimeFormatCID.h"
|
||||
@ -216,23 +218,30 @@ nsSimplePageSequenceFrame::CreateContinuingPageFrame(nsIPresContext* aPresContex
|
||||
return rv;
|
||||
}
|
||||
|
||||
void nsSimplePageSequenceFrame::GetEdgePaperMarginCoord(nsIPref* aPref, char* aPrefName, nscoord& aCoord)
|
||||
void
|
||||
nsSimplePageSequenceFrame::GetEdgePaperMarginCoord(char* aPrefName,
|
||||
nscoord& aCoord)
|
||||
{
|
||||
if (NS_SUCCEEDED(mPageData->mPrintOptions->GetPrinterPrefInt(mPageData->mPrintSettings,
|
||||
NS_ConvertASCIItoUCS2(aPrefName).get(), &aCoord))) {
|
||||
nsresult rv = mPageData->mPrintOptions->
|
||||
GetPrinterPrefInt(mPageData->mPrintSettings,
|
||||
NS_ConvertASCIItoUCS2(aPrefName).get(),
|
||||
&aCoord);
|
||||
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
nscoord inchInTwips = NS_INCHES_TO_TWIPS(1.0);
|
||||
aCoord = PR_MAX(NS_INCHES_TO_TWIPS(float(aCoord)/100.0f), 0);
|
||||
aCoord = PR_MIN(aCoord, inchInTwips); // an inch is still probably excessive
|
||||
}
|
||||
}
|
||||
|
||||
void nsSimplePageSequenceFrame::GetEdgePaperMargin(nsIPref* aPref, nsMargin& aMargin)
|
||||
void
|
||||
nsSimplePageSequenceFrame::GetEdgePaperMargin(nsMargin& aMargin)
|
||||
{
|
||||
aMargin.SizeTo(0,0,0,0);
|
||||
GetEdgePaperMarginCoord(aPref, "print_edge_top", aMargin.top);
|
||||
GetEdgePaperMarginCoord(aPref, "print_edge_left", aMargin.left);
|
||||
GetEdgePaperMarginCoord(aPref, "print_edge_bottom", aMargin.bottom);
|
||||
GetEdgePaperMarginCoord(aPref, "print_edge_right", aMargin.right);
|
||||
GetEdgePaperMarginCoord("print_edge_top", aMargin.top);
|
||||
GetEdgePaperMarginCoord("print_edge_left", aMargin.left);
|
||||
GetEdgePaperMarginCoord("print_edge_bottom", aMargin.bottom);
|
||||
GetEdgePaperMarginCoord("print_edge_right", aMargin.right);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
@ -309,12 +318,12 @@ nsSimplePageSequenceFrame::Reflow(nsIPresContext* aPresContext,
|
||||
aPresContext->GetPageDim(&pageSize, &adjSize);
|
||||
|
||||
nscoord extraGap = 0;
|
||||
nsCOMPtr<nsIPref> pref = do_GetService(NS_PREF_CONTRACTID);
|
||||
if (pref) {
|
||||
GetEdgePaperMargin(pref, mPageData->mEdgePaperMargin);
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch = do_GetService(NS_PREFSERVICE_CONTRACTID);
|
||||
if (prefBranch) {
|
||||
GetEdgePaperMargin(mPageData->mEdgePaperMargin);
|
||||
nscoord extraThreshold = PR_MAX(pageSize.width, pageSize.height)/10;
|
||||
PRInt32 gapInTwips;
|
||||
if (NS_SUCCEEDED(pref->GetIntPref("print.print_extra_margin", &gapInTwips))) {
|
||||
if (NS_SUCCEEDED(prefBranch->GetIntPref("print.print_extra_margin", &gapInTwips))) {
|
||||
gapInTwips = PR_MAX(gapInTwips, 0);
|
||||
gapInTwips = PR_MIN(gapInTwips, extraThreshold); // clamp to 1/10 of the largest dim of the page
|
||||
extraGap = nscoord(gapInTwips);
|
||||
|
@ -153,8 +153,8 @@ protected:
|
||||
void SetPageNumberFormat(PRUnichar * aFormatStr, PRBool aForPageNumOnly);
|
||||
void SetPageSizes(const nsRect& aRect, const nsMargin& aMarginRect);
|
||||
|
||||
void GetEdgePaperMarginCoord(nsIPref* aPref, char* aPrefName, nscoord& aCoord);
|
||||
void GetEdgePaperMargin(nsIPref* aPref, nsMargin& aMargin);
|
||||
void GetEdgePaperMarginCoord(char* aPrefName, nscoord& aCoord);
|
||||
void GetEdgePaperMargin(nsMargin& aMargin);
|
||||
|
||||
NS_IMETHOD_(nsrefcnt) AddRef(void) {return nsContainerFrame::AddRef();}
|
||||
NS_IMETHOD_(nsrefcnt) Release(void) {return nsContainerFrame::Release();}
|
||||
|
@ -82,7 +82,8 @@
|
||||
|
||||
#include "nsILineIterator.h"
|
||||
|
||||
#include "nsIPref.h"
|
||||
#include "nsIPrefBranch.h"
|
||||
#include "nsIPrefService.h"
|
||||
#include "nsIServiceManager.h"
|
||||
#ifdef ACCESSIBILITY
|
||||
#include "nsIAccessible.h"
|
||||
@ -104,8 +105,6 @@
|
||||
#include "nsILE.h"
|
||||
#endif /* SUNCTL */
|
||||
|
||||
static NS_DEFINE_CID(kPrefCID, NS_PREF_CID);
|
||||
|
||||
#ifdef NS_DEBUG
|
||||
#undef NOISY_BLINK
|
||||
#undef DEBUG_WORD_WRAPPING
|
||||
@ -1362,10 +1361,10 @@ nsTextFrame::nsTextFrame()
|
||||
{
|
||||
// read in our global word selection prefs
|
||||
if ( !sWordSelectPrefInited ) {
|
||||
nsCOMPtr<nsIPref> prefService ( do_GetService(NS_PREF_CONTRACTID) );
|
||||
if ( prefService ) {
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch ( do_GetService(NS_PREFSERVICE_CONTRACTID) );
|
||||
if ( prefBranch ) {
|
||||
PRBool temp = PR_FALSE;
|
||||
prefService->GetBoolPref("layout.word_select.eat_space_to_next_word", &temp);
|
||||
prefBranch->GetBoolPref("layout.word_select.eat_space_to_next_word", &temp);
|
||||
sWordSelectEatSpaceAfter = temp;
|
||||
}
|
||||
sWordSelectPrefInited = PR_TRUE;
|
||||
@ -2623,12 +2622,12 @@ nsTextFrame::GetPositionSlowly(nsIPresContext* aPresContext,
|
||||
ComputeExtraJustificationSpacing(*aRendContext, ts, paintBuffer.mBuffer, textLength, numSpaces);
|
||||
|
||||
//IF STYLE SAYS TO SELECT TO END OF FRAME HERE...
|
||||
nsCOMPtr<nsIPref> prefs( do_GetService(kPrefCID, &rv) );
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch( do_GetService(NS_PREFSERVICE_CONTRACTID) );
|
||||
PRInt32 prefInt = 0;
|
||||
PRBool outofstylehandled = PR_FALSE;
|
||||
if (NS_SUCCEEDED(rv) && prefs)
|
||||
if (prefBranch)
|
||||
{
|
||||
if (NS_SUCCEEDED(prefs->GetIntPref("browser.drag_out_of_frame_style", &prefInt)) && prefInt)
|
||||
if (NS_SUCCEEDED(prefBranch->GetIntPref("browser.drag_out_of_frame_style", &prefInt)) && prefInt)
|
||||
{
|
||||
if (aPoint.y < origin.y)//above rectangle
|
||||
{
|
||||
@ -3506,12 +3505,12 @@ nsTextFrame::GetPosition(nsIPresContext* aCX,
|
||||
GetOffsetFromView(aCX, origin, &view);
|
||||
|
||||
//IF STYLE SAYS TO SELECT TO END OF FRAME HERE...
|
||||
nsCOMPtr<nsIPref> prefs( do_GetService(kPrefCID, &rv) );
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch( do_GetService(NS_PREFSERVICE_CONTRACTID) );
|
||||
PRInt32 prefInt = 0;
|
||||
PRBool outofstylehandled = PR_FALSE;
|
||||
if (NS_SUCCEEDED(rv) && prefs)
|
||||
if (prefBranch)
|
||||
{
|
||||
if (NS_SUCCEEDED(prefs->GetIntPref("browser.drag_out_of_frame_style", &prefInt)) && prefInt)
|
||||
if (NS_SUCCEEDED(prefBranch->GetIntPref("browser.drag_out_of_frame_style", &prefInt)) && prefInt)
|
||||
{
|
||||
if ((aPoint.y - origin.y) < 0)//above rectangle
|
||||
{
|
||||
|
@ -49,7 +49,8 @@
|
||||
#include "nsUnicharUtils.h"
|
||||
#include "nsICaseConversion.h"
|
||||
#include "prenv.h"
|
||||
#include "nsIPref.h"
|
||||
#include "nsIPrefBranch.h"
|
||||
#include "nsIPrefService.h"
|
||||
#ifdef IBMBIDI
|
||||
#include "nsLayoutAtoms.h"
|
||||
#endif
|
||||
@ -114,10 +115,11 @@ nsTextTransformer::Initialize()
|
||||
|
||||
// read in our global word selection prefs
|
||||
if ( !sWordSelectPrefInited ) {
|
||||
nsCOMPtr<nsIPref> prefService ( do_GetService(NS_PREF_CONTRACTID) );
|
||||
if ( prefService ) {
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch =
|
||||
do_GetService( NS_PREFSERVICE_CONTRACTID );
|
||||
if ( prefBranch ) {
|
||||
PRBool temp = PR_FALSE;
|
||||
prefService->GetBoolPref("layout.word_select.stop_at_punctuation", &temp);
|
||||
prefBranch->GetBoolPref("layout.word_select.stop_at_punctuation", &temp);
|
||||
sWordSelectStopAtPunctuation = temp;
|
||||
}
|
||||
sWordSelectPrefInited = PR_TRUE;
|
||||
|
@ -88,7 +88,8 @@
|
||||
#include "nsIPercentHeightObserver.h"
|
||||
|
||||
// For triple-click pref
|
||||
#include "nsIPref.h"
|
||||
#include "nsIPrefBranch.h"
|
||||
#include "nsIPrefService.h"
|
||||
#include "nsIServiceManager.h"
|
||||
#include "nsISelectionImageService.h"
|
||||
#include "imgIContainer.h"
|
||||
@ -98,7 +99,6 @@
|
||||
#include "nsWidgetsCID.h" // for NS_LOOKANDFEEL_CID
|
||||
#include "nsLayoutErrors.h"
|
||||
|
||||
static NS_DEFINE_CID(kPrefCID, NS_PREF_CID);//for triple click pref
|
||||
static NS_DEFINE_CID(kSelectionImageService, NS_SELECTIONIMAGESERVICE_CID);
|
||||
static NS_DEFINE_CID(kLookAndFeelCID, NS_LOOKANDFEEL_CID);
|
||||
|
||||
@ -1527,9 +1527,9 @@ nsFrame::HandleMultiplePress(nsIPresContext* aPresContext,
|
||||
selectPara = PR_TRUE;
|
||||
else if (me->clickCount == 3)
|
||||
{
|
||||
nsCOMPtr<nsIPref> prefsService( do_GetService(kPrefCID, &rv) );
|
||||
if (NS_SUCCEEDED(rv) && prefsService)
|
||||
prefsService->GetBoolPref("browser.triple_click_selects_paragraph", &selectPara);
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch( do_GetService(NS_PREFSERVICE_CONTRACTID) );
|
||||
if (prefBranch)
|
||||
prefBranch->GetBoolPref("browser.triple_click_selects_paragraph", &selectPara);
|
||||
}
|
||||
else
|
||||
return NS_OK;
|
||||
|
@ -48,7 +48,10 @@
|
||||
#include "nsBlockFrame.h"
|
||||
#include "nsLineBox.h"
|
||||
#include "nsImageFrame.h"
|
||||
#include "nsIPref.h"
|
||||
#include "nsIPrefService.h"
|
||||
#include "nsIPrefBranch.h"
|
||||
#include "nsIPrefBranchInternal.h"
|
||||
#include "nsIObserver.h"
|
||||
#include "nsIServiceManager.h"
|
||||
#include "nsIPercentHeightObserver.h"
|
||||
#ifdef IBMBIDI
|
||||
@ -1625,44 +1628,81 @@ nsHTMLReflowState::ComputeContainingBlockRectangle(nsIPresContext* aPre
|
||||
}
|
||||
}
|
||||
|
||||
// Prefs callback to pick up changes
|
||||
static int PR_CALLBACK PrefsChanged(const char *aPrefName, void *instance)
|
||||
class BlinkPrefObserver : public nsIObserver
|
||||
{
|
||||
nsCOMPtr<nsIPref> prefs = do_GetService(NS_PREF_CONTRACTID);
|
||||
if (prefs) {
|
||||
PRBool boolPref;
|
||||
if (NS_SUCCEEDED(prefs->GetBoolPref("browser.blink_allowed", &boolPref)))
|
||||
sBlinkIsAllowed = boolPref;
|
||||
}
|
||||
return 0; /* PREF_OK */
|
||||
public:
|
||||
BlinkPrefObserver();
|
||||
virtual ~BlinkPrefObserver();
|
||||
|
||||
NS_DECL_ISUPPORTS
|
||||
NS_DECL_NSIOBSERVER
|
||||
};
|
||||
|
||||
BlinkPrefObserver::BlinkPrefObserver()
|
||||
{
|
||||
NS_INIT_ISUPPORTS();
|
||||
}
|
||||
|
||||
BlinkPrefObserver::~BlinkPrefObserver()
|
||||
{
|
||||
}
|
||||
|
||||
NS_IMPL_ISUPPORTS1(BlinkPrefObserver, nsIObserver)
|
||||
|
||||
NS_IMETHODIMP
|
||||
BlinkPrefObserver::Observe(nsISupports *aSubject, const char *aTopic,
|
||||
const PRUnichar *aData)
|
||||
{
|
||||
NS_ASSERTION(!nsCRT::strcmp(aTopic, NS_PREFBRANCH_PREFCHANGE_TOPIC_ID),
|
||||
"We only handle pref changes");
|
||||
NS_ASSERTION(nsDependentString(aData) ==
|
||||
NS_LITERAL_STRING("browser.blink_allowed"),
|
||||
"We only handle the blink pref");
|
||||
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch(do_QueryInterface(aSubject));
|
||||
PRBool boolPrefValue = PR_TRUE;
|
||||
prefBranch->GetBoolPref("browser.blink_allowed", &boolPrefValue);
|
||||
sBlinkIsAllowed = boolPrefValue;
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
// Check to see if |text-decoration: blink| is allowed. The first time
|
||||
// called, register the callback and then force-load the pref. After that,
|
||||
// called, register the observer and then force-load the pref. After that,
|
||||
// just use the cached value.
|
||||
static PRBool BlinkIsAllowed(void)
|
||||
static
|
||||
PRBool BlinkIsAllowed()
|
||||
{
|
||||
if (!sPrefIsLoaded) {
|
||||
// Set up a listener and check the initial value
|
||||
nsCOMPtr<nsIPref> prefs = do_GetService(NS_PREF_CONTRACTID);
|
||||
if (prefs) {
|
||||
prefs->RegisterCallback("browser.blink_allowed", PrefsChanged,
|
||||
nsnull);
|
||||
// Set up an observer and check the initial value
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch = do_GetService(NS_PREFSERVICE_CONTRACTID);
|
||||
if (prefBranch) {
|
||||
PRBool boolPrefValue = PR_TRUE;
|
||||
prefBranch->GetBoolPref("browser.blink_allowed", &boolPrefValue);
|
||||
sBlinkIsAllowed = boolPrefValue;
|
||||
|
||||
nsCOMPtr<nsIObserver> observer = new BlinkPrefObserver();
|
||||
if (observer) {
|
||||
nsCOMPtr<nsIPrefBranchInternal> pbi = do_QueryInterface(prefBranch);
|
||||
if (pbi) {
|
||||
pbi->AddObserver("browser.blink_allowed", observer, PR_FALSE);
|
||||
}
|
||||
}
|
||||
}
|
||||
PrefsChanged(nsnull, nsnull);
|
||||
sPrefIsLoaded = PR_TRUE;
|
||||
}
|
||||
|
||||
return sBlinkIsAllowed;
|
||||
}
|
||||
|
||||
static eNormalLineHeightControl GetNormalLineHeightCalcControl(void)
|
||||
{
|
||||
if (sNormalLineHeightControl == eUninitialized) {
|
||||
nsCOMPtr<nsIPref> prefs = do_GetService(NS_PREF_CONTRACTID);
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch = do_GetService(NS_PREFSERVICE_CONTRACTID);
|
||||
PRInt32 intPref;
|
||||
// browser.display.normal_lineheight_calc_control is not user changable, so
|
||||
// no need to register callback for it.
|
||||
if (prefs && NS_SUCCEEDED(prefs->GetIntPref(
|
||||
if (prefBranch && NS_SUCCEEDED(prefBranch->GetIntPref(
|
||||
"browser.display.normal_lineheight_calc_control", &intPref)))
|
||||
sNormalLineHeightControl = NS_STATIC_CAST(eNormalLineHeightControl, intPref);
|
||||
else
|
||||
|
@ -94,7 +94,8 @@
|
||||
#include "nsIDOMWindow.h"
|
||||
#include "nsIDOMDocument.h"
|
||||
#include "nsCSSFrameConstructor.h"
|
||||
#include "nsIPref.h"
|
||||
#include "nsIPrefBranch.h"
|
||||
#include "nsIPrefService.h"
|
||||
|
||||
#ifdef DEBUG
|
||||
#undef NOISY_IMAGE_LOADING
|
||||
@ -2270,21 +2271,21 @@ void nsImageFrame::IconLoad::GetPrefs(nsIPresContext *aPresContext)
|
||||
NS_ASSERTION(aPresContext, "null presContext is not allowed in GetAltModePref");
|
||||
// NOTE: the presContext could be used to fetch a cached pref if needed, but is not for now
|
||||
|
||||
nsCOMPtr<nsIPref> prefs = do_GetService(NS_PREF_CONTRACTID);
|
||||
if (prefs) {
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch = do_GetService(NS_PREFSERVICE_CONTRACTID);
|
||||
if (prefBranch) {
|
||||
PRBool boolPref;
|
||||
PRInt32 intPref;
|
||||
if (NS_SUCCEEDED(prefs->GetBoolPref("browser.display.force_inline_alttext", &boolPref))) {
|
||||
if (NS_SUCCEEDED(prefBranch->GetBoolPref("browser.display.force_inline_alttext", &boolPref))) {
|
||||
mPrefForceInlineAltText = boolPref;
|
||||
} else {
|
||||
mPrefForceInlineAltText = PR_FALSE;
|
||||
}
|
||||
if (NS_SUCCEEDED(prefs->GetIntPref("network.image.imageBehavior", &intPref)) && intPref == 2) {
|
||||
if (NS_SUCCEEDED(prefBranch->GetIntPref("network.image.imageBehavior", &intPref)) && intPref == 2) {
|
||||
mPrefAllImagesBlocked = PR_TRUE;
|
||||
} else {
|
||||
mPrefAllImagesBlocked = PR_FALSE;
|
||||
}
|
||||
if (NS_SUCCEEDED(prefs->GetBoolPref("browser.display.show_image_placeholders", &boolPref))) {
|
||||
if (NS_SUCCEEDED(prefBranch->GetBoolPref("browser.display.show_image_placeholders", &boolPref))) {
|
||||
mPrefShowPlaceholders = boolPref;
|
||||
} else {
|
||||
mPrefShowPlaceholders = PR_TRUE;
|
||||
|
@ -114,7 +114,10 @@
|
||||
#include "jsapi.h"
|
||||
|
||||
// XXX temporary for Mac double buffering pref
|
||||
#include "nsIPref.h"
|
||||
#if defined(XP_MAC) || defined(XP_MACOSX)
|
||||
#include "nsIPrefBranch.h"
|
||||
#include "nsIPrefService.h"
|
||||
#endif
|
||||
|
||||
// XXX For temporary paint code
|
||||
#include "nsIStyleContext.h"
|
||||
@ -139,9 +142,6 @@
|
||||
#include "nsContentCID.h"
|
||||
static NS_DEFINE_CID(kRangeCID, NS_RANGE_CID);
|
||||
|
||||
// XXX temporary for Mac double buffering pref
|
||||
static NS_DEFINE_CID(kPrefServiceCID, NS_PREF_CID);
|
||||
|
||||
/* X headers suck */
|
||||
#ifdef KeyPress
|
||||
#undef KeyPress
|
||||
@ -797,10 +797,12 @@ nsObjectFrame::CreateWidget(nsIPresContext* aPresContext,
|
||||
// Turn off double buffering on the Mac. This depends on bug 49743 and partially
|
||||
// fixes 32327, 19931 amd 51787
|
||||
#if defined(XP_MAC) || defined(XP_MACOSX)
|
||||
nsCOMPtr<nsIPref> prefs(do_GetService(kPrefServiceCID));
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch(do_GetService(NS_PREFSERVICE_CONTRACTID));
|
||||
PRBool doubleBuffer = PR_FALSE;
|
||||
prefs ? prefs->GetBoolPref("plugin.enable_double_buffer", &doubleBuffer) : 0;
|
||||
|
||||
if (prefBranch) {
|
||||
prefBranch->GetBoolPref("plugin.enable_double_buffer", &doubleBuffer);
|
||||
}
|
||||
|
||||
viewMan->AllowDoubleBuffering(doubleBuffer);
|
||||
#endif
|
||||
|
||||
|
@ -57,7 +57,8 @@
|
||||
#include "prinrval.h"
|
||||
#include "nsVoidArray.h"
|
||||
#include "nsHashtable.h"
|
||||
#include "nsIPref.h"
|
||||
#include "nsIPrefBranch.h"
|
||||
#include "nsIPrefService.h"
|
||||
#include "nsIViewObserver.h"
|
||||
#include "nsContainerFrame.h"
|
||||
#include "nsIDeviceContext.h"
|
||||
@ -197,7 +198,6 @@ static nsresult CtlStyleWatch(PRUint32 aCtlValue, nsIStyleSet *aStyleSet);
|
||||
static NS_DEFINE_CID(kFrameSelectionCID, NS_FRAMESELECTION_CID);
|
||||
static NS_DEFINE_CID(kEventQueueServiceCID, NS_EVENTQUEUESERVICE_CID);
|
||||
static NS_DEFINE_CID(kViewCID, NS_VIEW_CID);
|
||||
static NS_DEFINE_CID(kPrefServiceCID, NS_PREF_CID);
|
||||
|
||||
#undef NOISY
|
||||
|
||||
@ -1694,10 +1694,11 @@ PresShell::Init(nsIDocument* aDocument,
|
||||
gAsyncReflowDuringDocLoad = PR_TRUE;
|
||||
|
||||
// Get the prefs service
|
||||
nsCOMPtr<nsIPref> prefs(do_GetService(kPrefServiceCID, &result));
|
||||
if (NS_SUCCEEDED(result)) {
|
||||
prefs->GetIntPref("layout.reflow.timeslice", &gMaxRCProcessingTime);
|
||||
prefs->GetBoolPref("layout.reflow.async.duringDocLoad", &gAsyncReflowDuringDocLoad);
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch(do_GetService(NS_PREFSERVICE_CONTRACTID));
|
||||
if (prefBranch) {
|
||||
prefBranch->GetIntPref("layout.reflow.timeslice", &gMaxRCProcessingTime);
|
||||
prefBranch->GetBoolPref("layout.reflow.async.duringDocLoad",
|
||||
&gAsyncReflowDuringDocLoad);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1716,16 +1717,19 @@ PresShell::Init(nsIDocument* aDocument,
|
||||
#endif
|
||||
|
||||
#ifdef MOZ_REFLOW_PERF
|
||||
// Get the prefs service
|
||||
nsCOMPtr<nsIPref> prefs(do_GetService(kPrefServiceCID, &result));
|
||||
if (NS_SUCCEEDED(result)) {
|
||||
if (mReflowCountMgr != nsnull) {
|
||||
if (mReflowCountMgr) {
|
||||
// Get the prefs service
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch(do_GetService(NS_PREFSERVICE_CONTRACTID));
|
||||
if (prefBranch) {
|
||||
PRBool paintFrameCounts = PR_FALSE;
|
||||
PRBool dumpFrameCounts = PR_FALSE;
|
||||
PRBool dumpFrameByFrameCounts = PR_FALSE;
|
||||
prefs->GetBoolPref("layout.reflow.showframecounts", &paintFrameCounts);
|
||||
prefs->GetBoolPref("layout.reflow.dumpframecounts", &dumpFrameCounts);
|
||||
prefs->GetBoolPref("layout.reflow.dumpframebyframecounts", &dumpFrameByFrameCounts);
|
||||
prefBranch->GetBoolPref("layout.reflow.showframecounts",
|
||||
&paintFrameCounts);
|
||||
prefBranch->GetBoolPref("layout.reflow.dumpframecounts",
|
||||
&dumpFrameCounts);
|
||||
prefBranch->GetBoolPref("layout.reflow.dumpframebyframecounts",
|
||||
&dumpFrameByFrameCounts);
|
||||
|
||||
mReflowCountMgr->SetDumpFrameCounts(dumpFrameCounts);
|
||||
mReflowCountMgr->SetDumpFrameByFrameCounts(dumpFrameByFrameCounts);
|
||||
@ -2854,9 +2858,9 @@ PresShell::InitialReflow(nscoord aWidth, nscoord aHeight)
|
||||
else {
|
||||
// Initialize the timer.
|
||||
PRInt32 delay = PAINTLOCK_EVENT_DELAY; // Use this value if we fail to get the pref value.
|
||||
nsCOMPtr<nsIPref> prefs(do_GetService(kPrefServiceCID));
|
||||
if (prefs)
|
||||
prefs->GetIntPref("nglayout.initialpaint.delay", &delay);
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch(do_GetService(NS_PREFSERVICE_CONTRACTID));
|
||||
if (prefBranch)
|
||||
prefBranch->GetIntPref("nglayout.initialpaint.delay", &delay);
|
||||
|
||||
nsCOMPtr<nsITimerInternal> ti = do_QueryInterface(mPaintSuppressionTimer);
|
||||
ti->SetIdle(PR_FALSE);
|
||||
@ -4004,9 +4008,9 @@ PresShell::GoToAnchor(const nsAString& aAnchorName)
|
||||
// Should we select the target?
|
||||
// This action is controlled by a preference: the default is to not select.
|
||||
PRBool selectAnchor = PR_FALSE;
|
||||
nsCOMPtr<nsIPref> prefs(do_GetService(kPrefServiceCID,&rv));
|
||||
if (NS_SUCCEEDED(rv) && prefs) {
|
||||
prefs->GetBoolPref("layout.selectanchor",&selectAnchor);
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch(do_GetService(NS_PREFSERVICE_CONTRACTID));
|
||||
if (prefBranch) {
|
||||
prefBranch->GetBoolPref("layout.selectanchor", &selectAnchor);
|
||||
}
|
||||
// Even if select anchor pref is false, we must still move the caret there.
|
||||
// That way tabbing will start from the new location
|
||||
|
@ -54,7 +54,9 @@
|
||||
#include "nsRegion.h"
|
||||
#include "nsLayoutAtoms.h"
|
||||
|
||||
#include "nsIPref.h" // for header/footer gap & ExtraMargin for Print Preview
|
||||
// for header/footer gap & ExtraMargin for Print Preview
|
||||
#include "nsIPrefBranch.h"
|
||||
#include "nsIPrefService.h"
|
||||
|
||||
// DateTime Includes
|
||||
#include "nsDateTimeFormatCID.h"
|
||||
@ -216,23 +218,30 @@ nsSimplePageSequenceFrame::CreateContinuingPageFrame(nsIPresContext* aPresContex
|
||||
return rv;
|
||||
}
|
||||
|
||||
void nsSimplePageSequenceFrame::GetEdgePaperMarginCoord(nsIPref* aPref, char* aPrefName, nscoord& aCoord)
|
||||
void
|
||||
nsSimplePageSequenceFrame::GetEdgePaperMarginCoord(char* aPrefName,
|
||||
nscoord& aCoord)
|
||||
{
|
||||
if (NS_SUCCEEDED(mPageData->mPrintOptions->GetPrinterPrefInt(mPageData->mPrintSettings,
|
||||
NS_ConvertASCIItoUCS2(aPrefName).get(), &aCoord))) {
|
||||
nsresult rv = mPageData->mPrintOptions->
|
||||
GetPrinterPrefInt(mPageData->mPrintSettings,
|
||||
NS_ConvertASCIItoUCS2(aPrefName).get(),
|
||||
&aCoord);
|
||||
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
nscoord inchInTwips = NS_INCHES_TO_TWIPS(1.0);
|
||||
aCoord = PR_MAX(NS_INCHES_TO_TWIPS(float(aCoord)/100.0f), 0);
|
||||
aCoord = PR_MIN(aCoord, inchInTwips); // an inch is still probably excessive
|
||||
}
|
||||
}
|
||||
|
||||
void nsSimplePageSequenceFrame::GetEdgePaperMargin(nsIPref* aPref, nsMargin& aMargin)
|
||||
void
|
||||
nsSimplePageSequenceFrame::GetEdgePaperMargin(nsMargin& aMargin)
|
||||
{
|
||||
aMargin.SizeTo(0,0,0,0);
|
||||
GetEdgePaperMarginCoord(aPref, "print_edge_top", aMargin.top);
|
||||
GetEdgePaperMarginCoord(aPref, "print_edge_left", aMargin.left);
|
||||
GetEdgePaperMarginCoord(aPref, "print_edge_bottom", aMargin.bottom);
|
||||
GetEdgePaperMarginCoord(aPref, "print_edge_right", aMargin.right);
|
||||
GetEdgePaperMarginCoord("print_edge_top", aMargin.top);
|
||||
GetEdgePaperMarginCoord("print_edge_left", aMargin.left);
|
||||
GetEdgePaperMarginCoord("print_edge_bottom", aMargin.bottom);
|
||||
GetEdgePaperMarginCoord("print_edge_right", aMargin.right);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
@ -309,12 +318,12 @@ nsSimplePageSequenceFrame::Reflow(nsIPresContext* aPresContext,
|
||||
aPresContext->GetPageDim(&pageSize, &adjSize);
|
||||
|
||||
nscoord extraGap = 0;
|
||||
nsCOMPtr<nsIPref> pref = do_GetService(NS_PREF_CONTRACTID);
|
||||
if (pref) {
|
||||
GetEdgePaperMargin(pref, mPageData->mEdgePaperMargin);
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch = do_GetService(NS_PREFSERVICE_CONTRACTID);
|
||||
if (prefBranch) {
|
||||
GetEdgePaperMargin(mPageData->mEdgePaperMargin);
|
||||
nscoord extraThreshold = PR_MAX(pageSize.width, pageSize.height)/10;
|
||||
PRInt32 gapInTwips;
|
||||
if (NS_SUCCEEDED(pref->GetIntPref("print.print_extra_margin", &gapInTwips))) {
|
||||
if (NS_SUCCEEDED(prefBranch->GetIntPref("print.print_extra_margin", &gapInTwips))) {
|
||||
gapInTwips = PR_MAX(gapInTwips, 0);
|
||||
gapInTwips = PR_MIN(gapInTwips, extraThreshold); // clamp to 1/10 of the largest dim of the page
|
||||
extraGap = nscoord(gapInTwips);
|
||||
|
@ -153,8 +153,8 @@ protected:
|
||||
void SetPageNumberFormat(PRUnichar * aFormatStr, PRBool aForPageNumOnly);
|
||||
void SetPageSizes(const nsRect& aRect, const nsMargin& aMarginRect);
|
||||
|
||||
void GetEdgePaperMarginCoord(nsIPref* aPref, char* aPrefName, nscoord& aCoord);
|
||||
void GetEdgePaperMargin(nsIPref* aPref, nsMargin& aMargin);
|
||||
void GetEdgePaperMarginCoord(char* aPrefName, nscoord& aCoord);
|
||||
void GetEdgePaperMargin(nsMargin& aMargin);
|
||||
|
||||
NS_IMETHOD_(nsrefcnt) AddRef(void) {return nsContainerFrame::AddRef();}
|
||||
NS_IMETHOD_(nsrefcnt) Release(void) {return nsContainerFrame::Release();}
|
||||
|
@ -82,7 +82,8 @@
|
||||
|
||||
#include "nsILineIterator.h"
|
||||
|
||||
#include "nsIPref.h"
|
||||
#include "nsIPrefBranch.h"
|
||||
#include "nsIPrefService.h"
|
||||
#include "nsIServiceManager.h"
|
||||
#ifdef ACCESSIBILITY
|
||||
#include "nsIAccessible.h"
|
||||
@ -104,8 +105,6 @@
|
||||
#include "nsILE.h"
|
||||
#endif /* SUNCTL */
|
||||
|
||||
static NS_DEFINE_CID(kPrefCID, NS_PREF_CID);
|
||||
|
||||
#ifdef NS_DEBUG
|
||||
#undef NOISY_BLINK
|
||||
#undef DEBUG_WORD_WRAPPING
|
||||
@ -1362,10 +1361,10 @@ nsTextFrame::nsTextFrame()
|
||||
{
|
||||
// read in our global word selection prefs
|
||||
if ( !sWordSelectPrefInited ) {
|
||||
nsCOMPtr<nsIPref> prefService ( do_GetService(NS_PREF_CONTRACTID) );
|
||||
if ( prefService ) {
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch ( do_GetService(NS_PREFSERVICE_CONTRACTID) );
|
||||
if ( prefBranch ) {
|
||||
PRBool temp = PR_FALSE;
|
||||
prefService->GetBoolPref("layout.word_select.eat_space_to_next_word", &temp);
|
||||
prefBranch->GetBoolPref("layout.word_select.eat_space_to_next_word", &temp);
|
||||
sWordSelectEatSpaceAfter = temp;
|
||||
}
|
||||
sWordSelectPrefInited = PR_TRUE;
|
||||
@ -2623,12 +2622,12 @@ nsTextFrame::GetPositionSlowly(nsIPresContext* aPresContext,
|
||||
ComputeExtraJustificationSpacing(*aRendContext, ts, paintBuffer.mBuffer, textLength, numSpaces);
|
||||
|
||||
//IF STYLE SAYS TO SELECT TO END OF FRAME HERE...
|
||||
nsCOMPtr<nsIPref> prefs( do_GetService(kPrefCID, &rv) );
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch( do_GetService(NS_PREFSERVICE_CONTRACTID) );
|
||||
PRInt32 prefInt = 0;
|
||||
PRBool outofstylehandled = PR_FALSE;
|
||||
if (NS_SUCCEEDED(rv) && prefs)
|
||||
if (prefBranch)
|
||||
{
|
||||
if (NS_SUCCEEDED(prefs->GetIntPref("browser.drag_out_of_frame_style", &prefInt)) && prefInt)
|
||||
if (NS_SUCCEEDED(prefBranch->GetIntPref("browser.drag_out_of_frame_style", &prefInt)) && prefInt)
|
||||
{
|
||||
if (aPoint.y < origin.y)//above rectangle
|
||||
{
|
||||
@ -3506,12 +3505,12 @@ nsTextFrame::GetPosition(nsIPresContext* aCX,
|
||||
GetOffsetFromView(aCX, origin, &view);
|
||||
|
||||
//IF STYLE SAYS TO SELECT TO END OF FRAME HERE...
|
||||
nsCOMPtr<nsIPref> prefs( do_GetService(kPrefCID, &rv) );
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch( do_GetService(NS_PREFSERVICE_CONTRACTID) );
|
||||
PRInt32 prefInt = 0;
|
||||
PRBool outofstylehandled = PR_FALSE;
|
||||
if (NS_SUCCEEDED(rv) && prefs)
|
||||
if (prefBranch)
|
||||
{
|
||||
if (NS_SUCCEEDED(prefs->GetIntPref("browser.drag_out_of_frame_style", &prefInt)) && prefInt)
|
||||
if (NS_SUCCEEDED(prefBranch->GetIntPref("browser.drag_out_of_frame_style", &prefInt)) && prefInt)
|
||||
{
|
||||
if ((aPoint.y - origin.y) < 0)//above rectangle
|
||||
{
|
||||
|
@ -49,7 +49,8 @@
|
||||
#include "nsUnicharUtils.h"
|
||||
#include "nsICaseConversion.h"
|
||||
#include "prenv.h"
|
||||
#include "nsIPref.h"
|
||||
#include "nsIPrefBranch.h"
|
||||
#include "nsIPrefService.h"
|
||||
#ifdef IBMBIDI
|
||||
#include "nsLayoutAtoms.h"
|
||||
#endif
|
||||
@ -114,10 +115,11 @@ nsTextTransformer::Initialize()
|
||||
|
||||
// read in our global word selection prefs
|
||||
if ( !sWordSelectPrefInited ) {
|
||||
nsCOMPtr<nsIPref> prefService ( do_GetService(NS_PREF_CONTRACTID) );
|
||||
if ( prefService ) {
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch =
|
||||
do_GetService( NS_PREFSERVICE_CONTRACTID );
|
||||
if ( prefBranch ) {
|
||||
PRBool temp = PR_FALSE;
|
||||
prefService->GetBoolPref("layout.word_select.stop_at_punctuation", &temp);
|
||||
prefBranch->GetBoolPref("layout.word_select.stop_at_punctuation", &temp);
|
||||
sWordSelectStopAtPunctuation = temp;
|
||||
}
|
||||
sWordSelectPrefInited = PR_TRUE;
|
||||
|
@ -68,7 +68,6 @@
|
||||
#include "nsIStyleContext.h"
|
||||
#include "nsStyleConsts.h"
|
||||
#include "nsIDocumentLoader.h"
|
||||
#include "nsIPref.h"
|
||||
#include "nsFrameSetFrame.h"
|
||||
#include "nsIDOMHTMLFrameElement.h"
|
||||
#include "nsIDOMHTMLIFrameElement.h"
|
||||
|
@ -93,7 +93,8 @@
|
||||
#include "nsIAnonymousContentCreator.h"
|
||||
#include "nsIFrameManager.h"
|
||||
#include "nsIAttributeContent.h"
|
||||
#include "nsIPref.h"
|
||||
#include "nsIPrefBranch.h"
|
||||
#include "nsIPrefService.h"
|
||||
#include "nsLegendFrame.h"
|
||||
#include "nsIContentIterator.h"
|
||||
#include "nsBoxLayoutState.h"
|
||||
@ -4231,10 +4232,10 @@ nsCSSFrameConstructor::HasGfxScrollbars()
|
||||
#endif
|
||||
// Get the Prefs
|
||||
if (!mGotGfxPrefs) {
|
||||
nsCOMPtr<nsIPref> pref(do_GetService(NS_PREF_CONTRACTID));
|
||||
if (pref) {
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch(do_GetService(NS_PREFSERVICE_CONTRACTID));
|
||||
if (prefBranch) {
|
||||
PRBool hasGfxScroll = PR_FALSE; // use a temp since we have a PRPackedBool
|
||||
pref->GetBoolPref("nglayout.widget.gfxscrollbars", &hasGfxScroll);
|
||||
prefBranch->GetBoolPref("nglayout.widget.gfxscrollbars", &hasGfxScroll);
|
||||
mHasGfxScrollbars = hasGfxScroll;
|
||||
mGotGfxPrefs = PR_TRUE;
|
||||
} else {
|
||||
@ -4251,10 +4252,10 @@ PRBool
|
||||
nsCSSFrameConstructor::UseXBLForms()
|
||||
{
|
||||
if (!mGotXBLFormPrefs) {
|
||||
nsCOMPtr<nsIPref> pref(do_GetService(NS_PREF_CONTRACTID));
|
||||
if (pref) {
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch(do_GetService(NS_PREFSERVICE_CONTRACTID));
|
||||
if (prefBranch) {
|
||||
PRBool useXBLForms = PR_FALSE; // use a temp since we have a PRPackedBool
|
||||
pref->GetBoolPref("nglayout.debug.enable_xbl_forms", &useXBLForms);
|
||||
prefBranch->GetBoolPref("nglayout.debug.enable_xbl_forms", &useXBLForms);
|
||||
mUseXBLForms = useXBLForms;
|
||||
mGotXBLFormPrefs = PR_TRUE;
|
||||
}
|
||||
|
@ -44,7 +44,8 @@
|
||||
#include "nsASVGGraphicSource.h"
|
||||
#include "nsStyleStruct.h"
|
||||
#include "nsIServiceManager.h"
|
||||
#include "nsIPref.h"
|
||||
#include "nsIPrefBranch.h"
|
||||
#include "nsIPrefService.h"
|
||||
#include "prdtoa.h"
|
||||
|
||||
nsSVGGraphic::nsSVGGraphic()
|
||||
@ -239,14 +240,12 @@ double nsSVGGraphic::GetBezierFlatness()
|
||||
|
||||
double flatness = 0.5;
|
||||
|
||||
nsCOMPtr<nsIPref> prefs(do_GetService(NS_PREF_CONTRACTID));
|
||||
if (!prefs) return flatness;
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch(do_GetService(NS_PREFSERVICE_CONTRACTID));
|
||||
if (!prefBranch) return flatness;
|
||||
|
||||
// XXX: wouldn't it be great if nsIPref had a 'GetFloatPref()'-function?
|
||||
char *valuestr = nsnull;
|
||||
if (NS_SUCCEEDED(prefs->CopyCharPref("svg.bezier_flatness",&valuestr)) && (valuestr)) {
|
||||
nsXPIDLCString valuestr;
|
||||
if (NS_SUCCEEDED(prefBranch->GetCharPref("svg.bezier_flatness", getter_Copies(valuestr)))) {
|
||||
flatness = PR_strtod(valuestr, nsnull);
|
||||
nsMemory::Free(valuestr);
|
||||
}
|
||||
|
||||
return flatness;
|
||||
|
@ -39,7 +39,8 @@
|
||||
#include "nsSVGStroke.h"
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsIServiceManager.h"
|
||||
#include "nsIPref.h"
|
||||
#include "nsIPrefBranch.h"
|
||||
#include "nsIPrefService.h"
|
||||
#include "prdtoa.h"
|
||||
#include "nsMemory.h"
|
||||
#include "nsReadableUtils.h"
|
||||
@ -141,14 +142,12 @@ double nsSVGStroke::getFlatness()
|
||||
{
|
||||
double flatness = 0.5;
|
||||
|
||||
nsCOMPtr<nsIPref> prefs(do_GetService(NS_PREF_CONTRACTID));
|
||||
if (!prefs) return flatness;
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch(do_GetService(NS_PREFSERVICE_CONTRACTID));
|
||||
if (!prefBranch) return flatness;
|
||||
|
||||
// XXX: wouldn't it be great if nsIPref had a 'GetFloatPref()'-function?
|
||||
char *valuestr = nsnull;
|
||||
if (NS_SUCCEEDED(prefs->CopyCharPref("svg.stroke_flatness",&valuestr)) && (valuestr)) {
|
||||
nsXPIDLCString valuestr;
|
||||
if (NS_SUCCEEDED(prefBranch->GetCharPref("svg.stroke_flatness", getter_Copies(valuestr)))) {
|
||||
flatness = PR_strtod(valuestr, nsnull);
|
||||
nsMemory::Free(valuestr);
|
||||
}
|
||||
return flatness;
|
||||
}
|
||||
|
@ -80,7 +80,8 @@
|
||||
#include "nsIPresShell.h"
|
||||
#include "nsFrameNavigator.h"
|
||||
#include "nsCSSRendering.h"
|
||||
#include "nsIPref.h"
|
||||
#include "nsIPrefBranch.h"
|
||||
#include "nsIPrefService.h"
|
||||
#include "nsIServiceManager.h"
|
||||
#include "nsBoxToBlockAdaptor.h"
|
||||
#include "nsIBoxLayout.h"
|
||||
@ -1440,9 +1441,9 @@ void
|
||||
nsBoxFrame::GetDebugPref(nsIPresContext* aPresContext)
|
||||
{
|
||||
gDebug = PR_FALSE;
|
||||
nsCOMPtr<nsIPref> pref(do_GetService(NS_PREF_CONTRACTID));
|
||||
if (pref) {
|
||||
pref->GetBoolPref("xul.debug.box", &gDebug);
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch(do_GetService(NS_PREFSERVICE_CONTRACTID));
|
||||
if (prefBranch) {
|
||||
prefBranch->GetBoolPref("xul.debug.box", &gDebug);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -58,7 +58,6 @@
|
||||
#include "nsIPresShell.h"
|
||||
#include "nsFrameNavigator.h"
|
||||
#include "nsCSSRendering.h"
|
||||
#include "nsIPref.h"
|
||||
#include "nsIServiceManager.h"
|
||||
#include "nsBoxToBlockAdaptor.h"
|
||||
#include "nsILineIterator.h"
|
||||
|
@ -71,7 +71,6 @@
|
||||
#include "nsIPresShell.h"
|
||||
#include "nsFrameNavigator.h"
|
||||
#include "nsCSSRendering.h"
|
||||
#include "nsIPref.h"
|
||||
#include "nsIServiceManager.h"
|
||||
|
||||
#include "nsContainerBox.h"
|
||||
|
@ -65,7 +65,8 @@
|
||||
#include "nsIView.h"
|
||||
#include "nsISupportsArray.h"
|
||||
|
||||
#include "nsIPref.h"
|
||||
#include "nsIPrefBranch.h"
|
||||
#include "nsIPrefService.h"
|
||||
|
||||
/*
|
||||
* nsMenuBarListener implementation
|
||||
@ -117,20 +118,17 @@ void nsMenuBarListener::InitAccessKey()
|
||||
#endif
|
||||
|
||||
// Get the menu access key value from prefs, overriding the default:
|
||||
nsresult rv;
|
||||
nsCOMPtr<nsIPref> prefs(do_GetService(NS_PREF_CONTRACTID, &rv));
|
||||
if (NS_SUCCEEDED(rv) && prefs)
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch(do_GetService(NS_PREFSERVICE_CONTRACTID));
|
||||
if (prefBranch)
|
||||
{
|
||||
rv = prefs->GetIntPref("ui.key.menuAccessKey", &mAccessKey);
|
||||
rv |= prefs->GetBoolPref("ui.key.menuAccessKeyFocuses",
|
||||
&mAccessKeyFocuses);
|
||||
}
|
||||
nsresult rv = prefBranch->GetIntPref("ui.key.menuAccessKey", &mAccessKey);
|
||||
rv |= prefBranch->GetBoolPref("ui.key.menuAccessKeyFocuses",
|
||||
&mAccessKeyFocuses);
|
||||
#ifdef DEBUG_akkana
|
||||
if (NS_FAILED(rv) || !prefs)
|
||||
{
|
||||
NS_ASSERTION(PR_FALSE,"Menubar listener couldn't get accel key from prefs!\n");
|
||||
}
|
||||
NS_ASSERTION(NS_SUCCEEDED(rv) && prefBranch,
|
||||
"Menubar listener couldn't get accel key from prefs!\n");
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
|
@ -76,7 +76,8 @@
|
||||
#include "nsIXBLService.h"
|
||||
#include "nsCSSFrameConstructor.h"
|
||||
#include "nsIDOMKeyEvent.h"
|
||||
#include "nsIPref.h"
|
||||
#include "nsIPrefBranch.h"
|
||||
#include "nsIPrefService.h"
|
||||
#include "nsIScrollableView.h"
|
||||
#include "nsXPIDLString.h"
|
||||
#include "nsReadableUtils.h"
|
||||
@ -1555,10 +1556,9 @@ nsMenuFrame::BuildAcceleratorText()
|
||||
#endif
|
||||
|
||||
// Get the accelerator key value from prefs, overriding the default:
|
||||
nsresult rv;
|
||||
nsCOMPtr<nsIPref> prefs(do_GetService(NS_PREF_CONTRACTID, &rv));
|
||||
if (NS_SUCCEEDED(rv) && prefs)
|
||||
rv = prefs->GetIntPref("ui.key.accelKey", &accelKey);
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch(do_GetService(NS_PREFSERVICE_CONTRACTID));
|
||||
if (prefBranch)
|
||||
prefBranch->GetIntPref("ui.key.accelKey", &accelKey);
|
||||
}
|
||||
|
||||
nsAutoString modifiers;
|
||||
|
@ -74,15 +74,14 @@
|
||||
#include "nsRepeatService.h"
|
||||
#include "nsBoxLayoutState.h"
|
||||
#include "nsSprocketLayout.h"
|
||||
#include "nsIPref.h"
|
||||
#include "nsIPrefBranch.h"
|
||||
#include "nsIPrefService.h"
|
||||
#include "nsIServiceManager.h"
|
||||
#include "nsGUIEvent.h"
|
||||
|
||||
// Turn this on if you want to debug slider frames.
|
||||
#undef DEBUG_SLIDER
|
||||
|
||||
static NS_DEFINE_CID(kPrefCID, NS_PREF_CID);
|
||||
|
||||
nsresult
|
||||
NS_NewSliderFrame ( nsIPresShell* aPresShell, nsIFrame** aNewFrame)
|
||||
{
|
||||
@ -119,13 +118,12 @@ nsSliderFrame::Init(nsIPresContext* aPresContext,
|
||||
{
|
||||
nsresult rv = nsBoxFrame::Init(aPresContext, aContent, aParent, aContext, aPrevInFlow);
|
||||
|
||||
nsresult rv2;
|
||||
mMiddlePref=PR_FALSE;
|
||||
mMiddlePref = PR_FALSE;
|
||||
mSnapMultiplier = 6;
|
||||
nsCOMPtr<nsIPref> pref = do_GetService(kPrefCID, &rv2);
|
||||
if(NS_SUCCEEDED(rv2)) {
|
||||
pref->GetBoolPref("middlemouse.scrollbarPosition", &mMiddlePref);
|
||||
pref->GetIntPref("slider.snapMultiplier", &mSnapMultiplier);
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch = do_GetService(NS_PREFSERVICE_CONTRACTID);
|
||||
if (prefBranch) {
|
||||
prefBranch->GetBoolPref("middlemouse.scrollbarPosition", &mMiddlePref);
|
||||
prefBranch->GetIntPref("slider.snapMultiplier", &mSnapMultiplier);
|
||||
}
|
||||
|
||||
CreateViewForFrame(aPresContext,this,aContext,PR_TRUE);
|
||||
|
@ -58,7 +58,9 @@
|
||||
#include "nsINameSpaceManager.h"
|
||||
#include "nsBoxLayoutState.h"
|
||||
#include "nsMenuBarListener.h"
|
||||
#include "nsIPref.h"
|
||||
#include "nsIPrefBranch.h"
|
||||
#include "nsIPrefService.h"
|
||||
#include "nsIPrefLocalizedString.h"
|
||||
#include "nsXPIDLString.h"
|
||||
#include "nsIServiceManager.h"
|
||||
#include "nsIDocument.h"
|
||||
@ -197,18 +199,22 @@ nsTextBoxFrame::AlwaysAppendAccessKey()
|
||||
{
|
||||
if (!gAccessKeyPrefInitialized)
|
||||
{
|
||||
nsCOMPtr<nsIPref> prefs = do_GetService(NS_PREF_CONTRACTID);
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch =
|
||||
do_GetService(NS_PREFSERVICE_CONTRACTID);
|
||||
|
||||
gAccessKeyPrefInitialized = PR_TRUE;
|
||||
if (prefs)
|
||||
if (prefBranch)
|
||||
{
|
||||
nsXPIDLString prefValue;
|
||||
nsresult res = prefs->GetLocalizedUnicharPref(
|
||||
"intl.menuitems.alwaysappendacceskeys",
|
||||
getter_Copies(prefValue));
|
||||
if (NS_SUCCEEDED(res))
|
||||
nsCOMPtr<nsIPrefLocalizedString> prefValue;
|
||||
prefBranch->GetComplexValue("intl.menuitems.alwaysappendacceskeys",
|
||||
NS_GET_IID(nsIPrefLocalizedString),
|
||||
getter_AddRefs(prefValue));
|
||||
if (prefBranch)
|
||||
{
|
||||
gAlwaysAppendAccessKey = nsDependentString(prefValue).Equals(
|
||||
NS_LITERAL_STRING("true"));
|
||||
nsXPIDLString prefString;
|
||||
prefValue->ToString(getter_Copies(prefString));
|
||||
gAlwaysAppendAccessKey =
|
||||
nsDependentString(prefString).Equals(NS_LITERAL_STRING("true"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -46,7 +46,9 @@
|
||||
#include "nsIPresShell.h"
|
||||
#include "nsIFrame.h"
|
||||
#include "nsIPopupBoxObject.h"
|
||||
#include "nsIPref.h"
|
||||
#include "nsIPrefBranch.h"
|
||||
#include "nsIPrefBranchInternal.h"
|
||||
#include "nsIPrefService.h"
|
||||
#include "nsIServiceManager.h"
|
||||
#include "nsITreeView.h"
|
||||
#include "nsGUIEvent.h"
|
||||
@ -79,11 +81,10 @@ nsXULTooltipListener::~nsXULTooltipListener()
|
||||
{
|
||||
HideTooltip();
|
||||
|
||||
// unregister the prefs callback
|
||||
nsCOMPtr<nsIPref> prefs(do_GetService(NS_PREF_CONTRACTID));
|
||||
if (prefs) {
|
||||
prefs->UnregisterCallback("browser.chrome.toolbar_tips",
|
||||
(PrefChangedFunc)sTooltipPrefChanged, (void*)this);
|
||||
nsCOMPtr<nsIPrefBranchInternal> prefInternal(do_GetService(NS_PREFSERVICE_CONTRACTID));
|
||||
if (prefInternal) {
|
||||
// Unregister our pref observer
|
||||
prefInternal->RemoveObserver("browser.chrome.toolbar_tips", this);
|
||||
}
|
||||
}
|
||||
|
||||
@ -95,6 +96,7 @@ NS_INTERFACE_MAP_BEGIN(nsXULTooltipListener)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIDOMMouseMotionListener)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIDOMKeyListener)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIDOMXULListener)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIObserver)
|
||||
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsIDOMEventListener, nsIDOMMouseListener)
|
||||
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIDOMMouseMotionListener)
|
||||
NS_INTERFACE_MAP_END
|
||||
@ -236,6 +238,26 @@ nsXULTooltipListener::HandleEvent(nsIDOMEvent* aEvent)
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
//// nsIObserver
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsXULTooltipListener::Observe(nsISupports* aSubject,
|
||||
const char* aTopic,
|
||||
const PRUnichar* aData)
|
||||
{
|
||||
if (nsCRT::strcmp(aTopic, NS_PREFBRANCH_PREFCHANGE_TOPIC_ID)) {
|
||||
NS_ERROR("unknown nsIObserver topic!");
|
||||
return NS_ERROR_UNEXPECTED;
|
||||
}
|
||||
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch(do_QueryInterface(aSubject));
|
||||
NS_ASSERTION(prefBranch, "Pref change topic with no pref subject?");
|
||||
prefBranch->GetBoolPref("browser.chrome.toolbar_tips", &sShowTooltips);
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
//// nsXULTooltipListener
|
||||
|
||||
@ -268,13 +290,14 @@ nsXULTooltipListener::Init(nsIContent* aSourceNode, nsIRootBox* aRootBox)
|
||||
|
||||
// Only the first time, register the callback and get the initial value of the pref
|
||||
if (!prefChangeRegistered) {
|
||||
nsCOMPtr<nsIPref> prefs(do_GetService(NS_PREF_CONTRACTID));
|
||||
if (prefs) {
|
||||
nsCOMPtr<nsIPrefBranch> prefBranch(do_GetService(NS_PREFSERVICE_CONTRACTID));
|
||||
if (prefBranch) {
|
||||
// get the initial value of the pref
|
||||
nsresult rv = prefs->GetBoolPref("browser.chrome.toolbar_tips", &sShowTooltips);
|
||||
nsresult rv = prefBranch->GetBoolPref("browser.chrome.toolbar_tips", &sShowTooltips);
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
// register the callback so we get notified of updates
|
||||
rv = prefs->RegisterCallback("browser.chrome.toolbar_tips", (PrefChangedFunc)sTooltipPrefChanged, nsnull);
|
||||
nsCOMPtr<nsIPrefBranchInternal> prefInternal(do_QueryInterface(prefBranch));
|
||||
rv = prefInternal->AddObserver("browser.chrome.toolbar_tips", this, PR_FALSE);
|
||||
if (NS_SUCCEEDED(rv))
|
||||
prefChangeRegistered = PR_TRUE;
|
||||
}
|
||||
@ -674,16 +697,6 @@ nsXULTooltipListener::sAutoHideCallback(nsITimer *aTimer, void* aListener)
|
||||
self->HideTooltip();
|
||||
}
|
||||
|
||||
int
|
||||
nsXULTooltipListener::sTooltipPrefChanged(const char* aPref, void* aData)
|
||||
{
|
||||
nsCOMPtr<nsIPref> prefs(do_GetService(NS_PREF_CONTRACTID));
|
||||
if (prefs)
|
||||
prefs->GetBoolPref("browser.chrome.toolbar_tips", &sShowTooltips);
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsresult
|
||||
nsXULTooltipListener::GetSourceTreeBoxObject(nsITreeBoxObject** aBoxObject)
|
||||
{
|
||||
|
@ -43,6 +43,7 @@
|
||||
#include "nsIDOMKeyListener.h"
|
||||
#include "nsIDOMMouseEvent.h"
|
||||
#include "nsIDOMXULListener.h"
|
||||
#include "nsIObserver.h"
|
||||
#include "nsIContent.h"
|
||||
#include "nsIDOMElement.h"
|
||||
#include "nsITimer.h"
|
||||
@ -54,7 +55,8 @@
|
||||
class nsXULTooltipListener : public nsIDOMMouseListener,
|
||||
public nsIDOMMouseMotionListener,
|
||||
public nsIDOMKeyListener,
|
||||
public nsIDOMXULListener
|
||||
public nsIDOMXULListener,
|
||||
public nsIObserver
|
||||
{
|
||||
public:
|
||||
|
||||
@ -94,6 +96,8 @@ public:
|
||||
// nsIDOMEventListener
|
||||
NS_IMETHOD HandleEvent(nsIDOMEvent* aEvent);
|
||||
|
||||
NS_DECL_NSIOBSERVER
|
||||
|
||||
nsresult Init(nsIContent* aSourceNode, nsIRootBox* aRootBox);
|
||||
nsresult SetDefaultTooltip(nsIContent* aDefaultTooltip);
|
||||
nsresult GetDefaultTooltip(nsIContent** aDefaultTooltip);
|
||||
|
Loading…
Reference in New Issue
Block a user