ProgressShadowElement.cpp [plain text]
#include "config.h"
#include "ProgressShadowElement.h"
#include "HTMLNames.h"
#include "HTMLProgressElement.h"
#include "RenderProgress.h"
#include <wtf/IsoMallocInlines.h>
namespace WebCore {
WTF_MAKE_ISO_ALLOCATED_IMPL(ProgressShadowElement);
using namespace HTMLNames;
ProgressShadowElement::ProgressShadowElement(Document& document)
: HTMLDivElement(HTMLNames::divTag, document)
{
}
HTMLProgressElement* ProgressShadowElement::progressElement() const
{
return downcast<HTMLProgressElement>(shadowHost());
}
bool ProgressShadowElement::rendererIsNeeded(const RenderStyle& style)
{
RenderObject* progressRenderer = progressElement()->renderer();
return progressRenderer && !progressRenderer->style().hasAppearance() && HTMLDivElement::rendererIsNeeded(style);
}
ProgressInnerElement::ProgressInnerElement(Document& document)
: ProgressShadowElement(document)
{
}
RenderPtr<RenderElement> ProgressInnerElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderProgress>(*this, WTFMove(style));
}
bool ProgressInnerElement::rendererIsNeeded(const RenderStyle& style)
{
RenderObject* progressRenderer = progressElement()->renderer();
return progressRenderer && !progressRenderer->style().hasAppearance() && HTMLDivElement::rendererIsNeeded(style);
}
ProgressBarElement::ProgressBarElement(Document& document)
: ProgressShadowElement(document)
{
}
ProgressValueElement::ProgressValueElement(Document& document)
: ProgressShadowElement(document)
{
}
void ProgressValueElement::setWidthPercentage(double width)
{
setInlineStyleProperty(CSSPropertyWidth, width, CSSUnitType::CSS_PERCENTAGE);
}
Ref<ProgressInnerElement> ProgressInnerElement::create(Document& document)
{
static MainThreadNeverDestroyed<const AtomString> webkitProgressInnerElementName("-webkit-progress-inner-element", AtomString::ConstructFromLiteral);
Ref<ProgressInnerElement> result = adoptRef(*new ProgressInnerElement(document));
result->setPseudo(webkitProgressInnerElementName);
return result;
}
Ref<ProgressBarElement> ProgressBarElement::create(Document& document)
{
static MainThreadNeverDestroyed<const AtomString> webkitProgressBarName("-webkit-progress-bar", AtomString::ConstructFromLiteral);
Ref<ProgressBarElement> result = adoptRef(*new ProgressBarElement(document));
result->setPseudo(webkitProgressBarName);
return result;
}
Ref<ProgressValueElement> ProgressValueElement::create(Document& document)
{
static MainThreadNeverDestroyed<const AtomString> webkitProgressValueName("-webkit-progress-value", AtomString::ConstructFromLiteral);
Ref<ProgressValueElement> result = adoptRef(*new ProgressValueElement(document));
result->setPseudo(webkitProgressValueName);
return result;
}
}