Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(211)

Unified Diff: third_party/WebKit/Source/platform/scroll/ScrollbarThemeMacOverlayAPI.mm

Issue 1511003003: Use refs for non-null GraphicsContext, Scrollbar, etc. in scrollbar related code (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@ScrollbarRemove
Patch Set: yet another mac fix Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/platform/scroll/ScrollbarThemeMacOverlayAPI.mm
diff --git a/third_party/WebKit/Source/platform/scroll/ScrollbarThemeMacOverlayAPI.mm b/third_party/WebKit/Source/platform/scroll/ScrollbarThemeMacOverlayAPI.mm
index 91d5131b11a9dee30de83fbc5ad6940b13562e22..45df5b185689c2c858b445a0d2596966e1ca2e97 100644
--- a/third_party/WebKit/Source/platform/scroll/ScrollbarThemeMacOverlayAPI.mm
+++ b/third_party/WebKit/Source/platform/scroll/ScrollbarThemeMacOverlayAPI.mm
@@ -92,10 +92,10 @@ namespace blink {
typedef HashMap<ScrollbarThemeClient*, RetainPtr<WebCoreScrollbarObserver> > ScrollbarPainterMap;
-static ScrollbarPainterMap* scrollbarPainterMap()
+static ScrollbarPainterMap& scrollbarPainterMap()
{
static ScrollbarPainterMap* map = new ScrollbarPainterMap;
- return map;
+ return *map;
}
static bool supportsExpandedScrollbars()
@@ -105,76 +105,76 @@ static bool supportsExpandedScrollbars()
return globalSupportsExpandedScrollbars;
}
-void ScrollbarThemeMacOverlayAPI::registerScrollbar(ScrollbarThemeClient* scrollbar)
+void ScrollbarThemeMacOverlayAPI::registerScrollbar(ScrollbarThemeClient& scrollbar)
{
ScrollbarThemeMacCommon::registerScrollbar(scrollbar);
- bool isHorizontal = scrollbar->orientation() == HorizontalScrollbar;
- ScrollbarPainter scrollbarPainter = [NSClassFromString(@"NSScrollerImp") scrollerImpWithStyle:recommendedScrollerStyle() controlSize:(NSControlSize)scrollbar->controlSize() horizontal:isHorizontal replacingScrollerImp:nil];
- RetainPtr<WebCoreScrollbarObserver> observer = [[WebCoreScrollbarObserver alloc] initWithScrollbar:scrollbar painter:scrollbarPainter];
+ bool isHorizontal = scrollbar.orientation() == HorizontalScrollbar;
+ ScrollbarPainter scrollbarPainter = [NSClassFromString(@"NSScrollerImp") scrollerImpWithStyle:recommendedScrollerStyle() controlSize:(NSControlSize)scrollbar.controlSize() horizontal:isHorizontal replacingScrollerImp:nil];
+ RetainPtr<WebCoreScrollbarObserver> observer = [[WebCoreScrollbarObserver alloc] initWithScrollbar:&scrollbar painter:scrollbarPainter];
- scrollbarPainterMap()->add(scrollbar, observer);
+ scrollbarPainterMap().add(&scrollbar, observer);
updateEnabledState(scrollbar);
updateScrollbarOverlayStyle(scrollbar);
}
-void ScrollbarThemeMacOverlayAPI::unregisterScrollbar(ScrollbarThemeClient* scrollbar)
+void ScrollbarThemeMacOverlayAPI::unregisterScrollbar(ScrollbarThemeClient& scrollbar)
{
- scrollbarPainterMap()->remove(scrollbar);
+ scrollbarPainterMap().remove(&scrollbar);
ScrollbarThemeMacCommon::unregisterScrollbar(scrollbar);
}
-void ScrollbarThemeMacOverlayAPI::setNewPainterForScrollbar(ScrollbarThemeClient* scrollbar, ScrollbarPainter newPainter)
+void ScrollbarThemeMacOverlayAPI::setNewPainterForScrollbar(ScrollbarThemeClient& scrollbar, ScrollbarPainter newPainter)
{
- RetainPtr<WebCoreScrollbarObserver> observer = [[WebCoreScrollbarObserver alloc] initWithScrollbar:scrollbar painter:newPainter];
- scrollbarPainterMap()->set(scrollbar, observer);
+ RetainPtr<WebCoreScrollbarObserver> observer = [[WebCoreScrollbarObserver alloc] initWithScrollbar:&scrollbar painter:newPainter];
+ scrollbarPainterMap().set(&scrollbar, observer);
updateEnabledState(scrollbar);
updateScrollbarOverlayStyle(scrollbar);
}
-ScrollbarPainter ScrollbarThemeMacOverlayAPI::painterForScrollbar(const ScrollbarThemeClient* scrollbar) const
+ScrollbarPainter ScrollbarThemeMacOverlayAPI::painterForScrollbar(const ScrollbarThemeClient& scrollbar) const
{
- return [scrollbarPainterMap()->get(const_cast<ScrollbarThemeClient*>(scrollbar)).get() painter];
+ return [scrollbarPainterMap().get(const_cast<ScrollbarThemeClient*>(&scrollbar)).get() painter];
}
-void ScrollbarThemeMacOverlayAPI::paintTrackBackground(GraphicsContext* context, const ScrollbarThemeClient* scrollbar, const IntRect& rect) {
- if (DrawingRecorder::useCachedDrawingIfPossible(*context, *scrollbar, DisplayItem::ScrollbarTrackBackground))
+void ScrollbarThemeMacOverlayAPI::paintTrackBackground(GraphicsContext& context, const ScrollbarThemeClient& scrollbar, const IntRect& rect) {
+ if (DrawingRecorder::useCachedDrawingIfPossible(context, scrollbar, DisplayItem::ScrollbarTrackBackground))
return;
- DrawingRecorder recorder(*context, *scrollbar, DisplayItem::ScrollbarTrackBackground, rect);
+ DrawingRecorder recorder(context, scrollbar, DisplayItem::ScrollbarTrackBackground, rect);
ASSERT(isOverlayAPIAvailable());
- GraphicsContextStateSaver stateSaver(*context);
- context->translate(rect.x(), rect.y());
- LocalCurrentGraphicsContext localContext(context, IntRect(IntPoint(), rect.size()));
+ GraphicsContextStateSaver stateSaver(context);
+ context.translate(rect.x(), rect.y());
+ LocalCurrentGraphicsContext localContext(&context, IntRect(IntPoint(), rect.size()));
- CGRect frameRect = scrollbar->frameRect();
+ CGRect frameRect = scrollbar.frameRect();
ScrollbarPainter scrollbarPainter = painterForScrollbar(scrollbar);
- [scrollbarPainter setEnabled:scrollbar->enabled()];
+ [scrollbarPainter setEnabled:scrollbar.enabled()];
[scrollbarPainter setBoundsSize: NSSizeFromCGSize(frameRect.size)];
NSRect trackRect = NSMakeRect(0, 0, frameRect.size.width, frameRect.size.height);
[scrollbarPainter drawKnobSlotInRect:trackRect highlight:NO];
}
-void ScrollbarThemeMacOverlayAPI::paintThumb(GraphicsContext* context, const ScrollbarThemeClient* scrollbar, const IntRect& rect) {
- if (DrawingRecorder::useCachedDrawingIfPossible(*context, *scrollbar, DisplayItem::ScrollbarThumb))
+void ScrollbarThemeMacOverlayAPI::paintThumb(GraphicsContext& context, const ScrollbarThemeClient& scrollbar, const IntRect& rect) {
+ if (DrawingRecorder::useCachedDrawingIfPossible(context, scrollbar, DisplayItem::ScrollbarThumb))
return;
// Expand dirty rect to allow for scroll thumb anti-aliasing in minimum thumb size case.
IntRect dirtyRect = IntRect(rect);
dirtyRect.inflate(1);
- DrawingRecorder recorder(*context, *scrollbar, DisplayItem::ScrollbarThumb, dirtyRect);
+ DrawingRecorder recorder(context, scrollbar, DisplayItem::ScrollbarThumb, dirtyRect);
ASSERT(isOverlayAPIAvailable());
- GraphicsContextStateSaver stateSaver(*context);
- context->translate(rect.x(), rect.y());
- LocalCurrentGraphicsContext localContext(context, IntRect(IntPoint(), rect.size()));
+ GraphicsContextStateSaver stateSaver(context);
+ context.translate(rect.x(), rect.y());
+ LocalCurrentGraphicsContext localContext(&context, IntRect(IntPoint(), rect.size()));
ScrollbarPainter scrollbarPainter = painterForScrollbar(scrollbar);
- [scrollbarPainter setEnabled:scrollbar->enabled()];
+ [scrollbarPainter setEnabled:scrollbar.enabled()];
[scrollbarPainter setBoundsSize:NSSizeFromCGSize(rect.size())];
[scrollbarPainter setDoubleValue:0];
[scrollbarPainter setKnobProportion:1];
@@ -182,12 +182,12 @@ void ScrollbarThemeMacOverlayAPI::paintThumb(GraphicsContext* context, const Scr
CGFloat oldKnobAlpha = [scrollbarPainter knobAlpha];
[scrollbarPainter setKnobAlpha:1];
- if (scrollbar->enabled())
+ if (scrollbar.enabled())
[scrollbarPainter drawKnob];
// If this state is not set, then moving the cursor over the scrollbar area will only cause the
// scrollbar to engorge when moved over the top of the scrollbar area.
- [scrollbarPainter setBoundsSize: NSSizeFromCGSize(scrollbar->frameRect().size())];
+ [scrollbarPainter setBoundsSize: NSSizeFromCGSize(scrollbar.frameRect().size())];
[scrollbarPainter setKnobAlpha:oldKnobAlpha];
}
@@ -211,10 +211,10 @@ bool ScrollbarThemeMacOverlayAPI::usesOverlayScrollbars() const
return recommendedScrollerStyle() == NSScrollerStyleOverlay;
}
-void ScrollbarThemeMacOverlayAPI::updateScrollbarOverlayStyle(const ScrollbarThemeClient* scrollbar)
+void ScrollbarThemeMacOverlayAPI::updateScrollbarOverlayStyle(const ScrollbarThemeClient& scrollbar)
{
ScrollbarPainter painter = painterForScrollbar(scrollbar);
- switch (scrollbar->scrollbarOverlayStyle()) {
+ switch (scrollbar.scrollbarOverlayStyle()) {
case ScrollbarOverlayStyleDefault:
[painter setKnobStyle:NSScrollerKnobStyleDefault];
break;
@@ -232,45 +232,45 @@ ScrollbarButtonsPlacement ScrollbarThemeMacOverlayAPI::buttonsPlacement() const
return ScrollbarButtonsPlacementNone;
}
-bool ScrollbarThemeMacOverlayAPI::hasThumb(const ScrollbarThemeClient* scrollbar)
+bool ScrollbarThemeMacOverlayAPI::hasThumb(const ScrollbarThemeClient& scrollbar)
{
ScrollbarPainter painter = painterForScrollbar(scrollbar);
int minLengthForThumb = [painter knobMinLength] + [painter trackOverlapEndInset] + [painter knobOverlapEndInset]
+ 2 * ([painter trackEndInset] + [painter knobEndInset]);
- return scrollbar->enabled() && (scrollbar->orientation() == HorizontalScrollbar ?
- scrollbar->width() :
- scrollbar->height()) >= minLengthForThumb;
+ return scrollbar.enabled() && (scrollbar.orientation() == HorizontalScrollbar ?
+ scrollbar.width() :
+ scrollbar.height()) >= minLengthForThumb;
}
-IntRect ScrollbarThemeMacOverlayAPI::backButtonRect(const ScrollbarThemeClient* scrollbar, ScrollbarPart part, bool painting)
+IntRect ScrollbarThemeMacOverlayAPI::backButtonRect(const ScrollbarThemeClient& scrollbar, ScrollbarPart part, bool painting)
{
ASSERT(buttonsPlacement() == ScrollbarButtonsPlacementNone);
return IntRect();
}
-IntRect ScrollbarThemeMacOverlayAPI::forwardButtonRect(const ScrollbarThemeClient* scrollbar, ScrollbarPart part, bool painting)
+IntRect ScrollbarThemeMacOverlayAPI::forwardButtonRect(const ScrollbarThemeClient& scrollbar, ScrollbarPart part, bool painting)
{
ASSERT(buttonsPlacement() == ScrollbarButtonsPlacementNone);
return IntRect();
}
-IntRect ScrollbarThemeMacOverlayAPI::trackRect(const ScrollbarThemeClient* scrollbar, bool painting)
+IntRect ScrollbarThemeMacOverlayAPI::trackRect(const ScrollbarThemeClient& scrollbar, bool painting)
{
ASSERT(!hasButtons(scrollbar));
- return scrollbar->frameRect();
+ return scrollbar.frameRect();
}
-int ScrollbarThemeMacOverlayAPI::minimumThumbLength(const ScrollbarThemeClient* scrollbar)
+int ScrollbarThemeMacOverlayAPI::minimumThumbLength(const ScrollbarThemeClient& scrollbar)
{
return [painterForScrollbar(scrollbar) knobMinLength];
}
-void ScrollbarThemeMacOverlayAPI::updateEnabledState(const ScrollbarThemeClient* scrollbar)
+void ScrollbarThemeMacOverlayAPI::updateEnabledState(const ScrollbarThemeClient& scrollbar)
{
- [painterForScrollbar(scrollbar) setEnabled:scrollbar->enabled()];
+ [painterForScrollbar(scrollbar) setEnabled:scrollbar.enabled()];
}
-float ScrollbarThemeMacOverlayAPI::thumbOpacity(const ScrollbarThemeClient* scrollbar) const {
+float ScrollbarThemeMacOverlayAPI::thumbOpacity(const ScrollbarThemeClient& scrollbar) const {
ScrollbarPainter scrollbarPainter = painterForScrollbar(scrollbar);
return [scrollbarPainter knobAlpha];
}

Powered by Google App Engine
This is Rietveld 408576698