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

Unified Diff: third_party/WebKit/Source/platform/scroll/ScrollbarTheme.cpp

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/ScrollbarTheme.cpp
diff --git a/third_party/WebKit/Source/platform/scroll/ScrollbarTheme.cpp b/third_party/WebKit/Source/platform/scroll/ScrollbarTheme.cpp
index eccc22ca94a398bb20fd5d6b5ad29aba041884bf..7d641481b39723aa155c8e2e85dd1b9d0a156447 100644
--- a/third_party/WebKit/Source/platform/scroll/ScrollbarTheme.cpp
+++ b/third_party/WebKit/Source/platform/scroll/ScrollbarTheme.cpp
@@ -56,7 +56,7 @@ static inline bool shouldPaintScrollbarPart(const IntRect& partRect, const CullR
return (!partRect.isEmpty()) || cullRect.intersectsCullRect(partRect);
}
-bool ScrollbarTheme::paint(const ScrollbarThemeClient* scrollbar, GraphicsContext* graphicsContext, const CullRect& cullRect)
+bool ScrollbarTheme::paint(const ScrollbarThemeClient& scrollbar, GraphicsContext& graphicsContext, const CullRect& cullRect)
{
// Create the ScrollbarControlPartMask based on the cullRect
ScrollbarControlPartMask scrollMask = NoPart;
@@ -130,16 +130,16 @@ bool ScrollbarTheme::paint(const ScrollbarThemeClient* scrollbar, GraphicsContex
return true;
}
-ScrollbarPart ScrollbarTheme::hitTest(const ScrollbarThemeClient* scrollbar, const IntPoint& positionInRootFrame)
+ScrollbarPart ScrollbarTheme::hitTest(const ScrollbarThemeClient& scrollbar, const IntPoint& positionInRootFrame)
{
ScrollbarPart result = NoPart;
- if (!scrollbar->enabled())
+ if (!scrollbar.enabled())
return result;
- IntPoint testPosition = scrollbar->convertFromRootFrame(positionInRootFrame);
- testPosition.move(scrollbar->x(), scrollbar->y());
+ IntPoint testPosition = scrollbar.convertFromRootFrame(positionInRootFrame);
+ testPosition.move(scrollbar.x(), scrollbar.y());
- if (!scrollbar->frameRect().contains(testPosition))
+ if (!scrollbar.frameRect().contains(testPosition))
return NoPart;
result = ScrollbarBGPart;
@@ -170,57 +170,57 @@ ScrollbarPart ScrollbarTheme::hitTest(const ScrollbarThemeClient* scrollbar, con
return result;
}
-void ScrollbarTheme::paintScrollCorner(GraphicsContext* context, const DisplayItemClient& displayItemClient, const IntRect& cornerRect)
+void ScrollbarTheme::paintScrollCorner(GraphicsContext& context, const DisplayItemClient& displayItemClient, const IntRect& cornerRect)
{
if (cornerRect.isEmpty())
return;
- if (DrawingRecorder::useCachedDrawingIfPossible(*context, displayItemClient, DisplayItem::ScrollbarCorner))
+ if (DrawingRecorder::useCachedDrawingIfPossible(context, displayItemClient, DisplayItem::ScrollbarCorner))
return;
- DrawingRecorder recorder(*context, displayItemClient, DisplayItem::ScrollbarCorner, cornerRect);
+ DrawingRecorder recorder(context, displayItemClient, DisplayItem::ScrollbarCorner, cornerRect);
#if OS(MACOSX)
- context->fillRect(cornerRect, Color::white);
+ context.fillRect(cornerRect, Color::white);
#else
- Platform::current()->themeEngine()->paint(context->canvas(), WebThemeEngine::PartScrollbarCorner, WebThemeEngine::StateNormal, WebRect(cornerRect), 0);
+ Platform::current()->themeEngine()->paint(context.canvas(), WebThemeEngine::PartScrollbarCorner, WebThemeEngine::StateNormal, WebRect(cornerRect), 0);
#endif
}
-bool ScrollbarTheme::shouldCenterOnThumb(const ScrollbarThemeClient* scrollbar, const PlatformMouseEvent& evt)
+bool ScrollbarTheme::shouldCenterOnThumb(const ScrollbarThemeClient& scrollbar, const PlatformMouseEvent& evt)
{
return Platform::current()->scrollbarBehavior()->shouldCenterOnThumb(static_cast<WebScrollbarBehavior::Button>(evt.button()), evt.shiftKey(), evt.altKey());
}
-bool ScrollbarTheme::shouldSnapBackToDragOrigin(const ScrollbarThemeClient* scrollbar, const PlatformMouseEvent& evt)
+bool ScrollbarTheme::shouldSnapBackToDragOrigin(const ScrollbarThemeClient& scrollbar, const PlatformMouseEvent& evt)
{
- IntPoint mousePosition = scrollbar->convertFromRootFrame(evt.position());
- mousePosition.move(scrollbar->x(), scrollbar->y());
- return Platform::current()->scrollbarBehavior()->shouldSnapBackToDragOrigin(mousePosition, trackRect(scrollbar), scrollbar->orientation() == HorizontalScrollbar);
+ IntPoint mousePosition = scrollbar.convertFromRootFrame(evt.position());
+ mousePosition.move(scrollbar.x(), scrollbar.y());
+ return Platform::current()->scrollbarBehavior()->shouldSnapBackToDragOrigin(mousePosition, trackRect(scrollbar), scrollbar.orientation() == HorizontalScrollbar);
}
-int ScrollbarTheme::thumbPosition(const ScrollbarThemeClient* scrollbar)
+int ScrollbarTheme::thumbPosition(const ScrollbarThemeClient& scrollbar)
{
- if (scrollbar->enabled()) {
- float size = scrollbar->totalSize() - scrollbar->visibleSize();
+ if (scrollbar.enabled()) {
+ float size = scrollbar.totalSize() - scrollbar.visibleSize();
// Avoid doing a floating point divide by zero and return 1 when usedTotalSize == visibleSize.
if (!size)
return 0;
- float pos = std::max(0.0f, scrollbar->currentPos()) * (trackLength(scrollbar) - thumbLength(scrollbar)) / size;
+ float pos = std::max(0.0f, scrollbar.currentPos()) * (trackLength(scrollbar) - thumbLength(scrollbar)) / size;
return (pos < 1 && pos > 0) ? 1 : pos;
}
return 0;
}
-int ScrollbarTheme::thumbLength(const ScrollbarThemeClient* scrollbar)
+int ScrollbarTheme::thumbLength(const ScrollbarThemeClient& scrollbar)
{
- if (!scrollbar->enabled())
+ if (!scrollbar.enabled())
return 0;
- float overhang = fabsf(scrollbar->elasticOverscroll());
+ float overhang = fabsf(scrollbar.elasticOverscroll());
float proportion = 0.0f;
- float totalSize = scrollbar->totalSize();
+ float totalSize = scrollbar.totalSize();
if (totalSize > 0.0f) {
- proportion = (scrollbar->visibleSize() - overhang) / totalSize;
+ proportion = (scrollbar.visibleSize() - overhang) / totalSize;
}
int trackLen = trackLength(scrollbar);
int length = round(proportion * trackLen);
@@ -230,19 +230,19 @@ int ScrollbarTheme::thumbLength(const ScrollbarThemeClient* scrollbar)
return length;
}
-int ScrollbarTheme::trackPosition(const ScrollbarThemeClient* scrollbar)
+int ScrollbarTheme::trackPosition(const ScrollbarThemeClient& scrollbar)
{
IntRect constrainedTrackRect = constrainTrackRectToTrackPieces(scrollbar, trackRect(scrollbar));
- return (scrollbar->orientation() == HorizontalScrollbar) ? constrainedTrackRect.x() - scrollbar->x() : constrainedTrackRect.y() - scrollbar->y();
+ return (scrollbar.orientation() == HorizontalScrollbar) ? constrainedTrackRect.x() - scrollbar.x() : constrainedTrackRect.y() - scrollbar.y();
}
-int ScrollbarTheme::trackLength(const ScrollbarThemeClient* scrollbar)
+int ScrollbarTheme::trackLength(const ScrollbarThemeClient& scrollbar)
{
IntRect constrainedTrackRect = constrainTrackRectToTrackPieces(scrollbar, trackRect(scrollbar));
- return (scrollbar->orientation() == HorizontalScrollbar) ? constrainedTrackRect.width() : constrainedTrackRect.height();
+ return (scrollbar.orientation() == HorizontalScrollbar) ? constrainedTrackRect.width() : constrainedTrackRect.height();
}
-IntRect ScrollbarTheme::thumbRect(const ScrollbarThemeClient* scrollbar)
+IntRect ScrollbarTheme::thumbRect(const ScrollbarThemeClient& scrollbar)
{
if (!hasThumb(scrollbar))
return IntRect();
@@ -256,44 +256,44 @@ IntRect ScrollbarTheme::thumbRect(const ScrollbarThemeClient* scrollbar)
return thumbRect;
}
-int ScrollbarTheme::thumbThickness(const ScrollbarThemeClient* scrollbar)
+int ScrollbarTheme::thumbThickness(const ScrollbarThemeClient& scrollbar)
{
IntRect track = trackRect(scrollbar);
- return scrollbar->orientation() == HorizontalScrollbar ? track.height() : track.width();
+ return scrollbar.orientation() == HorizontalScrollbar ? track.height() : track.width();
}
-int ScrollbarTheme::minimumThumbLength(const ScrollbarThemeClient* scrollbar)
+int ScrollbarTheme::minimumThumbLength(const ScrollbarThemeClient& scrollbar)
{
- return scrollbarThickness(scrollbar->controlSize());
+ return scrollbarThickness(scrollbar.controlSize());
}
-void ScrollbarTheme::splitTrack(const ScrollbarThemeClient* scrollbar, const IntRect& unconstrainedTrackRect, IntRect& beforeThumbRect, IntRect& thumbRect, IntRect& afterThumbRect)
+void ScrollbarTheme::splitTrack(const ScrollbarThemeClient& scrollbar, const IntRect& unconstrainedTrackRect, IntRect& beforeThumbRect, IntRect& thumbRect, IntRect& afterThumbRect)
{
// This function won't even get called unless we're big enough to have some combination of these three rects where at least
// one of them is non-empty.
IntRect trackRect = constrainTrackRectToTrackPieces(scrollbar, unconstrainedTrackRect);
int thumbPos = thumbPosition(scrollbar);
- if (scrollbar->orientation() == HorizontalScrollbar) {
- thumbRect = IntRect(trackRect.x() + thumbPos, trackRect.y(), thumbLength(scrollbar), scrollbar->height());
+ if (scrollbar.orientation() == HorizontalScrollbar) {
+ thumbRect = IntRect(trackRect.x() + thumbPos, trackRect.y(), thumbLength(scrollbar), scrollbar.height());
beforeThumbRect = IntRect(trackRect.x(), trackRect.y(), thumbPos + thumbRect.width() / 2, trackRect.height());
afterThumbRect = IntRect(trackRect.x() + beforeThumbRect.width(), trackRect.y(), trackRect.maxX() - beforeThumbRect.maxX(), trackRect.height());
} else {
- thumbRect = IntRect(trackRect.x(), trackRect.y() + thumbPos, scrollbar->width(), thumbLength(scrollbar));
+ thumbRect = IntRect(trackRect.x(), trackRect.y() + thumbPos, scrollbar.width(), thumbLength(scrollbar));
beforeThumbRect = IntRect(trackRect.x(), trackRect.y(), trackRect.width(), thumbPos + thumbRect.height() / 2);
afterThumbRect = IntRect(trackRect.x(), trackRect.y() + beforeThumbRect.height(), trackRect.width(), trackRect.maxY() - beforeThumbRect.maxY());
}
}
-ScrollbarTheme* ScrollbarTheme::theme()
+ScrollbarTheme& ScrollbarTheme::theme()
{
if (ScrollbarTheme::mockScrollbarsEnabled()) {
if (RuntimeEnabledFeatures::overlayScrollbarsEnabled()) {
DEFINE_STATIC_LOCAL(ScrollbarThemeOverlayMock, overlayMockTheme, ());
- return &overlayMockTheme;
+ return overlayMockTheme;
}
DEFINE_STATIC_LOCAL(ScrollbarThemeMock, mockTheme, ());
- return &mockTheme;
+ return mockTheme;
}
return nativeTheme();
}

Powered by Google App Engine
This is Rietveld 408576698