OLD | NEW |
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 296 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
307 } | 307 } |
308 | 308 |
309 bool ScrollbarThemeAura::shouldRepaintAllPartsOnInvalidation() const { | 309 bool ScrollbarThemeAura::shouldRepaintAllPartsOnInvalidation() const { |
310 // This theme can separately handle thumb invalidation. | 310 // This theme can separately handle thumb invalidation. |
311 return false; | 311 return false; |
312 } | 312 } |
313 | 313 |
314 ScrollbarPart ScrollbarThemeAura::invalidateOnThumbPositionChange( | 314 ScrollbarPart ScrollbarThemeAura::invalidateOnThumbPositionChange( |
315 const ScrollbarThemeClient& scrollbar, | 315 const ScrollbarThemeClient& scrollbar, |
316 float oldPosition, | 316 float oldPosition, |
317 float newPosition) const { | 317 float newPosition, |
| 318 bool hitBeginOrEndChanged) const { |
318 ScrollbarPart invalidParts = NoPart; | 319 ScrollbarPart invalidParts = NoPart; |
319 ASSERT(buttonsPlacement() == WebScrollbarButtonsPlacementSingle); | 320 ASSERT(buttonsPlacement() == WebScrollbarButtonsPlacementSingle); |
320 static const ScrollbarPart kButtonParts[] = {BackButtonStartPart, | 321 static const ScrollbarPart kButtonParts[] = {BackButtonStartPart, |
321 ForwardButtonEndPart}; | 322 ForwardButtonEndPart}; |
322 for (ScrollbarPart part : kButtonParts) { | 323 for (ScrollbarPart part : kButtonParts) { |
323 if (buttonPartPaintingParams(scrollbar, oldPosition, part) != | 324 if (buttonPartPaintingParams(scrollbar, oldPosition, part) != |
324 buttonPartPaintingParams(scrollbar, newPosition, part)) | 325 buttonPartPaintingParams(scrollbar, newPosition, part)) |
325 invalidParts = static_cast<ScrollbarPart>(invalidParts | part); | 326 invalidParts = static_cast<ScrollbarPart>(invalidParts | part); |
326 } | 327 } |
327 return invalidParts; | 328 return invalidParts; |
328 } | 329 } |
329 | 330 |
330 bool ScrollbarThemeAura::hasScrollbarButtons( | 331 bool ScrollbarThemeAura::hasScrollbarButtons( |
331 ScrollbarOrientation orientation) const { | 332 ScrollbarOrientation orientation) const { |
332 WebThemeEngine* themeEngine = Platform::current()->themeEngine(); | 333 WebThemeEngine* themeEngine = Platform::current()->themeEngine(); |
333 if (orientation == VerticalScrollbar) { | 334 if (orientation == VerticalScrollbar) { |
334 return !themeEngine->getSize(WebThemeEngine::PartScrollbarDownArrow) | 335 return !themeEngine->getSize(WebThemeEngine::PartScrollbarDownArrow) |
335 .isEmpty(); | 336 .isEmpty(); |
336 } | 337 } |
337 return !themeEngine->getSize(WebThemeEngine::PartScrollbarLeftArrow) | 338 return !themeEngine->getSize(WebThemeEngine::PartScrollbarLeftArrow) |
338 .isEmpty(); | 339 .isEmpty(); |
339 }; | 340 } |
340 | 341 |
341 IntSize ScrollbarThemeAura::buttonSize(const ScrollbarThemeClient& scrollbar) { | 342 IntSize ScrollbarThemeAura::buttonSize(const ScrollbarThemeClient& scrollbar) { |
342 if (!hasScrollbarButtons(scrollbar.orientation())) | 343 if (!hasScrollbarButtons(scrollbar.orientation())) |
343 return IntSize(0, 0); | 344 return IntSize(0, 0); |
344 | 345 |
345 if (scrollbar.orientation() == VerticalScrollbar) { | 346 if (scrollbar.orientation() == VerticalScrollbar) { |
346 int squareSize = scrollbar.width(); | 347 int squareSize = scrollbar.width(); |
347 return IntSize(squareSize, scrollbar.height() < 2 * squareSize | 348 return IntSize(squareSize, scrollbar.height() < 2 * squareSize |
348 ? scrollbar.height() / 2 | 349 ? scrollbar.height() / 2 |
349 : squareSize); | 350 : squareSize); |
350 } | 351 } |
351 | 352 |
352 // HorizontalScrollbar | 353 // HorizontalScrollbar |
353 int squareSize = scrollbar.height(); | 354 int squareSize = scrollbar.height(); |
354 return IntSize( | 355 return IntSize( |
355 scrollbar.width() < 2 * squareSize ? scrollbar.width() / 2 : squareSize, | 356 scrollbar.width() < 2 * squareSize ? scrollbar.width() / 2 : squareSize, |
356 squareSize); | 357 squareSize); |
357 } | 358 } |
358 | 359 |
359 } // namespace blink | 360 } // namespace blink |
OLD | NEW |