#ifndef HTMLMeterElement_h
#define HTMLMeterElement_h
#include "core/html/LabelableElement.h"
namespace WebCore {
class ExceptionState;
class MeterValueElement;
class RenderMeter;
class HTMLMeterElement FINAL : public LabelableElement {
public:
static PassRefPtr<HTMLMeterElement> create(Document&);
enum GaugeRegion {
GaugeRegionOptimum,
GaugeRegionSuboptimal,
GaugeRegionEvenLessGood
};
double min() const;
void setMin(double, ExceptionState&);
double max() const;
void setMax(double, ExceptionState&);
double value() const;
void setValue(double, ExceptionState&);
double low() const;
void setLow(double, ExceptionState&);
double high() const;
void setHigh(double, ExceptionState&);
double optimum() const;
void setOptimum(double, ExceptionState&);
double valueRatio() const;
GaugeRegion gaugeRegion() const;
virtual bool canContainRangeEndPoint() const OVERRIDE { return false; }
private:
explicit HTMLMeterElement(Document&);
virtual ~HTMLMeterElement();
virtual bool areAuthorShadowsAllowed() const OVERRIDE { return false; }
RenderMeter* renderMeter() const;
virtual bool supportLabels() const OVERRIDE { return true; }
virtual RenderObject* createRenderer(RenderStyle*) OVERRIDE;
virtual void parseAttribute(const QualifiedName&, const AtomicString&) OVERRIDE;
void didElementStateChange();
virtual void didAddUserAgentShadowRoot(ShadowRoot&) OVERRIDE;
RefPtr<MeterValueElement> m_value;
};
}
#endif