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]; |
} |