| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2009 Apple Inc. | 2 * Copyright (C) 2009 Apple Inc. |
| 3 * Copyright (C) 2009 Google Inc. | 3 * Copyright (C) 2009 Google Inc. |
| 4 * All rights reserved. | 4 * All rights reserved. |
| 5 * | 5 * |
| 6 * Redistribution and use in source and binary forms, with or without | 6 * Redistribution and use in source and binary forms, with or without |
| 7 * modification, are permitted provided that the following conditions | 7 * modification, are permitted provided that the following conditions |
| 8 * are met: | 8 * are met: |
| 9 * 1. Redistributions of source code must retain the above copyright | 9 * 1. Redistributions of source code must retain the above copyright |
| 10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 82 // Return currentName or newName based on current or new playback. | 82 // Return currentName or newName based on current or new playback. |
| 83 return platformResource(RuntimeEnabledFeatures::newMediaPlaybackUiEnabled()
? newName : currentName); | 83 return platformResource(RuntimeEnabledFeatures::newMediaPlaybackUiEnabled()
? newName : currentName); |
| 84 } | 84 } |
| 85 | 85 |
| 86 static bool hasSource(const HTMLMediaElement* mediaElement) | 86 static bool hasSource(const HTMLMediaElement* mediaElement) |
| 87 { | 87 { |
| 88 return mediaElement->networkState() != HTMLMediaElement::NETWORK_EMPTY | 88 return mediaElement->networkState() != HTMLMediaElement::NETWORK_EMPTY |
| 89 && mediaElement->networkState() != HTMLMediaElement::NETWORK_NO_SOURCE; | 89 && mediaElement->networkState() != HTMLMediaElement::NETWORK_NO_SOURCE; |
| 90 } | 90 } |
| 91 | 91 |
| 92 static bool paintMediaButton(GraphicsContext* context, const IntRect& rect, Imag
e* image, bool isEnabled = true) | 92 static bool paintMediaButton(GraphicsContext& context, const IntRect& rect, Imag
e* image, bool isEnabled = true) |
| 93 { | 93 { |
| 94 if (!RuntimeEnabledFeatures::newMediaPlaybackUiEnabled()) | 94 if (!RuntimeEnabledFeatures::newMediaPlaybackUiEnabled()) |
| 95 isEnabled = true; // New UI only. | 95 isEnabled = true; // New UI only. |
| 96 | 96 |
| 97 if (!isEnabled) | 97 if (!isEnabled) |
| 98 context->beginLayer(kDisabledAlpha); | 98 context.beginLayer(kDisabledAlpha); |
| 99 | 99 |
| 100 context->drawImage(image, rect); | 100 context.drawImage(image, rect); |
| 101 | 101 |
| 102 if (!isEnabled) | 102 if (!isEnabled) |
| 103 context->endLayer(); | 103 context.endLayer(); |
| 104 | 104 |
| 105 return true; | 105 return true; |
| 106 } | 106 } |
| 107 | 107 |
| 108 bool MediaControlsPainter::paintMediaMuteButton(const LayoutObject& object, cons
t PaintInfo& paintInfo, const IntRect& rect) | 108 bool MediaControlsPainter::paintMediaMuteButton(const LayoutObject& object, cons
t PaintInfo& paintInfo, const IntRect& rect) |
| 109 { | 109 { |
| 110 const HTMLMediaElement* mediaElement = toParentMediaElement(object); | 110 const HTMLMediaElement* mediaElement = toParentMediaElement(object); |
| 111 if (!mediaElement) | 111 if (!mediaElement) |
| 112 return false; | 112 return false; |
| 113 | 113 |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 187 return paintMediaButton(paintInfo.context, buttonRect, mediaOverlayPlay); | 187 return paintMediaButton(paintInfo.context, buttonRect, mediaOverlayPlay); |
| 188 } | 188 } |
| 189 | 189 |
| 190 static Image* getMediaSliderThumb() | 190 static Image* getMediaSliderThumb() |
| 191 { | 191 { |
| 192 static Image* mediaSliderThumb = platformResource("mediaplayerSliderThumb", | 192 static Image* mediaSliderThumb = platformResource("mediaplayerSliderThumb", |
| 193 "mediaplayerSliderThumbNew"); | 193 "mediaplayerSliderThumbNew"); |
| 194 return mediaSliderThumb; | 194 return mediaSliderThumb; |
| 195 } | 195 } |
| 196 | 196 |
| 197 static void paintRoundedSliderBackground(const IntRect& rect, const ComputedStyl
e& style, GraphicsContext* context, Color sliderBackgroundColor ) | 197 static void paintRoundedSliderBackground(const IntRect& rect, const ComputedStyl
e& style, GraphicsContext& context, Color sliderBackgroundColor ) |
| 198 { | 198 { |
| 199 float borderRadius = rect.height() / 2; | 199 float borderRadius = rect.height() / 2; |
| 200 FloatSize radii(borderRadius, borderRadius); | 200 FloatSize radii(borderRadius, borderRadius); |
| 201 | 201 |
| 202 context->fillRoundedRect(FloatRoundedRect(rect, radii, radii, radii, radii),
sliderBackgroundColor); | 202 context.fillRoundedRect(FloatRoundedRect(rect, radii, radii, radii, radii),
sliderBackgroundColor); |
| 203 } | 203 } |
| 204 | 204 |
| 205 static void paintSliderRangeHighlight(const IntRect& rect, const ComputedStyle&
style, GraphicsContext* context, int startPosition, int endPosition, Color start
Color, Color endColor) | 205 static void paintSliderRangeHighlight(const IntRect& rect, const ComputedStyle&
style, GraphicsContext& context, int startPosition, int endPosition, Color start
Color, Color endColor) |
| 206 { | 206 { |
| 207 // Calculate border radius; need to avoid being smaller than half the slider
height | 207 // Calculate border radius; need to avoid being smaller than half the slider
height |
| 208 // because of https://bugs.webkit.org/show_bug.cgi?id=30143. | 208 // because of https://bugs.webkit.org/show_bug.cgi?id=30143. |
| 209 float borderRadius = rect.height() / 2.0f; | 209 float borderRadius = rect.height() / 2.0f; |
| 210 FloatSize radii(borderRadius, borderRadius); | 210 FloatSize radii(borderRadius, borderRadius); |
| 211 | 211 |
| 212 // Calculate highlight rectangle and edge dimensions. | 212 // Calculate highlight rectangle and edge dimensions. |
| 213 int startOffset = startPosition; | 213 int startOffset = startPosition; |
| 214 int endOffset = rect.width() - endPosition; | 214 int endOffset = rect.width() - endPosition; |
| 215 int rangeWidth = endPosition - startPosition; | 215 int rangeWidth = endPosition - startPosition; |
| (...skipping 18 matching lines...) Expand all Loading... |
| 234 | 234 |
| 235 // Calculate white-grey gradient. | 235 // Calculate white-grey gradient. |
| 236 FloatPoint sliderTopLeft = highlightRect.location(); | 236 FloatPoint sliderTopLeft = highlightRect.location(); |
| 237 FloatPoint sliderBottomLeft = sliderTopLeft; | 237 FloatPoint sliderBottomLeft = sliderTopLeft; |
| 238 sliderBottomLeft.move(0, highlightRect.height()); | 238 sliderBottomLeft.move(0, highlightRect.height()); |
| 239 RefPtr<Gradient> gradient = Gradient::create(sliderTopLeft, sliderBottomLeft
); | 239 RefPtr<Gradient> gradient = Gradient::create(sliderTopLeft, sliderBottomLeft
); |
| 240 gradient->addColorStop(0.0, startColor); | 240 gradient->addColorStop(0.0, startColor); |
| 241 gradient->addColorStop(1.0, endColor); | 241 gradient->addColorStop(1.0, endColor); |
| 242 | 242 |
| 243 // Fill highlight rectangle with gradient, potentially rounded if on left or
right edge. | 243 // Fill highlight rectangle with gradient, potentially rounded if on left or
right edge. |
| 244 context->save(); | 244 context.save(); |
| 245 context->setFillGradient(gradient); | 245 context.setFillGradient(gradient); |
| 246 | 246 |
| 247 if (startOffset < borderRadius && endOffset < borderRadius) | 247 if (startOffset < borderRadius && endOffset < borderRadius) |
| 248 context->fillRoundedRect(FloatRoundedRect(highlightRect, radii, radii, r
adii, radii), startColor); | 248 context.fillRoundedRect(FloatRoundedRect(highlightRect, radii, radii, ra
dii, radii), startColor); |
| 249 else if (startOffset < borderRadius) | 249 else if (startOffset < borderRadius) |
| 250 context->fillRoundedRect(FloatRoundedRect(highlightRect, radii, FloatSiz
e(0, 0), radii, FloatSize(0, 0)), startColor); | 250 context.fillRoundedRect(FloatRoundedRect(highlightRect, radii, FloatSize
(0, 0), radii, FloatSize(0, 0)), startColor); |
| 251 else if (endOffset < borderRadius) | 251 else if (endOffset < borderRadius) |
| 252 context->fillRoundedRect(FloatRoundedRect(highlightRect, FloatSize(0, 0)
, radii, FloatSize(0, 0), radii), startColor); | 252 context.fillRoundedRect(FloatRoundedRect(highlightRect, FloatSize(0, 0),
radii, FloatSize(0, 0), radii), startColor); |
| 253 else | 253 else |
| 254 context->fillRect(highlightRect); | 254 context.fillRect(highlightRect); |
| 255 | 255 |
| 256 context->restore(); | 256 context.restore(); |
| 257 } | 257 } |
| 258 | 258 |
| 259 bool MediaControlsPainter::paintMediaSlider(const LayoutObject& object, const Pa
intInfo& paintInfo, const IntRect& rect) | 259 bool MediaControlsPainter::paintMediaSlider(const LayoutObject& object, const Pa
intInfo& paintInfo, const IntRect& rect) |
| 260 { | 260 { |
| 261 const HTMLMediaElement* mediaElement = toParentMediaElement(object); | 261 const HTMLMediaElement* mediaElement = toParentMediaElement(object); |
| 262 if (!mediaElement) | 262 if (!mediaElement) |
| 263 return false; | 263 return false; |
| 264 | 264 |
| 265 GraphicsContext* context = paintInfo.context; | 265 GraphicsContext& context = paintInfo.context; |
| 266 | 266 |
| 267 // Should we paint the slider partially transparent? | 267 // Should we paint the slider partially transparent? |
| 268 bool drawUiGrayed = !hasSource(mediaElement) && RuntimeEnabledFeatures::newM
ediaPlaybackUiEnabled(); | 268 bool drawUiGrayed = !hasSource(mediaElement) && RuntimeEnabledFeatures::newM
ediaPlaybackUiEnabled(); |
| 269 if (drawUiGrayed) | 269 if (drawUiGrayed) |
| 270 context->beginLayer(kDisabledAlpha); | 270 context.beginLayer(kDisabledAlpha); |
| 271 | 271 |
| 272 paintMediaSliderInternal(object, paintInfo, rect); | 272 paintMediaSliderInternal(object, paintInfo, rect); |
| 273 | 273 |
| 274 if (drawUiGrayed) | 274 if (drawUiGrayed) |
| 275 context->endLayer(); | 275 context.endLayer(); |
| 276 | 276 |
| 277 return true; | 277 return true; |
| 278 } | 278 } |
| 279 | 279 |
| 280 void MediaControlsPainter::paintMediaSliderInternal(const LayoutObject& object,
const PaintInfo& paintInfo, const IntRect& rect) | 280 void MediaControlsPainter::paintMediaSliderInternal(const LayoutObject& object,
const PaintInfo& paintInfo, const IntRect& rect) |
| 281 { | 281 { |
| 282 const bool useNewUi = RuntimeEnabledFeatures::newMediaPlaybackUiEnabled(); | 282 const bool useNewUi = RuntimeEnabledFeatures::newMediaPlaybackUiEnabled(); |
| 283 const HTMLMediaElement* mediaElement = toParentMediaElement(object); | 283 const HTMLMediaElement* mediaElement = toParentMediaElement(object); |
| 284 if (!mediaElement) | 284 if (!mediaElement) |
| 285 return; | 285 return; |
| 286 | 286 |
| 287 const ComputedStyle& style = object.styleRef(); | 287 const ComputedStyle& style = object.styleRef(); |
| 288 GraphicsContext* context = paintInfo.context; | 288 GraphicsContext& context = paintInfo.context; |
| 289 | 289 |
| 290 // Paint the slider bar in the "no data buffered" state. | 290 // Paint the slider bar in the "no data buffered" state. |
| 291 Color sliderBackgroundColor; | 291 Color sliderBackgroundColor; |
| 292 if (!useNewUi) | 292 if (!useNewUi) |
| 293 sliderBackgroundColor = Color(11, 11, 11); | 293 sliderBackgroundColor = Color(11, 11, 11); |
| 294 else | 294 else |
| 295 sliderBackgroundColor = Color(0xda, 0xda, 0xda); | 295 sliderBackgroundColor = Color(0xda, 0xda, 0xda); |
| 296 | 296 |
| 297 paintRoundedSliderBackground(rect, style, context, sliderBackgroundColor); | 297 paintRoundedSliderBackground(rect, style, context, sliderBackgroundColor); |
| 298 | 298 |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 397 adjustMediaSliderThumbPaintSize(rect, style, paintRect); | 397 adjustMediaSliderThumbPaintSize(rect, style, paintRect); |
| 398 return paintMediaButton(paintInfo.context, paintRect, mediaSliderThumb); | 398 return paintMediaButton(paintInfo.context, paintRect, mediaSliderThumb); |
| 399 } | 399 } |
| 400 | 400 |
| 401 bool MediaControlsPainter::paintMediaVolumeSlider(const LayoutObject& object, co
nst PaintInfo& paintInfo, const IntRect& rect) | 401 bool MediaControlsPainter::paintMediaVolumeSlider(const LayoutObject& object, co
nst PaintInfo& paintInfo, const IntRect& rect) |
| 402 { | 402 { |
| 403 const HTMLMediaElement* mediaElement = toParentMediaElement(object); | 403 const HTMLMediaElement* mediaElement = toParentMediaElement(object); |
| 404 if (!mediaElement) | 404 if (!mediaElement) |
| 405 return false; | 405 return false; |
| 406 | 406 |
| 407 GraphicsContext* context = paintInfo.context; | 407 GraphicsContext& context = paintInfo.context; |
| 408 const ComputedStyle& style = object.styleRef(); | 408 const ComputedStyle& style = object.styleRef(); |
| 409 | 409 |
| 410 // Paint the slider bar. | 410 // Paint the slider bar. |
| 411 Color sliderBackgroundColor; | 411 Color sliderBackgroundColor; |
| 412 if (!RuntimeEnabledFeatures::newMediaPlaybackUiEnabled()) | 412 if (!RuntimeEnabledFeatures::newMediaPlaybackUiEnabled()) |
| 413 sliderBackgroundColor = Color(11, 11, 11); | 413 sliderBackgroundColor = Color(11, 11, 11); |
| 414 else | 414 else |
| 415 sliderBackgroundColor = Color(0x9f, 0x9f, 0x9f); | 415 sliderBackgroundColor = Color(0x9f, 0x9f, 0x9f); |
| 416 paintRoundedSliderBackground(rect, style, context, sliderBackgroundColor); | 416 paintRoundedSliderBackground(rect, style, context, sliderBackgroundColor); |
| 417 | 417 |
| (...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 570 } | 570 } |
| 571 | 571 |
| 572 float zoomLevel = style.effectiveZoom(); | 572 float zoomLevel = style.effectiveZoom(); |
| 573 if (thumbImage) { | 573 if (thumbImage) { |
| 574 style.setWidth(Length(static_cast<int>(width * zoomLevel), Fixed)); | 574 style.setWidth(Length(static_cast<int>(width * zoomLevel), Fixed)); |
| 575 style.setHeight(Length(static_cast<int>(height * zoomLevel), Fixed)); | 575 style.setHeight(Length(static_cast<int>(height * zoomLevel), Fixed)); |
| 576 } | 576 } |
| 577 } | 577 } |
| 578 | 578 |
| 579 } // namespace blink | 579 } // namespace blink |
| OLD | NEW |