diff options
Diffstat (limited to 'WebCore/rendering/MediaControlElements.cpp')
-rw-r--r-- | WebCore/rendering/MediaControlElements.cpp | 237 |
1 files changed, 159 insertions, 78 deletions
diff --git a/WebCore/rendering/MediaControlElements.cpp b/WebCore/rendering/MediaControlElements.cpp index 16827f5..3413b02 100644 --- a/WebCore/rendering/MediaControlElements.cpp +++ b/WebCore/rendering/MediaControlElements.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2008, 2009 Apple Inc. All rights reserved. + * Copyright (C) 2008, 2009, 2010 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -62,19 +62,29 @@ static const float cSeekRepeatDelay = 0.1f; static const float cStepTime = 0.07f; static const float cSeekTime = 0.2f; -MediaControlShadowRootElement::MediaControlShadowRootElement(Document* document, HTMLMediaElement* mediaElement) - : HTMLDivElement(divTag, document) +inline MediaControlShadowRootElement::MediaControlShadowRootElement(HTMLMediaElement* mediaElement) + : HTMLDivElement(divTag, mediaElement->document()) , m_mediaElement(mediaElement) { +} + +PassRefPtr<MediaControlShadowRootElement> MediaControlShadowRootElement::create(HTMLMediaElement* mediaElement) +{ + RefPtr<MediaControlShadowRootElement> element = new MediaControlShadowRootElement(mediaElement); + RefPtr<RenderStyle> rootStyle = RenderStyle::create(); rootStyle->inheritFrom(mediaElement->renderer()->style()); rootStyle->setDisplay(BLOCK); rootStyle->setPosition(RelativePosition); - RenderMediaControlShadowRoot* renderer = new (mediaElement->renderer()->renderArena()) RenderMediaControlShadowRoot(this); + + RenderMediaControlShadowRoot* renderer = new (mediaElement->renderer()->renderArena()) RenderMediaControlShadowRoot(element.get()); renderer->setStyle(rootStyle.release()); - setRenderer(renderer); - setAttached(); - setInDocument(); + + element->setRenderer(renderer); + element->setAttached(); + element->setInDocument(); + + return element.release(); } void MediaControlShadowRootElement::updateStyle() @@ -87,8 +97,8 @@ void MediaControlShadowRootElement::updateStyle() // ---------------------------- -MediaControlElement::MediaControlElement(Document* document, PseudoId pseudo, HTMLMediaElement* mediaElement) - : HTMLDivElement(divTag, document) +MediaControlElement::MediaControlElement(HTMLMediaElement* mediaElement, PseudoId pseudo) + : HTMLDivElement(divTag, mediaElement->document()) , m_mediaElement(mediaElement) , m_pseudoStyleId(pseudo) { @@ -118,6 +128,11 @@ MediaControlElement::MediaControlElement(Document* document, PseudoId pseudo, HT } } +PassRefPtr<MediaControlElement> MediaControlElement::create(HTMLMediaElement* mediaElement, PseudoId pseudoStyleId) +{ + return new MediaControlElement(mediaElement, pseudoStyleId); +} + void MediaControlElement::attachToParent(Element* parent) { parent->addChild(this); @@ -200,9 +215,14 @@ void MediaControlElement::updateStyle() // ---------------------------- -MediaControlTimelineContainerElement::MediaControlTimelineContainerElement(Document* document, HTMLMediaElement* element) - : MediaControlElement(document, MEDIA_CONTROLS_TIMELINE_CONTAINER, element) +inline MediaControlTimelineContainerElement::MediaControlTimelineContainerElement(HTMLMediaElement* mediaElement) + : MediaControlElement(mediaElement, MEDIA_CONTROLS_TIMELINE_CONTAINER) +{ +} + +PassRefPtr<MediaControlTimelineContainerElement> MediaControlTimelineContainerElement::create(HTMLMediaElement* mediaElement) { + return new MediaControlTimelineContainerElement(mediaElement); } bool MediaControlTimelineContainerElement::rendererIsNeeded(RenderStyle* style) @@ -213,23 +233,28 @@ bool MediaControlTimelineContainerElement::rendererIsNeeded(RenderStyle* style) // This is for MediaControllerThemeClassic: // If there is no style for MediaControlStatusDisplayElement style, don't hide // the timeline. - if (!m_mediaElement->renderer()->getCachedPseudoStyle(MEDIA_CONTROLS_STATUS_DISPLAY)) + if (!mediaElement()->renderer()->getCachedPseudoStyle(MEDIA_CONTROLS_STATUS_DISPLAY)) return true; - float duration = m_mediaElement->duration(); + float duration = mediaElement()->duration(); return !isnan(duration) && !isinf(duration); } // ---------------------------- -MediaControlVolumeSliderContainerElement::MediaControlVolumeSliderContainerElement(Document* doc, HTMLMediaElement* element) - : MediaControlElement(doc, MEDIA_CONTROLS_VOLUME_SLIDER_CONTAINER, element) +inline MediaControlVolumeSliderContainerElement::MediaControlVolumeSliderContainerElement(HTMLMediaElement* mediaElement) + : MediaControlElement(mediaElement, MEDIA_CONTROLS_VOLUME_SLIDER_CONTAINER) , m_isVisible(false) , m_x(0) , m_y(0) { } +PassRefPtr<MediaControlVolumeSliderContainerElement> MediaControlVolumeSliderContainerElement::create(HTMLMediaElement* mediaElement) +{ + return new MediaControlVolumeSliderContainerElement(mediaElement); +} + PassRefPtr<RenderStyle> MediaControlVolumeSliderContainerElement::styleForElement() { RefPtr<RenderStyle> style = MediaControlElement::styleForElement(); @@ -265,12 +290,17 @@ bool MediaControlVolumeSliderContainerElement::hitTest(const IntPoint& absPoint) // ---------------------------- -MediaControlStatusDisplayElement::MediaControlStatusDisplayElement(Document* document, HTMLMediaElement* element) - : MediaControlElement(document, MEDIA_CONTROLS_STATUS_DISPLAY, element) +inline MediaControlStatusDisplayElement::MediaControlStatusDisplayElement(HTMLMediaElement* mediaElement) + : MediaControlElement(mediaElement, MEDIA_CONTROLS_STATUS_DISPLAY) , m_stateBeingDisplayed(Nothing) { } +PassRefPtr<MediaControlStatusDisplayElement> MediaControlStatusDisplayElement::create(HTMLMediaElement* mediaElement) +{ + return new MediaControlStatusDisplayElement(mediaElement); +} + void MediaControlStatusDisplayElement::update() { MediaControlElement::update(); @@ -278,9 +308,9 @@ void MediaControlStatusDisplayElement::update() // Get the new state that we'll have to display. StateBeingDisplayed newStateToDisplay = Nothing; - if (m_mediaElement->readyState() != HTMLMediaElement::HAVE_ENOUGH_DATA && !m_mediaElement->currentSrc().isEmpty()) + if (mediaElement()->readyState() != HTMLMediaElement::HAVE_ENOUGH_DATA && !mediaElement()->currentSrc().isEmpty()) newStateToDisplay = Loading; - else if (m_mediaElement->movieLoadType() == MediaPlayer::LiveStream) + else if (mediaElement()->movieLoadType() == MediaPlayer::LiveStream) newStateToDisplay = LiveBroadcast; // Propagate only if needed. @@ -306,14 +336,14 @@ bool MediaControlStatusDisplayElement::rendererIsNeeded(RenderStyle* style) { if (!MediaControlElement::rendererIsNeeded(style)) return false; - float duration = m_mediaElement->duration(); + float duration = mediaElement()->duration(); return (isnan(duration) || isinf(duration)); } // ---------------------------- -MediaControlInputElement::MediaControlInputElement(Document* document, PseudoId pseudo, const String& type, HTMLMediaElement* mediaElement) - : HTMLInputElement(inputTag, document) +MediaControlInputElement::MediaControlInputElement(HTMLMediaElement* mediaElement, PseudoId pseudo, const String& type) + : HTMLInputElement(inputTag, mediaElement->document()) , m_mediaElement(mediaElement) , m_pseudoStyleId(pseudo) { @@ -372,7 +402,7 @@ void MediaControlInputElement::update() PassRefPtr<RenderStyle> MediaControlInputElement::styleForElement() { - return m_mediaElement->renderer()->getCachedPseudoStyle(m_pseudoStyleId); + return mediaElement()->renderer()->getCachedPseudoStyle(m_pseudoStyleId); } bool MediaControlInputElement::rendererIsNeeded(RenderStyle* style) @@ -380,7 +410,7 @@ bool MediaControlInputElement::rendererIsNeeded(RenderStyle* style) ASSERT(document()->page()); return HTMLInputElement::rendererIsNeeded(style) && parent() && parent()->renderer() - && (!style->hasAppearance() || document()->page()->theme()->shouldRenderMediaControlPart(style->appearance(), m_mediaElement)); + && (!style->hasAppearance() || document()->page()->theme()->shouldRenderMediaControlPart(style->appearance(), mediaElement())); } void MediaControlInputElement::attach() @@ -392,7 +422,7 @@ void MediaControlInputElement::attach() bool needsRenderer = rendererIsNeeded(style.get()); if (!needsRenderer) return; - RenderObject* renderer = createRenderer(m_mediaElement->renderer()->renderArena(), style.get()); + RenderObject* renderer = createRenderer(mediaElement()->renderer()->renderArena(), style.get()); if (!renderer) return; renderer->setStyle(style.get()); @@ -409,7 +439,7 @@ void MediaControlInputElement::attach() void MediaControlInputElement::updateStyle() { - if (!m_mediaElement || !m_mediaElement->renderer()) + if (!mediaElement() || !mediaElement()->renderer()) return; RefPtr<RenderStyle> style = styleForElement(); @@ -445,15 +475,20 @@ void MediaControlInputElement::setDisplayType(MediaControlElementType displayTyp // ---------------------------- -MediaControlMuteButtonElement::MediaControlMuteButtonElement(Document* document, HTMLMediaElement* element) - : MediaControlInputElement(document, MEDIA_CONTROLS_MUTE_BUTTON, "button", element) +inline MediaControlMuteButtonElement::MediaControlMuteButtonElement(HTMLMediaElement* mediaElement) + : MediaControlInputElement(mediaElement, MEDIA_CONTROLS_MUTE_BUTTON, "button") +{ +} + +PassRefPtr<MediaControlMuteButtonElement> MediaControlMuteButtonElement::create(HTMLMediaElement* mediaElement) { + return new MediaControlMuteButtonElement(mediaElement); } void MediaControlMuteButtonElement::defaultEventHandler(Event* event) { if (event->type() == eventNames().clickEvent) { - m_mediaElement->setMuted(!m_mediaElement->muted()); + mediaElement()->setMuted(!mediaElement()->muted()); event->setDefaultHandled(); } HTMLInputElement::defaultEventHandler(event); @@ -461,20 +496,25 @@ void MediaControlMuteButtonElement::defaultEventHandler(Event* event) void MediaControlMuteButtonElement::updateDisplayType() { - setDisplayType(m_mediaElement->muted() ? MediaUnMuteButton : MediaMuteButton); + setDisplayType(mediaElement()->muted() ? MediaUnMuteButton : MediaMuteButton); } // ---------------------------- -MediaControlPlayButtonElement::MediaControlPlayButtonElement(Document* document, HTMLMediaElement* element) - : MediaControlInputElement(document, MEDIA_CONTROLS_PLAY_BUTTON, "button", element) +inline MediaControlPlayButtonElement::MediaControlPlayButtonElement(HTMLMediaElement* mediaElement) + : MediaControlInputElement(mediaElement, MEDIA_CONTROLS_PLAY_BUTTON, "button") +{ +} + +PassRefPtr<MediaControlPlayButtonElement> MediaControlPlayButtonElement::create(HTMLMediaElement* mediaElement) { + return new MediaControlPlayButtonElement(mediaElement); } void MediaControlPlayButtonElement::defaultEventHandler(Event* event) { if (event->type() == eventNames().clickEvent) { - m_mediaElement->togglePlayState(); + mediaElement()->togglePlayState(); event->setDefaultHandled(); } HTMLInputElement::defaultEventHandler(event); @@ -482,21 +522,29 @@ void MediaControlPlayButtonElement::defaultEventHandler(Event* event) void MediaControlPlayButtonElement::updateDisplayType() { - setDisplayType(m_mediaElement->canPlay() ? MediaPlayButton : MediaPauseButton); + setDisplayType(mediaElement()->canPlay() ? MediaPlayButton : MediaPauseButton); } // ---------------------------- -MediaControlSeekButtonElement::MediaControlSeekButtonElement(Document* document, HTMLMediaElement* element, bool forward) - : MediaControlInputElement(document, forward ? MEDIA_CONTROLS_SEEK_FORWARD_BUTTON : MEDIA_CONTROLS_SEEK_BACK_BUTTON, - "button", element) - , m_forward(forward) +inline MediaControlSeekButtonElement::MediaControlSeekButtonElement(HTMLMediaElement* mediaElement, PseudoId pseudoId) + : MediaControlInputElement(mediaElement, pseudoId, "button") , m_seeking(false) , m_capturing(false) , m_seekTimer(this, &MediaControlSeekButtonElement::seekTimerFired) { } +PassRefPtr<MediaControlSeekButtonElement> MediaControlSeekButtonElement::create(HTMLMediaElement* mediaElement, PseudoId pseudoStyleId) +{ + return new MediaControlSeekButtonElement(mediaElement, pseudoStyleId); +} + +inline bool MediaControlSeekButtonElement::isForwardButton() const +{ + return pseudoStyleId() == MEDIA_CONTROLS_SEEK_FORWARD_BUTTON; +} + void MediaControlSeekButtonElement::defaultEventHandler(Event* event) { if (event->type() == eventNames().mousedownEvent) { @@ -504,7 +552,7 @@ void MediaControlSeekButtonElement::defaultEventHandler(Event* event) m_capturing = true; frame->eventHandler()->setCapturingMouseEventsNode(this); } - m_mediaElement->pause(event->fromUserGesture()); + mediaElement()->pause(event->fromUserGesture()); m_seekTimer.startRepeating(cSeekRepeatDelay); event->setDefaultHandled(); } else if (event->type() == eventNames().mouseupEvent) { @@ -516,8 +564,8 @@ void MediaControlSeekButtonElement::defaultEventHandler(Event* event) ExceptionCode ec; if (m_seeking || m_seekTimer.isActive()) { if (!m_seeking) { - float stepTime = m_forward ? cStepTime : -cStepTime; - m_mediaElement->setCurrentTime(m_mediaElement->currentTime() + stepTime, ec); + float stepTime = isForwardButton() ? cStepTime : -cStepTime; + mediaElement()->setCurrentTime(mediaElement()->currentTime() + stepTime, ec); } m_seekTimer.stop(); m_seeking = false; @@ -531,8 +579,8 @@ void MediaControlSeekButtonElement::seekTimerFired(Timer<MediaControlSeekButtonE { ExceptionCode ec; m_seeking = true; - float seekTime = m_forward ? cSeekTime : -cSeekTime; - m_mediaElement->setCurrentTime(m_mediaElement->currentTime() + seekTime, ec); + float seekTime = isForwardButton() ? cSeekTime : -cSeekTime; + mediaElement()->setCurrentTime(mediaElement()->currentTime() + seekTime, ec); } void MediaControlSeekButtonElement::detach() @@ -544,18 +592,22 @@ void MediaControlSeekButtonElement::detach() MediaControlInputElement::detach(); } - // ---------------------------- -MediaControlRewindButtonElement::MediaControlRewindButtonElement(Document* document, HTMLMediaElement* element) - : MediaControlInputElement(document, MEDIA_CONTROLS_REWIND_BUTTON, "button", element) +inline MediaControlRewindButtonElement::MediaControlRewindButtonElement(HTMLMediaElement* element) + : MediaControlInputElement(element, MEDIA_CONTROLS_REWIND_BUTTON, "button") { } +PassRefPtr<MediaControlRewindButtonElement> MediaControlRewindButtonElement::create(HTMLMediaElement* mediaElement) +{ + return new MediaControlRewindButtonElement(mediaElement); +} + void MediaControlRewindButtonElement::defaultEventHandler(Event* event) { if (event->type() == eventNames().clickEvent) { - m_mediaElement->rewind(30); + mediaElement()->rewind(30); event->setDefaultHandled(); } HTMLInputElement::defaultEventHandler(event); @@ -564,15 +616,20 @@ void MediaControlRewindButtonElement::defaultEventHandler(Event* event) // ---------------------------- -MediaControlReturnToRealtimeButtonElement::MediaControlReturnToRealtimeButtonElement(Document* document, HTMLMediaElement* element) - : MediaControlInputElement(document, MEDIA_CONTROLS_RETURN_TO_REALTIME_BUTTON, "button", element) +inline MediaControlReturnToRealtimeButtonElement::MediaControlReturnToRealtimeButtonElement(HTMLMediaElement* mediaElement) + : MediaControlInputElement(mediaElement, MEDIA_CONTROLS_RETURN_TO_REALTIME_BUTTON, "button") { } +PassRefPtr<MediaControlReturnToRealtimeButtonElement> MediaControlReturnToRealtimeButtonElement::create(HTMLMediaElement* mediaElement) +{ + return new MediaControlReturnToRealtimeButtonElement(mediaElement); +} + void MediaControlReturnToRealtimeButtonElement::defaultEventHandler(Event* event) { if (event->type() == eventNames().clickEvent) { - m_mediaElement->returnToRealtime(); + mediaElement()->returnToRealtime(); event->setDefaultHandled(); } HTMLInputElement::defaultEventHandler(event); @@ -581,16 +638,21 @@ void MediaControlReturnToRealtimeButtonElement::defaultEventHandler(Event* event // ---------------------------- -MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement(Document* doc, HTMLMediaElement* element) - : MediaControlInputElement(doc, MEDIA_CONTROLS_TOGGLE_CLOSED_CAPTIONS_BUTTON, "button", element) +inline MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement(HTMLMediaElement* mediaElement) + : MediaControlInputElement(mediaElement, MEDIA_CONTROLS_TOGGLE_CLOSED_CAPTIONS_BUTTON, "button") { } +PassRefPtr<MediaControlToggleClosedCaptionsButtonElement> MediaControlToggleClosedCaptionsButtonElement::create(HTMLMediaElement* mediaElement) +{ + return new MediaControlToggleClosedCaptionsButtonElement(mediaElement); +} + void MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler(Event* event) { if (event->type() == eventNames().clickEvent) { - m_mediaElement->setClosedCaptionsVisible(!m_mediaElement->closedCaptionsVisible()); - setChecked(m_mediaElement->closedCaptionsVisible()); + mediaElement()->setClosedCaptionsVisible(!mediaElement()->closedCaptionsVisible()); + setChecked(mediaElement()->closedCaptionsVisible()); event->setDefaultHandled(); } HTMLInputElement::defaultEventHandler(event); @@ -598,17 +660,21 @@ void MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler(Event* e void MediaControlToggleClosedCaptionsButtonElement::updateDisplayType() { - setDisplayType(m_mediaElement->closedCaptionsVisible() ? MediaHideClosedCaptionsButton : MediaShowClosedCaptionsButton); + setDisplayType(mediaElement()->closedCaptionsVisible() ? MediaHideClosedCaptionsButton : MediaShowClosedCaptionsButton); } - // ---------------------------- -MediaControlTimelineElement::MediaControlTimelineElement(Document* document, HTMLMediaElement* element) - : MediaControlInputElement(document, MEDIA_CONTROLS_TIMELINE, "range", element) +MediaControlTimelineElement::MediaControlTimelineElement(HTMLMediaElement* mediaElement) + : MediaControlInputElement(mediaElement, MEDIA_CONTROLS_TIMELINE, "range") { } +PassRefPtr<MediaControlTimelineElement> MediaControlTimelineElement::create(HTMLMediaElement* mediaElement) +{ + return new MediaControlTimelineElement(mediaElement); +} + void MediaControlTimelineElement::defaultEventHandler(Event* event) { // Left button is 0. Rejects mouse events not from left button. @@ -619,7 +685,7 @@ void MediaControlTimelineElement::defaultEventHandler(Event* event) return; if (event->type() == eventNames().mousedownEvent) - m_mediaElement->beginScrubbing(); + mediaElement()->beginScrubbing(); MediaControlInputElement::defaultEventHandler(event); @@ -627,34 +693,39 @@ void MediaControlTimelineElement::defaultEventHandler(Event* event) return; float time = narrowPrecisionToFloat(value().toDouble()); - if (time != m_mediaElement->currentTime()) { + if (time != mediaElement()->currentTime()) { ExceptionCode ec; - m_mediaElement->setCurrentTime(time, ec); + mediaElement()->setCurrentTime(time, ec); } RenderSlider* slider = toRenderSlider(renderer()); if (slider && slider->inDragMode()) - toRenderMedia(m_mediaElement->renderer())->updateTimeDisplay(); + toRenderMedia(mediaElement()->renderer())->updateTimeDisplay(); if (event->type() == eventNames().mouseupEvent) - m_mediaElement->endScrubbing(); + mediaElement()->endScrubbing(); } void MediaControlTimelineElement::update(bool updateDuration) { if (updateDuration) { - float dur = m_mediaElement->duration(); - setAttribute(maxAttr, String::number(isfinite(dur) ? dur : 0)); + float duration = mediaElement()->duration(); + setAttribute(maxAttr, String::number(isfinite(duration) ? duration : 0)); } - setValue(String::number(m_mediaElement->currentTime())); + setValue(String::number(mediaElement()->currentTime())); MediaControlInputElement::update(); } // ---------------------------- -MediaControlVolumeSliderElement::MediaControlVolumeSliderElement(Document* document, HTMLMediaElement* element) - : MediaControlInputElement(document, MEDIA_CONTROLS_VOLUME_SLIDER, "range", element) +inline MediaControlVolumeSliderElement::MediaControlVolumeSliderElement(HTMLMediaElement* mediaElement) + : MediaControlInputElement(mediaElement, MEDIA_CONTROLS_VOLUME_SLIDER, "range") +{ +} + +PassRefPtr<MediaControlVolumeSliderElement> MediaControlVolumeSliderElement::create(HTMLMediaElement* mediaElement) { + return new MediaControlVolumeSliderElement(mediaElement); } void MediaControlVolumeSliderElement::defaultEventHandler(Event* event) @@ -672,16 +743,16 @@ void MediaControlVolumeSliderElement::defaultEventHandler(Event* event) return; float volume = narrowPrecisionToFloat(value().toDouble()); - if (volume != m_mediaElement->volume()) { + if (volume != mediaElement()->volume()) { ExceptionCode ec = 0; - m_mediaElement->setVolume(volume, ec); + mediaElement()->setVolume(volume, ec); ASSERT(!ec); } } void MediaControlVolumeSliderElement::update() { - float volume = m_mediaElement->volume(); + float volume = mediaElement()->volume(); if (value().toFloat() != volume) setValue(String::number(volume)); MediaControlInputElement::update(); @@ -689,15 +760,20 @@ void MediaControlVolumeSliderElement::update() // ---------------------------- -MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement(Document* document, HTMLMediaElement* element) - : MediaControlInputElement(document, MEDIA_CONTROLS_FULLSCREEN_BUTTON, "button", element) +inline MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement(HTMLMediaElement* mediaElement) + : MediaControlInputElement(mediaElement, MEDIA_CONTROLS_FULLSCREEN_BUTTON, "button") +{ +} + +PassRefPtr<MediaControlFullscreenButtonElement> MediaControlFullscreenButtonElement::create(HTMLMediaElement* mediaElement) { + return new MediaControlFullscreenButtonElement(mediaElement); } void MediaControlFullscreenButtonElement::defaultEventHandler(Event* event) { if (event->type() == eventNames().clickEvent) { - m_mediaElement->enterFullscreen(); + mediaElement()->enterFullscreen(); event->setDefaultHandled(); } HTMLInputElement::defaultEventHandler(event); @@ -705,13 +781,18 @@ void MediaControlFullscreenButtonElement::defaultEventHandler(Event* event) // ---------------------------- -MediaControlTimeDisplayElement::MediaControlTimeDisplayElement(Document* document, PseudoId pseudo, HTMLMediaElement* element) - : MediaControlElement(document, pseudo, element) +inline MediaControlTimeDisplayElement::MediaControlTimeDisplayElement(HTMLMediaElement* mediaElement, PseudoId pseudo) + : MediaControlElement(mediaElement, pseudo) , m_currentValue(0) , m_isVisible(true) { } +PassRefPtr<MediaControlTimeDisplayElement> MediaControlTimeDisplayElement::create(HTMLMediaElement* mediaElement, PseudoId pseudoStyleId) +{ + return new MediaControlTimeDisplayElement(mediaElement, pseudoStyleId); +} + PassRefPtr<RenderStyle> MediaControlTimeDisplayElement::styleForElement() { RefPtr<RenderStyle> style = MediaControlElement::styleForElement(); @@ -742,6 +823,6 @@ void MediaControlTimeDisplayElement::setCurrentValue(float time) m_currentValue = time; } +} // namespace WebCore -} //namespace WebCore -#endif // enable(video) +#endif // ENABLE(VIDEO) |