summaryrefslogtreecommitdiffstats
path: root/WebCore/rendering/RenderMediaControls.cpp
diff options
context:
space:
mode:
authorBen Murdoch <benm@google.com>2009-08-11 17:01:47 +0100
committerBen Murdoch <benm@google.com>2009-08-11 18:21:02 +0100
commit0bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5 (patch)
tree2943df35f62d885c89d01063cc528dd73b480fea /WebCore/rendering/RenderMediaControls.cpp
parent7e7a70bfa49a1122b2597a1e6367d89eb4035eca (diff)
downloadexternal_webkit-0bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5.zip
external_webkit-0bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5.tar.gz
external_webkit-0bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5.tar.bz2
Merge in WebKit r47029.
Diffstat (limited to 'WebCore/rendering/RenderMediaControls.cpp')
-rw-r--r--WebCore/rendering/RenderMediaControls.cpp38
1 files changed, 18 insertions, 20 deletions
diff --git a/WebCore/rendering/RenderMediaControls.cpp b/WebCore/rendering/RenderMediaControls.cpp
index f1ff55f..06d901a 100644
--- a/WebCore/rendering/RenderMediaControls.cpp
+++ b/WebCore/rendering/RenderMediaControls.cpp
@@ -51,19 +51,20 @@ SOFT_LINK(SafariTheme, STPaintProgressIndicator, void, APIENTRY, (ProgressIndica
static ThemeControlState determineState(RenderObject* o)
{
ThemeControlState result = 0;
- if (theme()->isActive(o))
+ RenderTheme* theme = o->theme();
+ if (theme->isActive(o))
result |= SafariTheme::ActiveState;
- if (theme()->isEnabled(o) && !theme()->isReadOnlyControl(o))
+ if (theme->isEnabled(o) && !theme->isReadOnlyControl(o))
result |= SafariTheme::EnabledState;
- if (theme()->isPressed(o))
+ if (theme->isPressed(o))
result |= SafariTheme::PressedState;
- if (theme()->isChecked(o))
+ if (theme->isChecked(o))
result |= SafariTheme::CheckedState;
- if (theme()->isIndeterminate(o))
+ if (theme->isIndeterminate(o))
result |= SafariTheme::IndeterminateCheckedState;
- if (theme()->isFocused(o))
+ if (theme->isFocused(o))
result |= SafariTheme::FocusedState;
- if (theme()->isDefault(o))
+ if (theme->isDefault(o))
result |= SafariTheme::DefaultState;
return result;
}
@@ -101,13 +102,17 @@ bool RenderMediaControls::paintMediaControlsPart(MediaControlElementType part, R
break;
case MediaMuteButton:
case MediaUnMuteButton:
- if (HTMLMediaElement* mediaElement = parentMediaElement(o))
- paintThemePart(mediaElement->muted() ? SafariTheme::MediaUnMuteButtonPart : SafariTheme::MediaMuteButtonPart, paintInfo.context->platformContext(), r, NSRegularControlSize, determineState(o));
+ if (MediaControlMuteButtonElement* btn = static_cast<MediaControlMuteButtonElement*>(o->node())) {
+ bool audioEnabled = btn->displayType() == MediaMuteButton;
+ paintThemePart(audioEnabled ? SafariTheme::MediaMuteButtonPart : SafariTheme::MediaUnMuteButtonPart, paintInfo.context->platformContext(), r, NSRegularControlSize, determineState(o));
+ }
break;
case MediaPauseButton:
case MediaPlayButton:
- if (HTMLMediaElement* mediaElement = parentMediaElement(o))
- paintThemePart(mediaElement->canPlay() ? SafariTheme::MediaPlayButtonPart : SafariTheme::MediaPauseButtonPart, paintInfo.context->platformContext(), r, NSRegularControlSize, determineState(o));
+ if (MediaControlPlayButtonElement* btn = static_cast<MediaControlPlayButtonElement*>(o->node())) {
+ bool currentlyPlaying = btn->displayType() == MediaPlayButton;
+ paintThemePart(currentlyPlaying ? SafariTheme::MediaPauseButtonPart : SafariTheme::MediaPlayButtonPart, paintInfo.context->platformContext(), r, NSRegularControlSize, determineState(o));
+ }
break;
case MediaSeekBackButton:
paintThemePart(SafariTheme::MediaSeekBackButtonPart, paintInfo.context->platformContext(), r, NSRegularControlSize, determineState(o));
@@ -116,15 +121,8 @@ bool RenderMediaControls::paintMediaControlsPart(MediaControlElementType part, R
paintThemePart(SafariTheme::MediaSeekForwardButtonPart, paintInfo.context->platformContext(), r, NSRegularControlSize, determineState(o));
break;
case MediaSlider: {
- HTMLMediaElement* mediaElement = parentMediaElement(o);
- if (!mediaElement)
- break;
-
- MediaPlayer* player = mediaElement->player();
- float duration = player ? player->duration() : 0;
- float percentLoaded = duration ? player->maxTimeBuffered() /duration : 0;
-
- STPaintProgressIndicator(SafariTheme::MediaType, paintInfo.context->platformContext(), r, NSRegularControlSize, 0, percentLoaded);
+ if (HTMLMediaElement* mediaElement = parentMediaElement(o))
+ STPaintProgressIndicator(SafariTheme::MediaType, paintInfo.context->platformContext(), r, NSRegularControlSize, 0, mediaElement->percentLoaded());
break;
}
case MediaSliderThumb: