HTMLProgressElement.h [plain text]
#ifndef HTMLProgressElement_h
#define HTMLProgressElement_h
#include "LabelableElement.h"
namespace WebCore {
class ProgressValueElement;
class RenderProgress;
class HTMLProgressElement final : public LabelableElement {
public:
static const double IndeterminatePosition;
static const double InvalidPosition;
static PassRefPtr<HTMLProgressElement> create(const QualifiedName&, Document&);
double value() const;
void setValue(double, ExceptionCode&);
double max() const;
void setMax(double, ExceptionCode&);
double position() const;
virtual bool canContainRangeEndPoint() const override { return false; }
private:
HTMLProgressElement(const QualifiedName&, Document&);
virtual ~HTMLProgressElement();
virtual bool shouldAppearIndeterminate() const override;
virtual bool supportLabels() const override { return true; }
virtual RenderPtr<RenderElement> createElementRenderer(PassRef<RenderStyle>) override;
virtual bool childShouldCreateRenderer(const Node&) const override;
RenderProgress* renderProgress() const;
virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
virtual void didAttachRenderers() override;
void didElementStateChange();
virtual void didAddUserAgentShadowRoot(ShadowRoot*) override;
bool isDeterminate() const;
ProgressValueElement* m_value;
};
NODE_TYPE_CASTS(HTMLProgressElement)
}
#endif