1926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)/*
2926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * Copyright (C) 2008, 2009, 2010, 2011 Apple Inc. All rights reserved.
3926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * Copyright (C) 2012 Google Inc. All rights reserved.
4926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) *
5926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * Redistribution and use in source and binary forms, with or without
6926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * modification, are permitted provided that the following conditions
7926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * are met:
8926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) *
9926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * 1.  Redistributions of source code must retain the above copyright
10926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) *     notice, this list of conditions and the following disclaimer.
11926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * 2.  Redistributions in binary form must reproduce the above copyright
12926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) *     notice, this list of conditions and the following disclaimer in the
13926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) *     documentation and/or other materials provided with the distribution.
14926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
15926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) *     its contributors may be used to endorse or promote products derived
16926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) *     from this software without specific prior written permission.
17926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) *
18926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
19926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
22926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
24926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
25926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) */
29926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
30926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)#include "config.h"
31926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
3253e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#include "core/html/shadow/MediaControlElementTypes.h"
33926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
34926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)#include "CSSValueKeywords.h"
35926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)#include "HTMLNames.h"
36df95704c49daea886ddad70775bda23618d6274dBen Murdoch#include "bindings/v8/ExceptionStatePlaceholder.h"
3753e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#include "core/css/StylePropertySet.h"
3806f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)#include "core/events/MouseEvent.h"
39926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
40926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)namespace WebCore {
41926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
42926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)using namespace HTMLNames;
43926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
44926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)class Event;
45926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
46926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)HTMLMediaElement* toParentMediaElement(Node* node)
47926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles){
48926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    if (!node)
49926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)        return 0;
50926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    Node* mediaNode = node->shadowHost();
51926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    if (!mediaNode)
52926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)        mediaNode = node;
53926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    if (!mediaNode || !mediaNode->isElementNode() || !toElement(mediaNode)->isMediaElement())
54926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)        return 0;
55926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
56e1f1df5f01594c0e62e751e4b46e779b85c2faa5Torne (Richard Coles)    return toHTMLMediaElement(mediaNode);
57926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)}
58926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
59926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)MediaControlElementType mediaControlElementType(Node* node)
60926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles){
61926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    ASSERT_WITH_SECURITY_IMPLICATION(node->isMediaControlElement());
62926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    HTMLElement* element = toHTMLElement(node);
63926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    if (element->hasTagName(inputTag))
64926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)        return static_cast<MediaControlInputElement*>(element)->displayType();
65926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    return static_cast<MediaControlDivElement*>(element)->displayType();
66926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)}
67926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
68926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)MediaControlElement::MediaControlElement(MediaControlElementType displayType, HTMLElement* element)
69926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    : m_mediaController(0)
70926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    , m_displayType(displayType)
71926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    , m_element(element)
72926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles){
73926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)}
74926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
75926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)void MediaControlElement::hide()
76926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles){
77926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    m_element->setInlineStyleProperty(CSSPropertyDisplay, CSSValueNone);
78926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)}
79926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
80926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)void MediaControlElement::show()
81926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles){
82926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    m_element->removeInlineStyleProperty(CSSPropertyDisplay);
83926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)}
84926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
85926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)bool MediaControlElement::isShowing() const
86926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles){
87926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    const StylePropertySet* propertySet = m_element->inlineStyle();
88926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    // Following the code from show() and hide() above, we only have
89926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    // to check for the presense of inline display.
90926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    return (!propertySet || !propertySet->getPropertyCSSValue(CSSPropertyDisplay));
91926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)}
92926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
93926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)void MediaControlElement::setDisplayType(MediaControlElementType displayType)
94926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles){
95926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    if (displayType == m_displayType)
96926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)        return;
97926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
98926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    m_displayType = displayType;
99926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    if (RenderObject* object = m_element->renderer())
100926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)        object->repaint();
101926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)}
102926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
103926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)// ----------------------------
104926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
1058abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles)MediaControlDivElement::MediaControlDivElement(Document& document, MediaControlElementType displayType)
10651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    : HTMLDivElement(document)
107926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    , MediaControlElement(displayType, this)
108926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles){
109926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)}
110926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
111926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)// ----------------------------
112926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
1138abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles)MediaControlInputElement::MediaControlInputElement(Document& document, MediaControlElementType displayType)
11451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    : HTMLInputElement(document, 0, false)
115926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    , MediaControlElement(displayType, this)
116926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles){
117926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)}
118926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
11983750176c3ee2cea66c8a9751271026a5901be3aBen Murdochbool MediaControlInputElement::isMouseFocusable() const
12083750176c3ee2cea66c8a9751271026a5901be3aBen Murdoch{
12183750176c3ee2cea66c8a9751271026a5901be3aBen Murdoch    return false;
12283750176c3ee2cea66c8a9751271026a5901be3aBen Murdoch}
12383750176c3ee2cea66c8a9751271026a5901be3aBen Murdoch
124926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)// ----------------------------
125926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
1268abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles)MediaControlTimeDisplayElement::MediaControlTimeDisplayElement(Document& document, MediaControlElementType displayType)
127926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    : MediaControlDivElement(document, displayType)
128926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    , m_currentValue(0)
129926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles){
130926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)}
131926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
13253e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)void MediaControlTimeDisplayElement::setCurrentValue(double time)
133926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles){
134926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    m_currentValue = time;
135926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)}
136926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
137926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)// ----------------------------
138926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
1398abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles)MediaControlMuteButtonElement::MediaControlMuteButtonElement(Document& document, MediaControlElementType displayType)
140926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    : MediaControlInputElement(document, displayType)
141926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles){
142926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)}
143926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
144926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)void MediaControlMuteButtonElement::defaultEventHandler(Event* event)
145926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles){
1461e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    if (event->type() == EventTypeNames::click) {
147926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)        mediaController()->setMuted(!mediaController()->muted());
148926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)        event->setDefaultHandled();
149926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    }
150926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
151926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    HTMLInputElement::defaultEventHandler(event);
152926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)}
153926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
154926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)void MediaControlMuteButtonElement::changedMute()
155926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles){
156926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    updateDisplayType();
157926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)}
158926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
159926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)void MediaControlMuteButtonElement::updateDisplayType()
160926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles){
161926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    setDisplayType(mediaController()->muted() ? MediaUnMuteButton : MediaMuteButton);
162926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)}
163926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
164926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)// ----------------------------
165926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
1668abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles)MediaControlVolumeSliderElement::MediaControlVolumeSliderElement(Document& document)
167926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    : MediaControlInputElement(document, MediaVolumeSlider)
168926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    , m_clearMutedOnUserInteraction(false)
169926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles){
170926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)}
171926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
172926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)void MediaControlVolumeSliderElement::defaultEventHandler(Event* event)
173926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles){
174926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    // Left button is 0. Rejects mouse events not from left button.
175591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch    if (event->isMouseEvent() && toMouseEvent(event)->button())
176926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)        return;
177926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
1781e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    if (!inDocument() || !document().isActive())
179926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)        return;
180926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
181926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    MediaControlInputElement::defaultEventHandler(event);
182926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
1831e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    if (event->type() == EventTypeNames::mouseover || event->type() == EventTypeNames::mouseout || event->type() == EventTypeNames::mousemove)
184926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)        return;
185926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
18653e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)    double volume = value().toDouble();
187926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    if (volume != mediaController()->volume())
1881fad5ca6c42d689812b66fc493992aa6d747a6fbBen Murdoch        mediaController()->setVolume(volume, ASSERT_NO_EXCEPTION);
189926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    if (m_clearMutedOnUserInteraction)
190926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)        mediaController()->setMuted(false);
191926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)}
192926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
193926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)bool MediaControlVolumeSliderElement::willRespondToMouseMoveEvents()
194926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles){
1951e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    if (!inDocument() || !document().isActive())
196926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)        return false;
197926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
198926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    return MediaControlInputElement::willRespondToMouseMoveEvents();
199926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)}
200926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
201926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)bool MediaControlVolumeSliderElement::willRespondToMouseClickEvents()
202926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles){
2031e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    if (!inDocument() || !document().isActive())
204926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)        return false;
205926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
206926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    return MediaControlInputElement::willRespondToMouseClickEvents();
207926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)}
208926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
20953e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)void MediaControlVolumeSliderElement::setVolume(double volume)
210926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles){
21153e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)    if (value().toDouble() != volume)
212926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)        setValue(String::number(volume));
213926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)}
214926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
215926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)void MediaControlVolumeSliderElement::setClearMutedOnUserInteraction(bool clearMute)
216926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles){
217926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    m_clearMutedOnUserInteraction = clearMute;
218926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)}
219926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
220926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)} // namespace WebCore
221