-
eric@webkit.org authored
Reviewed by David Levin. Media controls panel does not have a volume control slider https://bugs.webkit.org/show_bug.cgi?id=28241 Introduced "-webkit-media-controls-volume-slider", "-webkit-media-controls-volume-slider-container" and the supporting implementation. Also added appearances of "media-volume-slider" and "media-volume-slider-container". The implementation of the controls are in WebCore::MediaControlElements. Logic to trigger the display of the volume controls are in WebCore::RenderMedia. No new tests since this change doesn't have theme implementation and the volume slider is disabled by default. * accessibility/AccessibilitySlider.cpp: (WebCore::AccessibilitySlider::orientation): Marks that volume slider is vertical. * css/CSSPrimitiveValueMappings.h: (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Added corresponding CSS values. * css/CSSSelector.cpp: (WebCore::CSSSelector::extractPseudoType): ditto. * css/CSSSelector.h: (WebCore::CSSSelector::): ditto. * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector): ditto. * css/CSSValueKeywords.in: ditto. * css/mediaControls.css: Makes the volume slider disabled by default. * platform/ThemeTypes.h: Defines theme parts for volume slider and its container. (WebCore::): * rendering/MediaControlElements.cpp: (WebCore::MediaControlVolumeSliderContainerElement::MediaControlVolumeSliderContainerElement): (WebCore::MediaControlVolumeSliderContainerElement::styleForElement): Adjust the CSS values for "display", "postion", "left" and "top" according to member variables. (WebCore::MediaControlVolumeSliderContainerElement::setVisible): Affects the "display" CSS value. (WebCore::MediaControlVolumeSliderContainerElement::setPosition): Affects the "left" and "top" CSS values. (WebCore::MediaControlVolumeSliderContainerElement::hitTest): Hit testing this element. (WebCore::MediaControlVolumeSliderElement::MediaControlVolumeSliderElement): (WebCore::MediaControlVolumeSliderElement::defaultEventHandler): Modifies the volume using the slider value, allows dragging. * rendering/MediaControlElements.h: (WebCore::): Added definition for MediaControlVolumeSliderElement and MediaControlVolumeSliderContainerElement. (WebCore::MediaControlVolumeSliderContainerElement::isVisible): Inline getter. * rendering/RenderMedia.cpp: (WebCore::RenderMedia::styleDidChange): Updates styles for volume container and volume slider. (WebCore::RenderMedia::createVolumeSliderContainer): Creates volume slider container and attach to panel. (WebCore::RenderMedia::createVolumeSlider): Creates volume slider and attach to volume slider container. (WebCore::RenderMedia::updateControls): Updates volume container and volume slider. (WebCore::RenderMedia::updateVolumeSliderContainer): Sets the visibility and position of volume slider container and its child. (WebCore::RenderMedia::forwardEvent): Hit testing the volume slider container and volume slider to toggle the visibility and forward events to slider. * rendering/RenderMedia.h: Added definition for RenderMedia::updateVolumeSliderContainer(). * rendering/RenderMediaControls.cpp: (WebCore::RenderMediaControls::paintMediaControlsPart): Not implemented. * rendering/RenderSlider.cpp: (WebCore::RenderSlider::createThumbStyle): Makes volume slider vertical. (WebCore::RenderSlider::thumbRect): ditto. (WebCore::RenderSlider::mouseEventIsInThumb): ditto. (WebCore::RenderSlider::setValueForPosition): ditto. (WebCore::RenderSlider::positionForOffset): ditto. (WebCore::RenderSlider::currentPosition): ditto. (WebCore::RenderSlider::trackSize): ditto. * rendering/RenderTheme.cpp: (WebCore::RenderTheme::adjustStyle): Adjust style for volume slider thumb. (WebCore::RenderTheme::paint): Paints volume control parts using theme. * rendering/RenderTheme.h: (WebCore::RenderTheme::paintMediaVolumeSliderContainer): Naive implementation to be overridden. (WebCore::RenderTheme::paintMediaVolumeSliderTrack): ditto. (WebCore::RenderTheme::paintMediaVolumeSliderThumb): ditto. * rendering/style/RenderStyleConstants.h: (WebCore::): Constants for volume control parts. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@47744 268f45cc-cd09-0410-ab3c-d52691b4dbfc
1c2f02d1