#ifndef HTMLProgressElement_h
#define HTMLProgressElement_h
#include "core/html/LabelableElement.h"
namespace WebCore {
class ExceptionState;
class ProgressValueElement;
class RenderProgress;
class HTMLProgressElement FINAL : public LabelableElement {
public:
static const double IndeterminatePosition;
static const double InvalidPosition;
static PassRefPtr<HTMLProgressElement> create(Document&);
double value() const;
void setValue(double, ExceptionState&);
double max() const;
void setMax(double, ExceptionState&);
double position() const;
virtual bool canContainRangeEndPoint() const OVERRIDE { return false; }
private:
explicit HTMLProgressElement(Document&);
virtual ~HTMLProgressElement();
virtual bool areAuthorShadowsAllowed() const OVERRIDE { return false; }
virtual bool shouldAppearIndeterminate() const OVERRIDE;
virtual bool supportLabels() const OVERRIDE { return true; }
virtual RenderObject* createRenderer(RenderStyle*) OVERRIDE;
RenderProgress* renderProgress() const;
virtual void parseAttribute(const QualifiedName&, const AtomicString&) OVERRIDE;
virtual void attach(const AttachContext& = AttachContext()) OVERRIDE;
void didElementStateChange();
virtual void didAddUserAgentShadowRoot(ShadowRoot&) OVERRIDE;
bool isDeterminate() const;
ProgressValueElement* m_value;
};
}
#endif