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