RenderMediaControlElements.cpp [plain text]
#include "config.h"
#if ENABLE(VIDEO)
#include "RenderMediaControlElements.h"
#include "MediaControlElements.h"
#include "RenderLayoutState.h"
#include "RenderTheme.h"
#include "RenderView.h"
#include <wtf/IsoMallocInlines.h>
namespace WebCore {
WTF_MAKE_ISO_ALLOCATED_IMPL(RenderMediaVolumeSliderContainer);
WTF_MAKE_ISO_ALLOCATED_IMPL(RenderMediaControlTimelineContainer);
#if ENABLE(VIDEO_TRACK)
WTF_MAKE_ISO_ALLOCATED_IMPL(RenderMediaControlTextTrackContainer);
#endif
RenderMediaVolumeSliderContainer::RenderMediaVolumeSliderContainer(Element& element, RenderStyle&& style)
: RenderBlockFlow(element, WTFMove(style))
{
}
void RenderMediaVolumeSliderContainer::layout()
{
RenderBlockFlow::layout();
if (style().display() == DisplayType::None || !is<RenderBox>(nextSibling()))
return;
RenderBox& buttonBox = downcast<RenderBox>(*nextSibling());
int absoluteOffsetTop = buttonBox.localToAbsolute(FloatPoint(0, -size().height())).y();
LayoutStateDisabler layoutStateDisabler(view().frameView().layoutContext());
if (UNLIKELY(absoluteOffsetTop < 0))
setY(buttonBox.offsetTop() + theme().volumeSliderOffsetFromMuteButton(buttonBox, size()).y());
}
RenderMediaControlTimelineContainer::RenderMediaControlTimelineContainer(Element& element, RenderStyle&& style)
: RenderFlexibleBox(element, WTFMove(style))
{
}
static const int minWidthToDisplayTimeDisplays = 45 + 100 + 45;
void RenderMediaControlTimelineContainer::layout()
{
RenderFlexibleBox::layout();
LayoutStateDisabler layoutStateDisabler(view().frameView().layoutContext());
MediaControlTimelineContainerElement* container = static_cast<MediaControlTimelineContainerElement*>(element());
container->setTimeDisplaysHidden(width().toInt() < minWidthToDisplayTimeDisplays);
}
#if ENABLE(VIDEO_TRACK)
RenderMediaControlTextTrackContainer::RenderMediaControlTextTrackContainer(Element& element, RenderStyle&& style)
: RenderBlockFlow(element, WTFMove(style))
{
}
void RenderMediaControlTextTrackContainer::layout()
{
RenderBlockFlow::layout();
if (style().display() == DisplayType::None)
return;
ASSERT(mediaControlElementType(element()) == MediaTextTrackDisplayContainer);
LayoutStateDisabler layoutStateDisabler(view().frameView().layoutContext());
}
#endif // ENABLE(VIDEO_TRACK)
}
#endif // ENABLE(VIDEO)