#ifndef RangeInputType_h
#define RangeInputType_h
#include "core/html/forms/InputType.h"
namespace WebCore {
class ExceptionState;
class SliderThumbElement;
class RangeInputType FINAL : public InputType {
public:
static PassRefPtr<InputType> create(HTMLInputElement&);
private:
RangeInputType(HTMLInputElement&);
virtual void countUsage() OVERRIDE;
virtual bool isRangeControl() const OVERRIDE;
virtual const AtomicString& formControlType() const OVERRIDE;
virtual double valueAsDouble() const OVERRIDE;
virtual void setValueAsDouble(double, TextFieldEventBehavior, ExceptionState&) const OVERRIDE;
virtual bool typeMismatchFor(const String&) const OVERRIDE;
virtual bool supportsRequired() const OVERRIDE;
virtual StepRange createStepRange(AnyStepHandling) const OVERRIDE;
virtual bool isSteppable() const OVERRIDE;
virtual void handleMouseDownEvent(MouseEvent*) OVERRIDE;
virtual void handleTouchEvent(TouchEvent*) OVERRIDE;
virtual bool hasTouchEventHandler() const OVERRIDE;
virtual void handleKeydownEvent(KeyboardEvent*) OVERRIDE;
virtual RenderObject* createRenderer(RenderStyle*) const OVERRIDE;
virtual void createShadowSubtree() OVERRIDE;
virtual Decimal parseToNumber(const String&, const Decimal&) const OVERRIDE;
virtual String serialize(const Decimal&) const OVERRIDE;
virtual void accessKeyAction(bool sendMouseEvents) OVERRIDE;
virtual void sanitizeValueInResponseToMinOrMaxAttributeChange() OVERRIDE;
virtual void setValue(const String&, bool valueChanged, TextFieldEventBehavior) OVERRIDE;
virtual String fallbackValue() const OVERRIDE;
virtual String sanitizeValue(const String& proposedValue) const OVERRIDE;
virtual bool shouldRespectListAttribute() OVERRIDE;
SliderThumbElement* sliderThumbElement() const;
Element* sliderTrackElement() const;
virtual void disabledAttributeChanged() OVERRIDE;
virtual void listAttributeTargetChanged() OVERRIDE;
void updateTickMarkValues();
virtual Decimal findClosestTickMarkValue(const Decimal&) OVERRIDE;
bool m_tickMarkValuesDirty;
Vector<Decimal> m_tickMarkValues;
};
}
#endif