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

Side by Side Diff: third_party/WebKit/Source/platform/scroll/ScrollbarThemeAura.cpp

Issue 2045963003: WebScrollbarThemeClientImpl should not be DisplayItemClient (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 months 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2008, 2009, Google Inc. All rights reserved. 2 * Copyright (c) 2008, 2009, Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 19 matching lines...) Expand all
30 30
31 #include "platform/scroll/ScrollbarThemeAura.h" 31 #include "platform/scroll/ScrollbarThemeAura.h"
32 32
33 #include "platform/LayoutTestSupport.h" 33 #include "platform/LayoutTestSupport.h"
34 #include "platform/PlatformMouseEvent.h" 34 #include "platform/PlatformMouseEvent.h"
35 #include "platform/RuntimeEnabledFeatures.h" 35 #include "platform/RuntimeEnabledFeatures.h"
36 #include "platform/graphics/GraphicsContext.h" 36 #include "platform/graphics/GraphicsContext.h"
37 #include "platform/graphics/GraphicsContextStateSaver.h" 37 #include "platform/graphics/GraphicsContextStateSaver.h"
38 #include "platform/graphics/paint/DrawingRecorder.h" 38 #include "platform/graphics/paint/DrawingRecorder.h"
39 #include "platform/scroll/ScrollableArea.h" 39 #include "platform/scroll/ScrollableArea.h"
40 #include "platform/scroll/ScrollbarThemeClient.h" 40 #include "platform/scroll/Scrollbar.h"
41 #include "platform/scroll/ScrollbarThemeOverlay.h" 41 #include "platform/scroll/ScrollbarThemeOverlay.h"
42 #include "public/platform/Platform.h" 42 #include "public/platform/Platform.h"
43 #include "public/platform/WebRect.h" 43 #include "public/platform/WebRect.h"
44 #include "public/platform/WebThemeEngine.h" 44 #include "public/platform/WebThemeEngine.h"
45 45
46 namespace blink { 46 namespace blink {
47 47
48 namespace { 48 namespace {
49 49
50 static bool useMockTheme() 50 static bool useMockTheme()
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
202 { 202 {
203 if (scrollbar.orientation() == VerticalScrollbar) { 203 if (scrollbar.orientation() == VerticalScrollbar) {
204 IntSize size = Platform::current()->themeEngine()->getSize(WebThemeEngin e::PartScrollbarVerticalThumb); 204 IntSize size = Platform::current()->themeEngine()->getSize(WebThemeEngin e::PartScrollbarVerticalThumb);
205 return size.height(); 205 return size.height();
206 } 206 }
207 207
208 IntSize size = Platform::current()->themeEngine()->getSize(WebThemeEngine::P artScrollbarHorizontalThumb); 208 IntSize size = Platform::current()->themeEngine()->getSize(WebThemeEngine::P artScrollbarHorizontalThumb);
209 return size.width(); 209 return size.width();
210 } 210 }
211 211
212 void ScrollbarThemeAura::paintTickmarks(GraphicsContext& context, const Scrollba rThemeClient& scrollbar, const IntRect& rect) 212 void ScrollbarThemeAura::paintTickmarks(GraphicsContext& context, const Scrollba r& scrollbar, const IntRect& rect)
213 { 213 {
214 if (scrollbar.orientation() != VerticalScrollbar) 214 if (scrollbar.orientation() != VerticalScrollbar)
215 return; 215 return;
216 216
217 if (rect.height() <= 0 || rect.width() <= 0) 217 if (rect.height() <= 0 || rect.width() <= 0)
218 return; 218 return;
219 219
220 // Get the tickmarks for the frameview. 220 // Get the tickmarks for the frameview.
221 Vector<IntRect> tickmarks; 221 Vector<IntRect> tickmarks;
222 scrollbar.getTickmarks(tickmarks); 222 scrollbar.getTickmarks(tickmarks);
(...skipping 15 matching lines...) Expand all
238 const int yPos = rect.y() + (rect.height() * percent); 238 const int yPos = rect.y() + (rect.height() * percent);
239 239
240 FloatRect tickRect(rect.x(), yPos, rect.width(), 3); 240 FloatRect tickRect(rect.x(), yPos, rect.width(), 3);
241 context.fillRect(tickRect, Color(0xCC, 0xAA, 0x00, 0xFF)); 241 context.fillRect(tickRect, Color(0xCC, 0xAA, 0x00, 0xFF));
242 242
243 FloatRect tickStroke(rect.x(), yPos + 1, rect.width(), 1); 243 FloatRect tickStroke(rect.x(), yPos + 1, rect.width(), 1);
244 context.fillRect(tickStroke, Color(0xFF, 0xDD, 0x00, 0xFF)); 244 context.fillRect(tickStroke, Color(0xFF, 0xDD, 0x00, 0xFF));
245 } 245 }
246 } 246 }
247 247
248 void ScrollbarThemeAura::paintTrackBackground(GraphicsContext& context, const Sc rollbarThemeClient& scrollbar, const IntRect& rect) 248 void ScrollbarThemeAura::paintTrackBackground(GraphicsContext& context, const Sc rollbar& scrollbar, const IntRect& rect)
249 { 249 {
250 // Just assume a forward track part. We only paint the track as a single pie ce when there is no thumb. 250 // Just assume a forward track part. We only paint the track as a single pie ce when there is no thumb.
251 if (!hasThumb(scrollbar) && !rect.isEmpty()) 251 if (!hasThumb(scrollbar) && !rect.isEmpty())
252 paintTrackPiece(context, scrollbar, rect, ForwardTrackPart); 252 paintTrackPiece(context, scrollbar, rect, ForwardTrackPart);
253 } 253 }
254 254
255 void ScrollbarThemeAura::paintTrackPiece(GraphicsContext& gc, const ScrollbarThe meClient& scrollbar, const IntRect& rect, ScrollbarPart partType) 255 void ScrollbarThemeAura::paintTrackPiece(GraphicsContext& gc, const Scrollbar& s crollbar, const IntRect& rect, ScrollbarPart partType)
256 { 256 {
257 DisplayItem::Type displayItemType = trackPiecePartToDisplayItemType(partType ); 257 DisplayItem::Type displayItemType = trackPiecePartToDisplayItemType(partType );
258 if (DrawingRecorder::useCachedDrawingIfPossible(gc, scrollbar, displayItemTy pe)) 258 if (DrawingRecorder::useCachedDrawingIfPossible(gc, scrollbar, displayItemTy pe))
259 return; 259 return;
260 260
261 DrawingRecorder recorder(gc, scrollbar, displayItemType, rect); 261 DrawingRecorder recorder(gc, scrollbar, displayItemType, rect);
262 262
263 WebThemeEngine::State state = scrollbar.hoveredPart() == partType ? WebTheme Engine::StateHover : WebThemeEngine::StateNormal; 263 WebThemeEngine::State state = scrollbar.hoveredPart() == partType ? WebTheme Engine::StateHover : WebThemeEngine::StateNormal;
264 264
265 if (useMockTheme() && !scrollbar.enabled()) 265 if (useMockTheme() && !scrollbar.enabled())
266 state = WebThemeEngine::StateDisabled; 266 state = WebThemeEngine::StateDisabled;
267 267
268 IntRect alignRect = trackRect(scrollbar, false); 268 IntRect alignRect = trackRect(scrollbar, false);
269 WebThemeEngine::ExtraParams extraParams; 269 WebThemeEngine::ExtraParams extraParams;
270 extraParams.scrollbarTrack.isBack = (partType == BackTrackPart); 270 extraParams.scrollbarTrack.isBack = (partType == BackTrackPart);
271 extraParams.scrollbarTrack.trackX = alignRect.x(); 271 extraParams.scrollbarTrack.trackX = alignRect.x();
272 extraParams.scrollbarTrack.trackY = alignRect.y(); 272 extraParams.scrollbarTrack.trackY = alignRect.y();
273 extraParams.scrollbarTrack.trackWidth = alignRect.width(); 273 extraParams.scrollbarTrack.trackWidth = alignRect.width();
274 extraParams.scrollbarTrack.trackHeight = alignRect.height(); 274 extraParams.scrollbarTrack.trackHeight = alignRect.height();
275 Platform::current()->themeEngine()->paint(gc.canvas(), scrollbar.orientation () == HorizontalScrollbar ? WebThemeEngine::PartScrollbarHorizontalTrack : WebTh emeEngine::PartScrollbarVerticalTrack, state, WebRect(rect), &extraParams); 275 Platform::current()->themeEngine()->paint(gc.canvas(), scrollbar.orientation () == HorizontalScrollbar ? WebThemeEngine::PartScrollbarHorizontalTrack : WebTh emeEngine::PartScrollbarVerticalTrack, state, WebRect(rect), &extraParams);
276 } 276 }
277 277
278 void ScrollbarThemeAura::paintButton(GraphicsContext& gc, const ScrollbarThemeCl ient& scrollbar, const IntRect& rect, ScrollbarPart part) 278 void ScrollbarThemeAura::paintButton(GraphicsContext& gc, const Scrollbar& scrol lbar, const IntRect& rect, ScrollbarPart part)
279 { 279 {
280 DisplayItem::Type displayItemType = buttonPartToDisplayItemType(part); 280 DisplayItem::Type displayItemType = buttonPartToDisplayItemType(part);
281 if (DrawingRecorder::useCachedDrawingIfPossible(gc, scrollbar, displayItemTy pe)) 281 if (DrawingRecorder::useCachedDrawingIfPossible(gc, scrollbar, displayItemTy pe))
282 return; 282 return;
283 PartPaintingParams params = buttonPartPaintingParams(scrollbar, scrollbar.cu rrentPos(), part); 283 PartPaintingParams params = buttonPartPaintingParams(scrollbar, scrollbar.cu rrentPos(), part);
284 if (!params.shouldPaint) 284 if (!params.shouldPaint)
285 return; 285 return;
286 DrawingRecorder recorder(gc, scrollbar, displayItemType, rect); 286 DrawingRecorder recorder(gc, scrollbar, displayItemType, rect);
287 Platform::current()->themeEngine()->paint(gc.canvas(), params.part, params.s tate, WebRect(rect), 0); 287 Platform::current()->themeEngine()->paint(gc.canvas(), params.part, params.s tate, WebRect(rect), 0);
288 } 288 }
289 289
290 void ScrollbarThemeAura::paintThumb(GraphicsContext& gc, const ScrollbarThemeCli ent& scrollbar, const IntRect& rect) 290 void ScrollbarThemeAura::paintThumb(GraphicsContext& gc, const Scrollbar& scroll bar, const IntRect& rect)
291 { 291 {
292 if (DrawingRecorder::useCachedDrawingIfPossible(gc, scrollbar, DisplayItem:: ScrollbarThumb)) 292 if (DrawingRecorder::useCachedDrawingIfPossible(gc, scrollbar, DisplayItem:: ScrollbarThumb))
293 return; 293 return;
294 294
295 DrawingRecorder recorder(gc, scrollbar, DisplayItem::ScrollbarThumb, rect); 295 DrawingRecorder recorder(gc, scrollbar, DisplayItem::ScrollbarThumb, rect);
296 296
297 WebThemeEngine::State state; 297 WebThemeEngine::State state;
298 WebCanvas* canvas = gc.canvas(); 298 WebCanvas* canvas = gc.canvas();
299 if (scrollbar.pressedPart() == ThumbPart) 299 if (scrollbar.pressedPart() == ThumbPart)
300 state = WebThemeEngine::StatePressed; 300 state = WebThemeEngine::StatePressed;
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
341 int squareSize = scrollbar.width(); 341 int squareSize = scrollbar.width();
342 return IntSize(squareSize, scrollbar.height() < 2 * squareSize ? scrollb ar.height() / 2 : squareSize); 342 return IntSize(squareSize, scrollbar.height() < 2 * squareSize ? scrollb ar.height() / 2 : squareSize);
343 } 343 }
344 344
345 // HorizontalScrollbar 345 // HorizontalScrollbar
346 int squareSize = scrollbar.height(); 346 int squareSize = scrollbar.height();
347 return IntSize(scrollbar.width() < 2 * squareSize ? scrollbar.width() / 2 : squareSize, squareSize); 347 return IntSize(scrollbar.width() < 2 * squareSize ? scrollbar.width() / 2 : squareSize, squareSize);
348 } 348 }
349 349
350 } // namespace blink 350 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698