#ifndef RangeInputType_h
#define RangeInputType_h
#include "InputType.h"
namespace WebCore {
class SliderThumbElement;
class RangeInputType : public InputType {
public:
static PassOwnPtr<InputType> create(HTMLInputElement*);
private:
RangeInputType(HTMLInputElement*);
virtual void attach() OVERRIDE;
virtual bool isRangeControl() const OVERRIDE;
virtual const AtomicString& formControlType() const OVERRIDE;
virtual double valueAsDouble() const OVERRIDE;
virtual void setValueAsDecimal(const Decimal&, TextFieldEventBehavior, ExceptionCode&) 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;
#if ENABLE(TOUCH_EVENTS)
#if ENABLE(TOUCH_SLIDER)
virtual void handleTouchEvent(TouchEvent*) OVERRIDE;
virtual bool hasTouchEventHandler() const OVERRIDE;
#endif
#endif
virtual void handleKeydownEvent(KeyboardEvent*) OVERRIDE;
virtual RenderObject* createRenderer(RenderArena*, 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 minOrMaxAttributeChanged() 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;
virtual HTMLElement* sliderThumbElement() const OVERRIDE;
virtual HTMLElement* sliderTrackElement() const OVERRIDE;
#if ENABLE(DATALIST_ELEMENT)
virtual void listAttributeTargetChanged() OVERRIDE;
void updateTickMarkValues();
virtual Decimal findClosestTickMarkValue(const Decimal&) OVERRIDE;
bool m_tickMarkValuesDirty;
Vector<Decimal> m_tickMarkValues;
#endif
};
}
#endif // RangeInputType_h