diff options
author | Ben Murdoch <benm@google.com> | 2009-08-11 17:01:47 +0100 |
---|---|---|
committer | Ben Murdoch <benm@google.com> | 2009-08-11 18:21:02 +0100 |
commit | 0bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5 (patch) | |
tree | 2943df35f62d885c89d01063cc528dd73b480fea /WebCore/rendering/RenderMediaControls.cpp | |
parent | 7e7a70bfa49a1122b2597a1e6367d89eb4035eca (diff) | |
download | external_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.cpp | 38 |
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: |