| 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 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 58 return mediaElement->networkState() != HTMLMediaElement::NETWORK_EMPTY | 58 return mediaElement->networkState() != HTMLMediaElement::NETWORK_EMPTY |
| 59 && mediaElement->networkState() != HTMLMediaElement::NETWORK_NO_SOURCE; | 59 && mediaElement->networkState() != HTMLMediaElement::NETWORK_NO_SOURCE; |
| 60 } | 60 } |
| 61 | 61 |
| 62 static bool paintMediaButton(GraphicsContext* context, const IntRect& rect, Imag
e* image) | 62 static bool paintMediaButton(GraphicsContext* context, const IntRect& rect, Imag
e* image) |
| 63 { | 63 { |
| 64 context->drawImage(image, rect); | 64 context->drawImage(image, rect); |
| 65 return true; | 65 return true; |
| 66 } | 66 } |
| 67 | 67 |
| 68 static bool paintMediaMuteButton(RenderObject* object, const PaintInfo& paintInf
o, const IntRect& rect) | 68 static bool paintMediaMuteButton(RenderObject* object, PaintInfo& paintInfo, con
st IntRect& rect) |
| 69 { | 69 { |
| 70 HTMLMediaElement* mediaElement = toParentMediaElement(object); | 70 HTMLMediaElement* mediaElement = toParentMediaElement(object); |
| 71 if (!mediaElement) | 71 if (!mediaElement) |
| 72 return false; | 72 return false; |
| 73 | 73 |
| 74 static Image* soundLevel3 = platformResource("mediaplayerSoundLevel3"); | 74 static Image* soundLevel3 = platformResource("mediaplayerSoundLevel3"); |
| 75 static Image* soundLevel2 = platformResource("mediaplayerSoundLevel2"); | 75 static Image* soundLevel2 = platformResource("mediaplayerSoundLevel2"); |
| 76 static Image* soundLevel1 = platformResource("mediaplayerSoundLevel1"); | 76 static Image* soundLevel1 = platformResource("mediaplayerSoundLevel1"); |
| 77 static Image* soundLevel0 = platformResource("mediaplayerSoundLevel0"); | 77 static Image* soundLevel0 = platformResource("mediaplayerSoundLevel0"); |
| 78 static Image* soundDisabled = platformResource("mediaplayerSoundDisabled"); | 78 static Image* soundDisabled = platformResource("mediaplayerSoundDisabled"); |
| 79 | 79 |
| 80 if (!hasSource(mediaElement) || !mediaElement->hasAudio()) | 80 if (!hasSource(mediaElement) || !mediaElement->hasAudio()) |
| 81 return paintMediaButton(paintInfo.context, rect, soundDisabled); | 81 return paintMediaButton(paintInfo.getContext(), rect, soundDisabled); |
| 82 | 82 |
| 83 if (mediaElement->muted() || mediaElement->volume() <= 0) | 83 if (mediaElement->muted() || mediaElement->volume() <= 0) |
| 84 return paintMediaButton(paintInfo.context, rect, soundLevel0); | 84 return paintMediaButton(paintInfo.getContext(), rect, soundLevel0); |
| 85 | 85 |
| 86 if (mediaElement->volume() <= 0.33) | 86 if (mediaElement->volume() <= 0.33) |
| 87 return paintMediaButton(paintInfo.context, rect, soundLevel1); | 87 return paintMediaButton(paintInfo.getContext(), rect, soundLevel1); |
| 88 | 88 |
| 89 if (mediaElement->volume() <= 0.66) | 89 if (mediaElement->volume() <= 0.66) |
| 90 return paintMediaButton(paintInfo.context, rect, soundLevel2); | 90 return paintMediaButton(paintInfo.getContext(), rect, soundLevel2); |
| 91 | 91 |
| 92 return paintMediaButton(paintInfo.context, rect, soundLevel3); | 92 return paintMediaButton(paintInfo.getContext(), rect, soundLevel3); |
| 93 } | 93 } |
| 94 | 94 |
| 95 static bool paintMediaPlayButton(RenderObject* object, const PaintInfo& paintInf
o, const IntRect& rect) | 95 static bool paintMediaPlayButton(RenderObject* object, PaintInfo& paintInfo, con
st IntRect& rect) |
| 96 { | 96 { |
| 97 HTMLMediaElement* mediaElement = toParentMediaElement(object); | 97 HTMLMediaElement* mediaElement = toParentMediaElement(object); |
| 98 if (!mediaElement) | 98 if (!mediaElement) |
| 99 return false; | 99 return false; |
| 100 | 100 |
| 101 static Image* mediaPlay = platformResource("mediaplayerPlay"); | 101 static Image* mediaPlay = platformResource("mediaplayerPlay"); |
| 102 static Image* mediaPause = platformResource("mediaplayerPause"); | 102 static Image* mediaPause = platformResource("mediaplayerPause"); |
| 103 static Image* mediaPlayDisabled = platformResource("mediaplayerPlayDisabled"
); | 103 static Image* mediaPlayDisabled = platformResource("mediaplayerPlayDisabled"
); |
| 104 | 104 |
| 105 if (!hasSource(mediaElement)) | 105 if (!hasSource(mediaElement)) |
| 106 return paintMediaButton(paintInfo.context, rect, mediaPlayDisabled); | 106 return paintMediaButton(paintInfo.getContext(), rect, mediaPlayDisabled)
; |
| 107 | 107 |
| 108 return paintMediaButton(paintInfo.context, rect, mediaElement->canPlay() ? m
ediaPlay : mediaPause); | 108 return paintMediaButton(paintInfo.getContext(), rect, mediaElement->canPlay(
) ? mediaPlay : mediaPause); |
| 109 } | 109 } |
| 110 | 110 |
| 111 static bool paintMediaOverlayPlayButton(RenderObject* object, const PaintInfo& p
aintInfo, const IntRect& rect) | 111 static bool paintMediaOverlayPlayButton(RenderObject* object, PaintInfo& paintIn
fo, const IntRect& rect) |
| 112 { | 112 { |
| 113 HTMLMediaElement* mediaElement = toParentMediaElement(object); | 113 HTMLMediaElement* mediaElement = toParentMediaElement(object); |
| 114 if (!mediaElement) | 114 if (!mediaElement) |
| 115 return false; | 115 return false; |
| 116 | 116 |
| 117 if (!hasSource(mediaElement) || !mediaElement->canPlay()) | 117 if (!hasSource(mediaElement) || !mediaElement->canPlay()) |
| 118 return false; | 118 return false; |
| 119 | 119 |
| 120 static Image* mediaOverlayPlay = platformResource("mediaplayerOverlayPlay"); | 120 static Image* mediaOverlayPlay = platformResource("mediaplayerOverlayPlay"); |
| 121 return paintMediaButton(paintInfo.context, rect, mediaOverlayPlay); | 121 return paintMediaButton(paintInfo.getContext(), rect, mediaOverlayPlay); |
| 122 } | 122 } |
| 123 | 123 |
| 124 static Image* getMediaSliderThumb() | 124 static Image* getMediaSliderThumb() |
| 125 { | 125 { |
| 126 static Image* mediaSliderThumb = platformResource("mediaplayerSliderThumb"); | 126 static Image* mediaSliderThumb = platformResource("mediaplayerSliderThumb"); |
| 127 return mediaSliderThumb; | 127 return mediaSliderThumb; |
| 128 } | 128 } |
| 129 | 129 |
| 130 static void paintRoundedSliderBackground(const IntRect& rect, const RenderStyle*
style, GraphicsContext* context) | 130 static void paintRoundedSliderBackground(const IntRect& rect, const RenderStyle*
style, GraphicsContext* context) |
| 131 { | 131 { |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 188 else if (endOffset < borderRadius) | 188 else if (endOffset < borderRadius) |
| 189 context->fillRoundedRect(highlightRect, IntSize(0, 0), radii, IntSize(0,
0), radii, startColor); | 189 context->fillRoundedRect(highlightRect, IntSize(0, 0), radii, IntSize(0,
0), radii, startColor); |
| 190 else | 190 else |
| 191 context->fillRect(highlightRect); | 191 context->fillRect(highlightRect); |
| 192 | 192 |
| 193 context->restore(); | 193 context->restore(); |
| 194 } | 194 } |
| 195 | 195 |
| 196 const int mediaSliderThumbWidth = 32; | 196 const int mediaSliderThumbWidth = 32; |
| 197 | 197 |
| 198 static bool paintMediaSlider(RenderObject* object, const PaintInfo& paintInfo, c
onst IntRect& rect) | 198 static bool paintMediaSlider(RenderObject* object, PaintInfo& paintInfo, const I
ntRect& rect) |
| 199 { | 199 { |
| 200 HTMLMediaElement* mediaElement = toParentMediaElement(object); | 200 HTMLMediaElement* mediaElement = toParentMediaElement(object); |
| 201 if (!mediaElement) | 201 if (!mediaElement) |
| 202 return false; | 202 return false; |
| 203 | 203 |
| 204 RenderStyle* style = object->style(); | 204 RenderStyle* style = object->style(); |
| 205 GraphicsContext* context = paintInfo.context; | 205 GraphicsContext* context = paintInfo.getContext(); |
| 206 | 206 |
| 207 paintRoundedSliderBackground(rect, style, context); | 207 paintRoundedSliderBackground(rect, style, context); |
| 208 | 208 |
| 209 // Draw the buffered range. Since the element may have multiple buffered ran
ges and it'd be | 209 // Draw the buffered range. Since the element may have multiple buffered ran
ges and it'd be |
| 210 // distracting/'busy' to show all of them, show only the buffered range cont
aining the current play head. | 210 // distracting/'busy' to show all of them, show only the buffered range cont
aining the current play head. |
| 211 RefPtr<TimeRanges> bufferedTimeRanges = mediaElement->buffered(); | 211 RefPtr<TimeRanges> bufferedTimeRanges = mediaElement->buffered(); |
| 212 float duration = mediaElement->duration(); | 212 float duration = mediaElement->duration(); |
| 213 float currentTime = mediaElement->currentTime(); | 213 float currentTime = mediaElement->currentTime(); |
| 214 if (std::isnan(duration) || std::isinf(duration) || !duration || std::isnan(
currentTime)) | 214 if (std::isnan(duration) || std::isinf(duration) || !duration || std::isnan(
currentTime)) |
| 215 return true; | 215 return true; |
| (...skipping 24 matching lines...) Expand all Loading... |
| 240 | 240 |
| 241 if (endPosition > currentPosition) | 241 if (endPosition > currentPosition) |
| 242 paintSliderRangeHighlight(rect, style, context, currentPosition, end
Position, startColor, endColor); | 242 paintSliderRangeHighlight(rect, style, context, currentPosition, end
Position, startColor, endColor); |
| 243 | 243 |
| 244 return true; | 244 return true; |
| 245 } | 245 } |
| 246 | 246 |
| 247 return true; | 247 return true; |
| 248 } | 248 } |
| 249 | 249 |
| 250 static bool paintMediaSliderThumb(RenderObject* object, const PaintInfo& paintIn
fo, const IntRect& rect) | 250 static bool paintMediaSliderThumb(RenderObject* object, PaintInfo& paintInfo, co
nst IntRect& rect) |
| 251 { | 251 { |
| 252 ASSERT(object->node()); | 252 ASSERT(object->node()); |
| 253 HTMLMediaElement* mediaElement = toParentMediaElement(object->node()->shadow
Host()); | 253 HTMLMediaElement* mediaElement = toParentMediaElement(object->node()->shadow
Host()); |
| 254 if (!mediaElement) | 254 if (!mediaElement) |
| 255 return false; | 255 return false; |
| 256 | 256 |
| 257 if (!hasSource(mediaElement)) | 257 if (!hasSource(mediaElement)) |
| 258 return true; | 258 return true; |
| 259 | 259 |
| 260 Image* mediaSliderThumb = getMediaSliderThumb(); | 260 Image* mediaSliderThumb = getMediaSliderThumb(); |
| 261 return paintMediaButton(paintInfo.context, rect, mediaSliderThumb); | 261 return paintMediaButton(paintInfo.getContext(), rect, mediaSliderThumb); |
| 262 } | 262 } |
| 263 | 263 |
| 264 const int mediaVolumeSliderThumbWidth = 24; | 264 const int mediaVolumeSliderThumbWidth = 24; |
| 265 | 265 |
| 266 static bool paintMediaVolumeSlider(RenderObject* object, const PaintInfo& paintI
nfo, const IntRect& rect) | 266 static bool paintMediaVolumeSlider(RenderObject* object, PaintInfo& paintInfo, c
onst IntRect& rect) |
| 267 { | 267 { |
| 268 HTMLMediaElement* mediaElement = toParentMediaElement(object); | 268 HTMLMediaElement* mediaElement = toParentMediaElement(object); |
| 269 if (!mediaElement) | 269 if (!mediaElement) |
| 270 return false; | 270 return false; |
| 271 | 271 |
| 272 GraphicsContext* context = paintInfo.context; | 272 GraphicsContext* context = paintInfo.getContext(); |
| 273 RenderStyle* style = object->style(); | 273 RenderStyle* style = object->style(); |
| 274 | 274 |
| 275 paintRoundedSliderBackground(rect, style, context); | 275 paintRoundedSliderBackground(rect, style, context); |
| 276 | 276 |
| 277 // Calculate volume position for white background rectangle. | 277 // Calculate volume position for white background rectangle. |
| 278 float volume = mediaElement->volume(); | 278 float volume = mediaElement->volume(); |
| 279 if (std::isnan(volume) || volume < 0) | 279 if (std::isnan(volume) || volume < 0) |
| 280 return true; | 280 return true; |
| 281 if (volume > 1) | 281 if (volume > 1) |
| 282 volume = 1; | 282 volume = 1; |
| (...skipping 10 matching lines...) Expand all Loading... |
| 293 } | 293 } |
| 294 | 294 |
| 295 Color startColor = Color(195, 195, 195); | 295 Color startColor = Color(195, 195, 195); |
| 296 Color endColor = Color(217, 217, 217); | 296 Color endColor = Color(217, 217, 217); |
| 297 | 297 |
| 298 paintSliderRangeHighlight(rect, style, context, 0.0, fillWidth, startColor,
endColor); | 298 paintSliderRangeHighlight(rect, style, context, 0.0, fillWidth, startColor,
endColor); |
| 299 | 299 |
| 300 return true; | 300 return true; |
| 301 } | 301 } |
| 302 | 302 |
| 303 static bool paintMediaVolumeSliderThumb(RenderObject* object, const PaintInfo& p
aintInfo, const IntRect& rect) | 303 static bool paintMediaVolumeSliderThumb(RenderObject* object, PaintInfo& paintIn
fo, const IntRect& rect) |
| 304 { | 304 { |
| 305 ASSERT(object->node()); | 305 ASSERT(object->node()); |
| 306 HTMLMediaElement* mediaElement = toParentMediaElement(object->node()->shadow
Host()); | 306 HTMLMediaElement* mediaElement = toParentMediaElement(object->node()->shadow
Host()); |
| 307 if (!mediaElement) | 307 if (!mediaElement) |
| 308 return false; | 308 return false; |
| 309 | 309 |
| 310 if (!hasSource(mediaElement) || !mediaElement->hasAudio()) | 310 if (!hasSource(mediaElement) || !mediaElement->hasAudio()) |
| 311 return true; | 311 return true; |
| 312 | 312 |
| 313 static Image* mediaVolumeSliderThumb = platformResource("mediaplayerVolumeSl
iderThumb"); | 313 static Image* mediaVolumeSliderThumb = platformResource("mediaplayerVolumeSl
iderThumb"); |
| 314 return paintMediaButton(paintInfo.context, rect, mediaVolumeSliderThumb); | 314 return paintMediaButton(paintInfo.getContext(), rect, mediaVolumeSliderThumb
); |
| 315 } | 315 } |
| 316 | 316 |
| 317 static bool paintMediaFullscreenButton(RenderObject* object, const PaintInfo& pa
intInfo, const IntRect& rect) | 317 static bool paintMediaFullscreenButton(RenderObject* object, PaintInfo& paintInf
o, const IntRect& rect) |
| 318 { | 318 { |
| 319 HTMLMediaElement* mediaElement = toParentMediaElement(object); | 319 HTMLMediaElement* mediaElement = toParentMediaElement(object); |
| 320 if (!mediaElement) | 320 if (!mediaElement) |
| 321 return false; | 321 return false; |
| 322 | 322 |
| 323 static Image* mediaFullscreenButton = platformResource("mediaplayerFullscree
n"); | 323 static Image* mediaFullscreenButton = platformResource("mediaplayerFullscree
n"); |
| 324 return paintMediaButton(paintInfo.context, rect, mediaFullscreenButton); | 324 return paintMediaButton(paintInfo.getContext(), rect, mediaFullscreenButton)
; |
| 325 } | 325 } |
| 326 | 326 |
| 327 static bool paintMediaToggleClosedCaptionsButton(RenderObject* object, const Pai
ntInfo& paintInfo, const IntRect& rect) | 327 static bool paintMediaToggleClosedCaptionsButton(RenderObject* object, PaintInfo
& paintInfo, const IntRect& rect) |
| 328 { | 328 { |
| 329 HTMLMediaElement* mediaElement = toParentMediaElement(object); | 329 HTMLMediaElement* mediaElement = toParentMediaElement(object); |
| 330 if (!mediaElement) | 330 if (!mediaElement) |
| 331 return false; | 331 return false; |
| 332 | 332 |
| 333 static Image* mediaClosedCaptionButton = platformResource("mediaplayerClosed
Caption"); | 333 static Image* mediaClosedCaptionButton = platformResource("mediaplayerClosed
Caption"); |
| 334 static Image* mediaClosedCaptionButtonDisabled = platformResource("mediaplay
erClosedCaptionDisabled"); | 334 static Image* mediaClosedCaptionButtonDisabled = platformResource("mediaplay
erClosedCaptionDisabled"); |
| 335 | 335 |
| 336 if (mediaElement->webkitClosedCaptionsVisible()) | 336 if (mediaElement->webkitClosedCaptionsVisible()) |
| 337 return paintMediaButton(paintInfo.context, rect, mediaClosedCaptionButto
n); | 337 return paintMediaButton(paintInfo.getContext(), rect, mediaClosedCaption
Button); |
| 338 | 338 |
| 339 return paintMediaButton(paintInfo.context, rect, mediaClosedCaptionButtonDis
abled); | 339 return paintMediaButton(paintInfo.getContext(), rect, mediaClosedCaptionButt
onDisabled); |
| 340 } | 340 } |
| 341 | 341 |
| 342 | 342 |
| 343 bool RenderMediaControlsChromium::paintMediaControlsPart(MediaControlElementType
part, RenderObject* object, const PaintInfo& paintInfo, const IntRect& rect) | 343 bool RenderMediaControlsChromium::paintMediaControlsPart(MediaControlElementType
part, RenderObject* object, PaintInfo& paintInfo, const IntRect& rect) |
| 344 { | 344 { |
| 345 switch (part) { | 345 switch (part) { |
| 346 case MediaMuteButton: | 346 case MediaMuteButton: |
| 347 case MediaUnMuteButton: | 347 case MediaUnMuteButton: |
| 348 return paintMediaMuteButton(object, paintInfo, rect); | 348 return paintMediaMuteButton(object, paintInfo, rect); |
| 349 case MediaPauseButton: | 349 case MediaPauseButton: |
| 350 case MediaPlayButton: | 350 case MediaPlayButton: |
| 351 return paintMediaPlayButton(object, paintInfo, rect); | 351 return paintMediaPlayButton(object, paintInfo, rect); |
| 352 case MediaShowClosedCaptionsButton: | 352 case MediaShowClosedCaptionsButton: |
| 353 return paintMediaToggleClosedCaptionsButton(object, paintInfo, rect); | 353 return paintMediaToggleClosedCaptionsButton(object, paintInfo, rect); |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 442 { | 442 { |
| 443 return formatChromiumMediaControlsTime(time, time); | 443 return formatChromiumMediaControlsTime(time, time); |
| 444 } | 444 } |
| 445 | 445 |
| 446 String RenderMediaControlsChromium::formatMediaControlsCurrentTime(float current
Time, float duration) | 446 String RenderMediaControlsChromium::formatMediaControlsCurrentTime(float current
Time, float duration) |
| 447 { | 447 { |
| 448 return formatChromiumMediaControlsTime(currentTime, duration); | 448 return formatChromiumMediaControlsTime(currentTime, duration); |
| 449 } | 449 } |
| 450 | 450 |
| 451 } // namespace WebCore | 451 } // namespace WebCore |
| OLD | NEW |