Changeset 44738 in webkit
- Timestamp:
- Jun 16, 2009 2:08:19 PM (15 years ago)
- Location:
- trunk/WebCore
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog
r44737 r44738 1 2009-06-16 Eric Carlson <eric.carlson@apple.com> 2 3 Reviewed by Simon Fraser. 4 5 Fix for <rdar://problem/6890126> Theme code should fetch the MediaControlElementType from 6 the MediaControlInputElement, rather than computing it again 7 8 * html/HTMLMediaElement.cpp: 9 (WebCore::HTMLMediaElement::percentLoaded): New, utility function for controller implementation. 10 * html/HTMLMediaElement.h: 11 12 * rendering/MediaControlElements.h: 13 (WebCore::MediaControlInputElement::displayType): New, return m_displayType. 14 15 * rendering/RenderMediaControls.cpp: 16 (WebCore::RenderMediaControls::paintMediaControlsPart): Stop using MediaPlayer object, get button 17 state from the button itself and get movie state from HTMLMediaElement. 18 19 * rendering/RenderThemeMac.mm: 20 (WebCore::RenderThemeMac::paintMediaMuteButton): Get state from button instead of MediaPlayer. 21 (WebCore::RenderThemeMac::paintMediaPlayButton): Ditto. 22 1 23 2009-06-16 Jian Li <jianli@chromium.org> 2 24 -
trunk/WebCore/html/HTMLMediaElement.cpp
r44415 r44738 1131 1131 } 1132 1132 1133 float HTMLMediaElement::percentLoaded() const 1134 { 1135 if (!m_player) 1136 return 0; 1137 float duration = m_player->duration(); 1138 return duration ? m_player->maxTimeBuffered() / duration : 0; 1139 } 1140 1133 1141 bool HTMLMediaElement::havePotentialSourceChild() 1134 1142 { -
trunk/WebCore/html/HTMLMediaElement.h
r43715 r44738 132 132 bool canPlay() const; 133 133 134 float percentLoaded() const; 135 134 136 #if ENABLE(PLUGIN_PROXY_FOR_VIDEO) 135 137 void setNeedWidgetUpdate(bool needWidgetUpdate) { m_needWidgetUpdate = needWidgetUpdate; } -
trunk/WebCore/rendering/MediaControlElements.h
r43747 r44738 94 94 void updateStyle(); 95 95 bool hitTest(const IntPoint& absPoint); 96 MediaControlElementType displayType() const { return m_displayType; } 96 97 97 98 protected: -
trunk/WebCore/rendering/RenderMediaControls.cpp
r44432 r44738 102 102 case MediaMuteButton: 103 103 case MediaUnMuteButton: 104 if (HTMLMediaElement* mediaElement = parentMediaElement(o)) 105 paintThemePart(mediaElement->muted() ? SafariTheme::MediaUnMuteButtonPart : SafariTheme::MediaMuteButtonPart, paintInfo.context->platformContext(), r, NSRegularControlSize, determineState(o)); 104 if (MediaControlMuteButtonElement* btn = static_cast<MediaControlMuteButtonElement*>(o->node())) { 105 bool audioEnabled = btn->displayType() == MediaMuteButton; 106 paintThemePart(audioEnabled ? SafariTheme::MediaMuteButtonPart : SafariTheme::MediaUnMuteButtonPart, paintInfo.context->platformContext(), r, NSRegularControlSize, determineState(o)); 107 } 106 108 break; 107 109 case MediaPauseButton: 108 110 case MediaPlayButton: 109 if (HTMLMediaElement* mediaElement = parentMediaElement(o)) 110 paintThemePart(mediaElement->canPlay() ? SafariTheme::MediaPlayButtonPart : SafariTheme::MediaPauseButtonPart, paintInfo.context->platformContext(), r, NSRegularControlSize, determineState(o)); 111 if (MediaControlPlayButtonElement* btn = static_cast<MediaControlPlayButtonElement*>(o->node())) { 112 bool currentlyPlaying = btn->displayType() == MediaPlayButton; 113 paintThemePart(currentlyPlaying ? SafariTheme::MediaPauseButtonPart : SafariTheme::MediaPlayButtonPart, paintInfo.context->platformContext(), r, NSRegularControlSize, determineState(o)); 114 } 111 115 break; 112 116 case MediaSeekBackButton: … … 117 121 break; 118 122 case MediaSlider: { 119 HTMLMediaElement* mediaElement = parentMediaElement(o); 120 if (!mediaElement) 121 break; 122 123 MediaPlayer* player = mediaElement->player(); 124 float duration = player ? player->duration() : 0; 125 float percentLoaded = duration ? player->maxTimeBuffered() /duration : 0; 126 127 STPaintProgressIndicator(SafariTheme::MediaType, paintInfo.context->platformContext(), r, NSRegularControlSize, 0, percentLoaded); 123 if (HTMLMediaElement* mediaElement = parentMediaElement(o)) 124 STPaintProgressIndicator(SafariTheme::MediaType, paintInfo.context->platformContext(), r, NSRegularControlSize, 0, mediaElement->percentLoaded()); 128 125 break; 129 126 } -
trunk/WebCore/rendering/RenderThemeMac.mm
r43367 r44738 1479 1479 return false; 1480 1480 1481 HTMLMediaElement* mediaElement = static_cast<HTMLMediaElement*>(mediaNode); 1482 if (!mediaElement) 1483 return false; 1484 1485 LocalCurrentGraphicsContext localContext(paintInfo.context); 1486 wkDrawMediaUIPart(mediaElement->muted() ? MediaUnMuteButton : MediaMuteButton, mediaControllerTheme(), paintInfo.context->platformContext(), r, node->active()); 1481 if (MediaControlPlayButtonElement* btn = static_cast<MediaControlPlayButtonElement*>(node)) { 1482 LocalCurrentGraphicsContext localContext(paintInfo.context); 1483 wkDrawMediaUIPart(btn->displayType(), mediaControllerTheme(), paintInfo.context->platformContext(), r, node->active()); 1484 } 1487 1485 return false; 1488 1486 } … … 1495 1493 return false; 1496 1494 1497 HTMLMediaElement* mediaElement = static_cast<HTMLMediaElement*>(mediaNode); 1498 if (!mediaElement) 1499 return false; 1500 1501 LocalCurrentGraphicsContext localContext(paintInfo.context); 1502 wkDrawMediaUIPart(mediaElement->canPlay() ? MediaPlayButton : MediaPauseButton, mediaControllerTheme(), paintInfo.context->platformContext(), r, node->active()); 1495 if (MediaControlPlayButtonElement* btn = static_cast<MediaControlPlayButtonElement*>(node)) { 1496 LocalCurrentGraphicsContext localContext(paintInfo.context); 1497 wkDrawMediaUIPart(btn->displayType(), mediaControllerTheme(), paintInfo.context->platformContext(), r, node->active()); 1498 } 1503 1499 return false; 1504 1500 }
Note: See TracChangeset
for help on using the changeset viewer.