From 6c3d3da0c3f8a21899b3791439ccef9c8a6db217 Mon Sep 17 00:00:00 2001 From: Masayuki Nakano Date: Fri, 9 Sep 2011 11:27:13 +0900 Subject: [PATCH] Bug 669028 part.13 layout should use mozilla::LookAndFeel rather than nsILookAndFeel r=roc --- layout/base/nsCaret.cpp | 39 +++----- layout/base/nsPresContext.cpp | 42 +++----- layout/base/nsPresContext.h | 8 -- layout/forms/nsFormControlFrame.cpp | 10 +- layout/forms/nsListControlFrame.cpp | 13 +-- layout/generic/nsFrame.cpp | 20 ++-- layout/generic/nsFrameSetFrame.cpp | 32 +++---- layout/generic/nsGfxScrollFrame.cpp | 9 +- layout/generic/nsTextFrameThebes.cpp | 122 +++++++++++------------- layout/mathml/nsMathMLChar.cpp | 12 +-- layout/svg/base/src/nsSVGGlyphFrame.cpp | 10 +- layout/tables/nsTableCellFrame.cpp | 9 +- 12 files changed, 136 insertions(+), 190 deletions(-) diff --git a/layout/base/nsCaret.cpp b/layout/base/nsCaret.cpp index 291a928d8fa2..ade727c8d08e 100644 --- a/layout/base/nsCaret.cpp +++ b/layout/base/nsCaret.cpp @@ -58,7 +58,6 @@ #include "nsIPresShell.h" #include "nsRenderingContext.h" #include "nsPresContext.h" -#include "nsILookAndFeel.h" #include "nsBlockFrame.h" #include "nsISelectionController.h" #include "nsDisplayList.h" @@ -69,6 +68,7 @@ #include "nsTextFragment.h" #include "nsThemeConstants.h" #include "mozilla/Preferences.h" +#include "mozilla/LookAndFeel.h" // The bidi indicator hangs off the caret to one side, to show which // direction the typing is in. It needs to be at least 2x2 to avoid looking like @@ -181,27 +181,18 @@ nsresult nsCaret::Init(nsIPresShell *inPresShell) mPresShell = do_GetWeakReference(inPresShell); // the presshell owns us, so no addref NS_ASSERTION(mPresShell, "Hey, pres shell should support weak refs"); - // get nsILookAndFeel from the pres context, which has one cached. - nsILookAndFeel *lookAndFeel = nsnull; - nsPresContext *presContext = inPresShell->GetPresContext(); - - // XXX we should just do this nsILookAndFeel consultation every time + // XXX we should just do this LookAndFeel consultation every time // we need these values. - mCaretWidthCSSPx = 1; - mCaretAspectRatio = 0; - if (presContext && (lookAndFeel = presContext->LookAndFeel())) { - PRInt32 tempInt; - float tempFloat; - if (NS_SUCCEEDED(lookAndFeel->GetMetric(nsILookAndFeel::eMetric_CaretWidth, tempInt))) - mCaretWidthCSSPx = (nscoord)tempInt; - if (NS_SUCCEEDED(lookAndFeel->GetMetric(nsILookAndFeel::eMetricFloat_CaretAspectRatio, tempFloat))) - mCaretAspectRatio = tempFloat; - if (NS_SUCCEEDED(lookAndFeel->GetMetric(nsILookAndFeel::eMetric_CaretBlinkTime, tempInt))) - mBlinkRate = (PRUint32)tempInt; - if (NS_SUCCEEDED(lookAndFeel->GetMetric(nsILookAndFeel::eMetric_ShowCaretDuringSelection, tempInt))) - mShowDuringSelection = tempInt ? PR_TRUE : PR_FALSE; - } - + mCaretWidthCSSPx = LookAndFeel::GetInt(LookAndFeel::eIntID_CaretWidth, 1); + mCaretAspectRatio = + LookAndFeel::GetFloat(LookAndFeel::eFloatID_CaretAspectRatio, 0.0f); + + mBlinkRate = static_cast( + LookAndFeel::GetInt(LookAndFeel::eIntID_CaretBlinkTime, mBlinkRate)); + mShowDuringSelection = + LookAndFeel::GetInt(LookAndFeel::eIntID_ShowCaretDuringSelection, + mShowDuringSelection ? 1 : 0) != 0; + // get the selection from the pres shell, and set ourselves up as a selection // listener @@ -552,10 +543,10 @@ void nsCaret::PaintCaret(nsDisplayListBuilder *aBuilder, if (GetHookRect().IsEmpty() && presContext) { nsITheme *theme = presContext->GetTheme(); if (theme && theme->ThemeSupportsWidget(presContext, aForFrame, NS_THEME_TEXTFIELD_CARET)) { - nsILookAndFeel* lookAndFeel = presContext->LookAndFeel(); nscolor fieldText; - if (NS_SUCCEEDED(lookAndFeel->GetColor(nsILookAndFeel::eColor__moz_fieldtext, fieldText)) && - fieldText == foregroundColor) { + nsresult rv = LookAndFeel::GetColor(LookAndFeel::eColorID__moz_fieldtext, + &fieldText); + if (NS_SUCCEEDED(rv) && fieldText == foregroundColor) { theme->DrawWidgetBackground(aCtx, aForFrame, NS_THEME_TEXTFIELD_CARET, drawCaretRect, drawCaretRect); return; diff --git a/layout/base/nsPresContext.cpp b/layout/base/nsPresContext.cpp index d3ed9622b168..fe4743f2df9b 100644 --- a/layout/base/nsPresContext.cpp +++ b/layout/base/nsPresContext.cpp @@ -55,8 +55,7 @@ #include "nsIURL.h" #include "nsIDocument.h" #include "nsStyleContext.h" -#include "nsILookAndFeel.h" -#include "nsWidgetsCID.h" +#include "mozilla/LookAndFeel.h" #include "nsIComponentManager.h" #include "nsIURIContentListener.h" #include "nsIInterfaceRequestor.h" @@ -180,7 +179,6 @@ destroy_loads(const void * aKey, nsRefPtr& aData, void* closure) return PL_DHASH_NEXT; } -static NS_DEFINE_CID(kLookAndFeelCID, NS_LOOKANDFEEL_CID); #include "nsContentCID.h" // NOTE! nsPresContext::operator new() zeroes out all members, so don't @@ -329,7 +327,6 @@ nsPresContext::~nsPresContext() this); NS_IF_RELEASE(mDeviceContext); - NS_IF_RELEASE(mLookAndFeel); NS_IF_RELEASE(mLanguage); } @@ -359,7 +356,6 @@ NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(nsPresContext) NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mDocument); // NS_IMPL_CYCLE_COLLECTION_TRAVERSE_RAWPTR(mDeviceContext); // not xpcom NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR_AMBIGUOUS(mEventManager, nsIObserver); - // NS_IMPL_CYCLE_COLLECTION_TRAVERSE_RAWPTR(mLookAndFeel); // a service // NS_IMPL_CYCLE_COLLECTION_TRAVERSE_RAWPTR(mLanguage); // an atom for (PRUint32 i = 0; i < IMAGE_LOAD_TYPE_COUNT; ++i) @@ -382,7 +378,6 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(nsPresContext) NS_RELEASE(tmp->mEventManager); } - // NS_RELEASE(tmp->mLookAndFeel); // a service // NS_RELEASE(tmp->mLanguage); // an atom // NS_IMPL_CYCLE_COLLECTION_UNLINK_NSCOMPTR(mTheme); // a service @@ -594,7 +589,8 @@ nsPresContext::GetDocumentColorPreferences() usePrefColors = PR_FALSE; } else { - mLookAndFeel->GetMetric(nsILookAndFeel::eMetric_UseAccessibilityTheme, useAccessibilityTheme); + useAccessibilityTheme = + LookAndFeel::GetInt(LookAndFeel::eIntID_UseAccessibilityTheme, 0); usePrefColors = !useAccessibilityTheme; } @@ -619,12 +615,12 @@ nsPresContext::GetDocumentColorPreferences() } } else { - mDefaultColor = NS_RGB(0x00, 0x00, 0x00); - mBackgroundColor = NS_RGB(0xFF, 0xFF, 0xFF); - mLookAndFeel->GetColor(nsILookAndFeel::eColor_WindowForeground, - mDefaultColor); - mLookAndFeel->GetColor(nsILookAndFeel::eColor_WindowBackground, - mBackgroundColor); + mDefaultColor = + LookAndFeel::GetColor(LookAndFeel::eColorID_WindowForeground, + NS_RGB(0x00, 0x00, 0x00)); + mBackgroundColor = + LookAndFeel::GetColor(LookAndFeel::eColorID_WindowBackground, + NS_RGB(0xFF, 0xFF, 0xFF)); } // Wherever we got the default background color from, ensure it is @@ -894,14 +890,6 @@ nsPresContext::Init(nsDeviceContext* aDeviceContext) for (PRUint32 i = 0; i < IMAGE_LOAD_TYPE_COUNT; ++i) if (!mImageLoaders[i].Init()) return NS_ERROR_OUT_OF_MEMORY; - - // Get the look and feel service here; default colors will be initialized - // from calling GetUserPreferences() when we get a presshell. - nsresult rv = CallGetService(kLookAndFeelCID, &mLookAndFeel); - if (NS_FAILED(rv)) { - NS_ERROR("LookAndFeel service must be implemented for this toolkit"); - return rv; - } mEventManager = new nsEventStateManager(); NS_ADDREF(mEventManager); @@ -989,7 +977,7 @@ nsPresContext::Init(nsDeviceContext* aDeviceContext) "layout.css.devPixelsPerPx", this); - rv = mEventManager->Init(); + nsresult rv = mEventManager->Init(); NS_ENSURE_SUCCESS(rv, rv); mEventManager->SetPresContext(this); @@ -1547,9 +1535,9 @@ nsPresContext::ThemeChangedInternal() sThemeChanged = PR_FALSE; } - // Clear all cached nsILookAndFeel colors. - if (mLookAndFeel && sLookAndFeelChanged) { - mLookAndFeel->LookAndFeelChanged(); + // Clear all cached LookAndFeel colors. + if (sLookAndFeelChanged) { + LookAndFeel::Refresh(); sLookAndFeelChanged = PR_FALSE; } @@ -1584,9 +1572,9 @@ nsPresContext::SysColorChangedInternal() { mPendingSysColorChanged = PR_FALSE; - if (mLookAndFeel && sLookAndFeelChanged) { + if (sLookAndFeelChanged) { // Don't use the cached values for the system colors - mLookAndFeel->LookAndFeelChanged(); + LookAndFeel::Refresh(); sLookAndFeelChanged = PR_FALSE; } diff --git a/layout/base/nsPresContext.h b/layout/base/nsPresContext.h index 9a0d39cf3ff0..2b09cc05d344 100644 --- a/layout/base/nsPresContext.h +++ b/layout/base/nsPresContext.h @@ -91,7 +91,6 @@ class nsStyleContext; class nsIAtom; class nsEventStateManager; class nsIURI; -class nsILookAndFeel; class nsICSSPseudoComparator; class nsIAtom; struct nsStyleBackground; @@ -298,12 +297,6 @@ public: { SetImageAnimationModeExternal(aMode); } #endif - /** - * Get cached look and feel service. This is faster than obtaining it - * through the service manager. - */ - nsILookAndFeel* LookAndFeel() { return mLookAndFeel; } - /** * Get medium of presentation */ @@ -1050,7 +1043,6 @@ protected: // since there is no dependency // from gfx back to layout. nsEventStateManager* mEventManager; // [STRONG] - nsILookAndFeel* mLookAndFeel; // [STRONG] nsRefPtr mRefreshDriver; nsRefPtr mTransitionManager; nsRefPtr mAnimationManager; diff --git a/layout/forms/nsFormControlFrame.cpp b/layout/forms/nsFormControlFrame.cpp index fdeb9764bfa8..9a4e04289525 100644 --- a/layout/forms/nsFormControlFrame.cpp +++ b/layout/forms/nsFormControlFrame.cpp @@ -39,7 +39,9 @@ #include "nsGkAtoms.h" #include "nsIDOMHTMLInputElement.h" #include "nsEventStateManager.h" -#include "nsILookAndFeel.h" +#include "mozilla/LookAndFeel.h" + +using namespace mozilla; //#define FCF_NOISY @@ -187,10 +189,8 @@ nsFormControlFrame::GetUsableScreenRect(nsPresContext* aPresContext) nsRect screen; nsDeviceContext *context = aPresContext->DeviceContext(); - PRInt32 dropdownCanOverlapOSBar = PR_FALSE; - nsILookAndFeel *lookAndFeel = aPresContext->LookAndFeel(); - lookAndFeel->GetMetric(nsILookAndFeel::eMetric_MenusCanOverlapOSBar, - dropdownCanOverlapOSBar); + PRInt32 dropdownCanOverlapOSBar = + LookAndFeel::GetInt(LookAndFeel::eIntID_MenusCanOverlapOSBar, 0); if ( dropdownCanOverlapOSBar ) context->GetRect(screen); else diff --git a/layout/forms/nsListControlFrame.cpp b/layout/forms/nsListControlFrame.cpp index 6aef30d69d98..baff4c44a801 100644 --- a/layout/forms/nsListControlFrame.cpp +++ b/layout/forms/nsListControlFrame.cpp @@ -67,7 +67,6 @@ #include "nsXPCOM.h" #include "nsISupportsPrimitives.h" #include "nsIComponentManager.h" -#include "nsILookAndFeel.h" #include "nsFontMetrics.h" #include "nsIScrollableFrame.h" #include "nsIDOMNSEvent.h" @@ -85,6 +84,9 @@ #include "nsLayoutUtils.h" #include "nsDisplayList.h" #include "nsContentUtils.h" +#include "mozilla/LookAndFeel.h" + +using namespace mozilla; // Constants const nscoord kMaxDropDownRows = 20; // This matches the setting for 4.x browsers @@ -336,11 +338,10 @@ void nsListControlFrame::PaintFocus(nsRenderingContext& aRC, nsPoint aPt) } // set up back stop colors and then ask L&F service for the real colors - nscolor color; - presContext->LookAndFeel()-> - GetColor(lastItemIsSelected ? - nsILookAndFeel::eColor_WidgetSelectForeground : - nsILookAndFeel::eColor_WidgetSelectBackground, color); + nscolor color = + LookAndFeel::GetColor(lastItemIsSelected ? + LookAndFeel::eColorID_WidgetSelectForeground : + LookAndFeel::eColorID_WidgetSelectBackground); nsCSSRendering::PaintFocus(presContext, aRC, fRect, color); } diff --git a/layout/generic/nsFrame.cpp b/layout/generic/nsFrame.cpp index bd2d7b3a947d..7a4744a30be0 100644 --- a/layout/generic/nsFrame.cpp +++ b/layout/generic/nsFrame.cpp @@ -104,9 +104,7 @@ #include "nsIServiceManager.h" #include "imgIContainer.h" #include "imgIRequest.h" -#include "nsILookAndFeel.h" #include "nsLayoutCID.h" -#include "nsWidgetsCID.h" // for NS_LOOKANDFEEL_CID #include "nsUnicharUtils.h" #include "nsLayoutErrors.h" #include "nsContentErrors.h" @@ -124,12 +122,11 @@ #include "CSSCalc.h" #include "mozilla/Preferences.h" +#include "mozilla/LookAndFeel.h" using namespace mozilla; using namespace mozilla::layers; -static NS_DEFINE_CID(kLookAndFeelCID, NS_LOOKANDFEEL_CID); - // Struct containing cached metrics for box-wrapped frames. struct nsBoxLayoutMetrics { @@ -1061,22 +1058,17 @@ private: void nsDisplaySelectionOverlay::Paint(nsDisplayListBuilder* aBuilder, nsRenderingContext* aCtx) { - nscolor color = NS_RGB(255, 255, 255); - - nsILookAndFeel::nsColorID colorID; + LookAndFeel::ColorID colorID; nsresult result; if (mSelectionValue == nsISelectionController::SELECTION_ON) { - colorID = nsILookAndFeel::eColor_TextSelectBackground; + colorID = LookAndFeel::eColorID_TextSelectBackground; } else if (mSelectionValue == nsISelectionController::SELECTION_ATTENTION) { - colorID = nsILookAndFeel::eColor_TextSelectBackgroundAttention; + colorID = LookAndFeel::eColorID_TextSelectBackgroundAttention; } else { - colorID = nsILookAndFeel::eColor_TextSelectBackgroundDisabled; + colorID = LookAndFeel::eColorID_TextSelectBackgroundDisabled; } - nsCOMPtr look; - look = do_GetService(kLookAndFeelCID, &result); - if (NS_SUCCEEDED(result) && look) - look->GetColor(colorID, color); + nscolor color = LookAndFeel::GetColor(colorID, NS_RGB(255, 255, 255)); gfxRGBA c(color); c.a = .5; diff --git a/layout/generic/nsFrameSetFrame.cpp b/layout/generic/nsFrameSetFrame.cpp index 4b5e144273da..0c6965073de3 100644 --- a/layout/generic/nsFrameSetFrame.cpp +++ b/layout/generic/nsFrameSetFrame.cpp @@ -57,8 +57,6 @@ #include "nsStyleConsts.h" #include "nsStyleContext.h" #include "nsHTMLParts.h" -#include "nsILookAndFeel.h" -#include "nsWidgetsCID.h" #include "nsIComponentManager.h" #include "nsGUIEvent.h" #include "nsRenderingContext.h" @@ -74,6 +72,7 @@ #include "mozAutoDocUpdate.h" #include "mozilla/Preferences.h" #include "nsHTMLFrameSetElement.h" +#include "mozilla/LookAndFeel.h" using namespace mozilla; @@ -85,8 +84,6 @@ using namespace mozilla; #define ALL_VIS 0x000F #define NONE_VIS 0x0000 -static NS_DEFINE_CID(kLookAndFeelCID, NS_LOOKANDFEEL_CID); - /******************************************************************************* * nsFramesetDrag ******************************************************************************/ @@ -1685,24 +1682,23 @@ void nsHTMLFramesetBorderFrame::PaintBorder(nsRenderingContext& aRenderingContex nsPoint aPt) { nscolor WHITE = NS_RGB(255, 255, 255); - nscolor bgColor = NS_RGB(200,200,200); - nscolor fgColor = NS_RGB(0,0,0); - nscolor hltColor = NS_RGB(255,255,255); - nscolor sdwColor = NS_RGB(128,128,128); + + nscolor bgColor = + LookAndFeel::GetColor(LookAndFeel::eColorID_WidgetBackground, + NS_RGB(200,200,200)); + nscolor fgColor = + LookAndFeel::GetColor(LookAndFeel::eColorID_WidgetForeground, + NS_RGB(0,0,0)); + nscolor hltColor = + LookAndFeel::GetColor(LookAndFeel::eColorID_Widget3DHighlight, + NS_RGB(255,255,255)); + nscolor sdwColor = + LookAndFeel::GetColor(LookAndFeel::eColorID_Widget3DShadow, + NS_RGB(128,128,128)); nsRenderingContext::AutoPushTranslation translate(&aRenderingContext, aPt); - { - nsCOMPtr lookAndFeel = do_GetService(kLookAndFeelCID); - if (lookAndFeel) { - lookAndFeel->GetColor(nsILookAndFeel::eColor_WidgetBackground, bgColor); - lookAndFeel->GetColor(nsILookAndFeel::eColor_WidgetForeground, fgColor); - lookAndFeel->GetColor(nsILookAndFeel::eColor_Widget3DShadow, sdwColor); - lookAndFeel->GetColor(nsILookAndFeel::eColor_Widget3DHighlight, hltColor); - } - } - nscoord widthInPixels = nsPresContext::AppUnitsToIntCSSPixels(mWidth); nscoord pixelWidth = nsPresContext::CSSPixelsToAppUnits(1); diff --git a/layout/generic/nsGfxScrollFrame.cpp b/layout/generic/nsGfxScrollFrame.cpp index 0272972e6daa..1f5b8616e9c5 100644 --- a/layout/generic/nsGfxScrollFrame.cpp +++ b/layout/generic/nsGfxScrollFrame.cpp @@ -78,7 +78,7 @@ #include "nsBidiUtils.h" #include "nsFrameManager.h" #include "mozilla/Preferences.h" -#include "nsILookAndFeel.h" +#include "mozilla/LookAndFeel.h" #include "mozilla/dom/Element.h" #include "FrameLayerBuilder.h" #include "nsSMILKeySpline.h" @@ -1462,11 +1462,8 @@ nsGfxScrollFrameInner::nsGfxScrollFrameInner(nsContainerFrame* aOuter, , mShouldBuildLayer(PR_FALSE) { // lookup if we're allowed to overlap the content from the look&feel object - PRInt32 canOverlap; - nsPresContext* presContext = mOuter->PresContext(); - presContext->LookAndFeel()-> - GetMetric(nsILookAndFeel::eMetric_ScrollbarsCanOverlapContent, canOverlap); - mScrollbarsCanOverlapContent = canOverlap; + mScrollbarsCanOverlapContent = + LookAndFeel::GetInt(LookAndFeel::eIntID_ScrollbarsCanOverlapContent) != 0; mScrollingActive = IsAlwaysActive(); } diff --git a/layout/generic/nsTextFrameThebes.cpp b/layout/generic/nsTextFrameThebes.cpp index 46c0922d0648..17958d0d218f 100644 --- a/layout/generic/nsTextFrameThebes.cpp +++ b/layout/generic/nsTextFrameThebes.cpp @@ -90,7 +90,6 @@ #include "nsFrameSelection.h" #include "nsISelection.h" #include "nsIDOMRange.h" -#include "nsILookAndFeel.h" #include "nsCSSRendering.h" #include "nsContentUtils.h" #include "nsLineBreaker.h" @@ -115,6 +114,7 @@ #include "mozilla/dom/Element.h" #include "mozilla/Util.h" // for DebugOnly +#include "mozilla/LookAndFeel.h" #ifdef NS_DEBUG #undef NOISY_BLINK @@ -3270,12 +3270,10 @@ nsTextPaintStyle::GetHighlightColors(nscolor* aForeColor, NS_ASSERTION(aForeColor, "aForeColor is null"); NS_ASSERTION(aBackColor, "aBackColor is null"); - nsILookAndFeel* look = mPresContext->LookAndFeel(); - nscolor foreColor, backColor; - look->GetColor(nsILookAndFeel::eColor_TextHighlightBackground, - backColor); - look->GetColor(nsILookAndFeel::eColor_TextHighlightForeground, - foreColor); + nscolor backColor = + LookAndFeel::GetColor(LookAndFeel::eColorID_TextHighlightBackground); + nscolor foreColor = + LookAndFeel::GetColor(LookAndFeel::eColorID_TextHighlightForeground); EnsureSufficientContrast(&foreColor, &backColor); *aForeColor = foreColor; *aBackColor = backColor; @@ -3357,14 +3355,12 @@ nsTextPaintStyle::InitCommonColors() NS_ASSERTION(NS_GET_A(defaultBgColor) == 255, "default background color is not opaque"); - nsILookAndFeel* look = mPresContext->LookAndFeel(); - nscolor defaultWindowBackgroundColor, selectionTextColor, selectionBGColor; - look->GetColor(nsILookAndFeel::eColor_TextSelectBackground, - selectionBGColor); - look->GetColor(nsILookAndFeel::eColor_TextSelectForeground, - selectionTextColor); - look->GetColor(nsILookAndFeel::eColor_WindowBackground, - defaultWindowBackgroundColor); + nscolor defaultWindowBackgroundColor = + LookAndFeel::GetColor(LookAndFeel::eColorID_WindowBackground); + nscolor selectionTextColor = + LookAndFeel::GetColor(LookAndFeel::eColorID_TextSelectForeground); + nscolor selectionBGColor = + LookAndFeel::GetColor(LookAndFeel::eColorID_TextSelectBackground); mSufficientContrast = NS_MIN(NS_MIN(NS_SUFFICIENT_LUMINOSITY_DIFFERENCE, @@ -3428,28 +3424,26 @@ nsTextPaintStyle::InitSelectionColors() } } - nsILookAndFeel* look = mPresContext->LookAndFeel(); - - nscolor selectionBGColor; - look->GetColor(nsILookAndFeel::eColor_TextSelectBackground, - selectionBGColor); + nscolor selectionBGColor = + LookAndFeel::GetColor(LookAndFeel::eColorID_TextSelectBackground); if (selectionStatus == nsISelectionController::SELECTION_ATTENTION) { - look->GetColor(nsILookAndFeel::eColor_TextSelectBackgroundAttention, - mSelectionBGColor); + mSelectionBGColor = + LookAndFeel::GetColor( + LookAndFeel::eColorID_TextSelectBackgroundAttention); mSelectionBGColor = EnsureDifferentColors(mSelectionBGColor, selectionBGColor); } else if (selectionStatus != nsISelectionController::SELECTION_ON) { - look->GetColor(nsILookAndFeel::eColor_TextSelectBackgroundDisabled, - mSelectionBGColor); + mSelectionBGColor = + LookAndFeel::GetColor(LookAndFeel::eColorID_TextSelectBackgroundDisabled); mSelectionBGColor = EnsureDifferentColors(mSelectionBGColor, selectionBGColor); } else { mSelectionBGColor = selectionBGColor; } - look->GetColor(nsILookAndFeel::eColor_TextSelectForeground, - mSelectionTextColor); + mSelectionTextColor = + LookAndFeel::GetColor(LookAndFeel::eColorID_TextSelectForeground); // On MacOS X, we don't exchange text color and BG color. if (mSelectionTextColor == NS_DONT_CHANGE_COLOR) { @@ -3469,36 +3463,36 @@ nsTextPaintStyle::GetSelectionStyle(PRInt32 aIndex) } struct StyleIDs { - nsILookAndFeel::nsColorID mForeground, mBackground, mLine; - nsILookAndFeel::nsMetricID mLineStyle; - nsILookAndFeel::nsMetricFloatID mLineRelativeSize; + LookAndFeel::ColorID mForeground, mBackground, mLine; + LookAndFeel::IntID mLineStyle; + LookAndFeel::FloatID mLineRelativeSize; }; static StyleIDs SelectionStyleIDs[] = { - { nsILookAndFeel::eColor_IMERawInputForeground, - nsILookAndFeel::eColor_IMERawInputBackground, - nsILookAndFeel::eColor_IMERawInputUnderline, - nsILookAndFeel::eMetric_IMERawInputUnderlineStyle, - nsILookAndFeel::eMetricFloat_IMEUnderlineRelativeSize }, - { nsILookAndFeel::eColor_IMESelectedRawTextForeground, - nsILookAndFeel::eColor_IMESelectedRawTextBackground, - nsILookAndFeel::eColor_IMESelectedRawTextUnderline, - nsILookAndFeel::eMetric_IMESelectedRawTextUnderlineStyle, - nsILookAndFeel::eMetricFloat_IMEUnderlineRelativeSize }, - { nsILookAndFeel::eColor_IMEConvertedTextForeground, - nsILookAndFeel::eColor_IMEConvertedTextBackground, - nsILookAndFeel::eColor_IMEConvertedTextUnderline, - nsILookAndFeel::eMetric_IMEConvertedTextUnderlineStyle, - nsILookAndFeel::eMetricFloat_IMEUnderlineRelativeSize }, - { nsILookAndFeel::eColor_IMESelectedConvertedTextForeground, - nsILookAndFeel::eColor_IMESelectedConvertedTextBackground, - nsILookAndFeel::eColor_IMESelectedConvertedTextUnderline, - nsILookAndFeel::eMetric_IMESelectedConvertedTextUnderline, - nsILookAndFeel::eMetricFloat_IMEUnderlineRelativeSize }, - { nsILookAndFeel::eColor_LAST_COLOR, - nsILookAndFeel::eColor_LAST_COLOR, - nsILookAndFeel::eColor_SpellCheckerUnderline, - nsILookAndFeel::eMetric_SpellCheckerUnderlineStyle, - nsILookAndFeel::eMetricFloat_SpellCheckerUnderlineRelativeSize } + { LookAndFeel::eColorID_IMERawInputForeground, + LookAndFeel::eColorID_IMERawInputBackground, + LookAndFeel::eColorID_IMERawInputUnderline, + LookAndFeel::eIntID_IMERawInputUnderlineStyle, + LookAndFeel::eFloatID_IMEUnderlineRelativeSize }, + { LookAndFeel::eColorID_IMESelectedRawTextForeground, + LookAndFeel::eColorID_IMESelectedRawTextBackground, + LookAndFeel::eColorID_IMESelectedRawTextUnderline, + LookAndFeel::eIntID_IMESelectedRawTextUnderlineStyle, + LookAndFeel::eFloatID_IMEUnderlineRelativeSize }, + { LookAndFeel::eColorID_IMEConvertedTextForeground, + LookAndFeel::eColorID_IMEConvertedTextBackground, + LookAndFeel::eColorID_IMEConvertedTextUnderline, + LookAndFeel::eIntID_IMEConvertedTextUnderlineStyle, + LookAndFeel::eFloatID_IMEUnderlineRelativeSize }, + { LookAndFeel::eColorID_IMESelectedConvertedTextForeground, + LookAndFeel::eColorID_IMESelectedConvertedTextBackground, + LookAndFeel::eColorID_IMESelectedConvertedTextUnderline, + LookAndFeel::eIntID_IMESelectedConvertedTextUnderline, + LookAndFeel::eFloatID_IMEUnderlineRelativeSize }, + { LookAndFeel::eColorID_LAST_COLOR, + LookAndFeel::eColorID_LAST_COLOR, + LookAndFeel::eColorID_SpellCheckerUnderline, + LookAndFeel::eIntID_SpellCheckerUnderlineStyle, + LookAndFeel::eFloatID_SpellCheckerUnderlineRelativeSize } }; void @@ -3511,17 +3505,16 @@ nsTextPaintStyle::InitSelectionStyle(PRInt32 aIndex) StyleIDs* styleIDs = &SelectionStyleIDs[aIndex]; - nsILookAndFeel* look = mPresContext->LookAndFeel(); nscolor foreColor, backColor; - if (styleIDs->mForeground == nsILookAndFeel::eColor_LAST_COLOR) { + if (styleIDs->mForeground == LookAndFeel::eColorID_LAST_COLOR) { foreColor = NS_SAME_AS_FOREGROUND_COLOR; } else { - look->GetColor(styleIDs->mForeground, foreColor); + foreColor = LookAndFeel::GetColor(styleIDs->mForeground); } - if (styleIDs->mBackground == nsILookAndFeel::eColor_LAST_COLOR) { + if (styleIDs->mBackground == LookAndFeel::eColorID_LAST_COLOR) { backColor = NS_TRANSPARENT; } else { - look->GetColor(styleIDs->mBackground, backColor); + backColor = LookAndFeel::GetColor(styleIDs->mBackground); } // Convert special color to actual color @@ -3564,20 +3557,15 @@ nsTextPaintStyle::GetSelectionUnderline(nsPresContext* aPresContext, NS_ASSERTION(aStyle, "aStyle is null"); NS_ASSERTION(aIndex >= 0 && aIndex < 5, "Index out of range"); - nsILookAndFeel* look = aPresContext->LookAndFeel(); - StyleIDs& styleID = SelectionStyleIDs[aIndex]; - nscolor color; - float size; - PRInt32 style; - look->GetColor(styleID.mLine, color); - look->GetMetric(styleID.mLineStyle, style); + nscolor color = LookAndFeel::GetColor(styleID.mLine); + PRInt32 style = LookAndFeel::GetInt(styleID.mLineStyle); if (style > NS_STYLE_TEXT_DECORATION_STYLE_MAX) { NS_ERROR("Invalid underline style value is specified"); style = NS_STYLE_TEXT_DECORATION_STYLE_SOLID; } - look->GetMetric(styleID.mLineRelativeSize, size); + float size = LookAndFeel::GetFloat(styleID.mLineRelativeSize); NS_ASSERTION(size, "selection underline relative size must be larger than 0"); diff --git a/layout/mathml/nsMathMLChar.cpp b/layout/mathml/nsMathMLChar.cpp index 18128356023e..6dce6431e85c 100644 --- a/layout/mathml/nsMathMLChar.cpp +++ b/layout/mathml/nsMathMLChar.cpp @@ -58,7 +58,7 @@ #include "nsIObserver.h" #include "nsNetUtil.h" -#include "nsILookAndFeel.h" +#include "mozilla/LookAndFeel.h" #include "nsCSSRendering.h" #include "prprf.h" // For PR_snprintf() @@ -1852,9 +1852,9 @@ void nsDisplayMathMLSelectionRect::Paint(nsDisplayListBuilder* aBuilder, nsRenderingContext* aCtx) { // get color to use for selection from the look&feel object - nscolor bgColor = NS_RGB(0, 0, 0); - mFrame->PresContext()->LookAndFeel()-> - GetColor(nsILookAndFeel::eColor_TextSelectBackground, bgColor); + nscolor bgColor = + LookAndFeel::GetColor(LookAndFeel::eColorID_TextSelectBackground, + NS_RGB(0, 0, 0)); aCtx->SetColor(bgColor); aCtx->FillRect(mRect + ToReferenceFrame()); } @@ -2056,8 +2056,8 @@ nsMathMLChar::PaintForeground(nsPresContext* aPresContext, nscolor fgColor = styleContext->GetStyleColor()->mColor; if (aIsSelected) { // get color to use for selection from the look&feel object - aPresContext->LookAndFeel()-> - GetColor(nsILookAndFeel::eColor_TextSelectForeground, fgColor); + fgColor = LookAndFeel::GetColor(LookAndFeel::eColorID_TextSelectForeground, + fgColor); } aRenderingContext.SetColor(fgColor); diff --git a/layout/svg/base/src/nsSVGGlyphFrame.cpp b/layout/svg/base/src/nsSVGGlyphFrame.cpp index 4ff03d80cbe8..e11e3b77ce39 100644 --- a/layout/svg/base/src/nsSVGGlyphFrame.cpp +++ b/layout/svg/base/src/nsSVGGlyphFrame.cpp @@ -37,7 +37,7 @@ * ***** END LICENSE BLOCK ***** */ #include "nsSVGTextFrame.h" -#include "nsILookAndFeel.h" +#include "mozilla/LookAndFeel.h" #include "nsTextFragment.h" #include "nsBidiPresUtils.h" #include "nsSVGUtils.h" @@ -1007,11 +1007,11 @@ nsSVGGlyphFrame::GetHighlight(PRUint32 *charnum, PRUint32 *nchars, *charnum=CompressIndex(details->mStart, fragment); *nchars=CompressIndex(details->mEnd, fragment)-*charnum; - - nsILookAndFeel *look = presContext->LookAndFeel(); - look->GetColor(nsILookAndFeel::eColor_TextSelectBackground, *background); - look->GetColor(nsILookAndFeel::eColor_TextSelectForeground, *foreground); + LookAndFeel::GetColor(LookAndFeel::eColorID_TextSelectBackground, + background); + LookAndFeel::GetColor(LookAndFeel::eColorID_TextSelectForeground, + foreground); SelectionDetails *dp = details; while ((dp=details->mNext) != nsnull) { diff --git a/layout/tables/nsTableCellFrame.cpp b/layout/tables/nsTableCellFrame.cpp index 1fed0841fff2..d385d3cff83d 100644 --- a/layout/tables/nsTableCellFrame.cpp +++ b/layout/tables/nsTableCellFrame.cpp @@ -65,7 +65,9 @@ //TABLECELL SELECTION #include "nsFrameSelection.h" -#include "nsILookAndFeel.h" +#include "mozilla/LookAndFeel.h" + +using namespace mozilla; nsTableCellFrame::nsTableCellFrame(nsStyleContext* aContext) : @@ -328,9 +330,8 @@ nsTableCellFrame::DecorateForSelection(nsRenderingContext& aRenderingContext, bordercolor = NS_RGB(176,176,176);// disabled color } else { - presContext->LookAndFeel()-> - GetColor(nsILookAndFeel::eColor_TextSelectBackground, - bordercolor); + bordercolor = + LookAndFeel::GetColor(LookAndFeel::eColorID_TextSelectBackground); } nscoord threePx = nsPresContext::CSSPixelsToAppUnits(3); if ((mRect.width > threePx) && (mRect.height > threePx))