RenderMediaControlElements.cpp [plain text]
#include "config.h"
#if ENABLE(VIDEO)
#include "RenderMediaControlElements.h"
#include "RenderTheme.h"
#include "RenderView.h"
namespace WebCore {
RenderMediaVolumeSliderContainer::RenderMediaVolumeSliderContainer(Element& element, PassRef<RenderStyle> style)
: RenderBlockFlow(element, WTF::move(style))
{
}
void RenderMediaVolumeSliderContainer::layout()
{
RenderBlockFlow::layout();
if (style().display() == NONE || !nextSibling() || !nextSibling()->isBox())
return;
RenderBox* buttonBox = toRenderBox(nextSibling());
int absoluteOffsetTop = buttonBox->localToAbsolute(FloatPoint(0, -size().height())).y();
LayoutStateDisabler layoutStateDisabler(&view());
if (UNLIKELY(absoluteOffsetTop < 0))
setY(buttonBox->offsetTop() + theme().volumeSliderOffsetFromMuteButton(buttonBox, pixelSnappedSize()).y());
}
RenderMediaControlTimelineContainer::RenderMediaControlTimelineContainer(Element& element, PassRef<RenderStyle> style)
: RenderFlexibleBox(element, WTF::move(style))
{
}
static const int minWidthToDisplayTimeDisplays = 45 + 100 + 45;
void RenderMediaControlTimelineContainer::layout()
{
RenderFlexibleBox::layout();
LayoutStateDisabler layoutStateDisabler(&view());
MediaControlTimelineContainerElement* container = static_cast<MediaControlTimelineContainerElement*>(element());
container->setTimeDisplaysHidden(width().toInt() < minWidthToDisplayTimeDisplays);
}
#if ENABLE(VIDEO_TRACK)
RenderTextTrackContainerElement::RenderTextTrackContainerElement(Element& element, PassRef<RenderStyle> style)
: RenderBlockFlow(element, WTF::move(style))
{
}
void RenderTextTrackContainerElement::layout()
{
RenderBlockFlow::layout();
if (style().display() == NONE)
return;
ASSERT(mediaControlElementType(element()) == MediaTextTrackDisplayContainer);
LayoutStateDisabler layoutStateDisabler(&view());
static_cast<MediaControlTextTrackContainerElement*>(element())->updateSizes();
}
#endif // ENABLE(VIDEO_TRACK)
}
#endif // ENABLE(VIDEO)