BaseDateAndTimeInputType.h [plain text]
#ifndef BaseDateAndTimeInputType_h
#define BaseDateAndTimeInputType_h
#include "DateComponents.h"
#include "TextFieldInputType.h"
#include <wtf/unicode/Unicode.h>
namespace WebCore {
class BaseDateAndTimeInputType : public TextFieldInputType {
protected:
BaseDateAndTimeInputType(HTMLInputElement* element) : TextFieldInputType(element) { }
virtual void handleKeydownEvent(KeyboardEvent*) OVERRIDE;
virtual double parseToDouble(const String&, double) const OVERRIDE;
virtual bool parseToDateComponents(const String&, DateComponents*) const OVERRIDE;
String serializeWithComponents(const DateComponents&) const;
private:
virtual bool parseToDateComponentsInternal(const UChar*, unsigned length, DateComponents*) const = 0;
virtual bool setMillisecondToDateComponents(double, DateComponents*) const = 0;
virtual DateComponents::Type dateType() const = 0;
virtual double valueAsDate() const OVERRIDE;
virtual void setValueAsDate(double, ExceptionCode&) const OVERRIDE;
virtual double valueAsNumber() const OVERRIDE;
virtual void setValueAsNumber(double, TextFieldEventBehavior, ExceptionCode&) const OVERRIDE;
virtual bool typeMismatchFor(const String&) const OVERRIDE;
virtual bool typeMismatch() const OVERRIDE;
virtual bool rangeUnderflow(const String&) const OVERRIDE;
virtual bool rangeOverflow(const String&) const OVERRIDE;
virtual bool supportsRangeLimitation() const OVERRIDE;
virtual double defaultValueForStepUp() const OVERRIDE;
virtual bool isSteppable() const OVERRIDE;
virtual bool stepMismatch(const String&, double) const OVERRIDE;
virtual double stepBase() const OVERRIDE;
virtual void handleWheelEvent(WheelEvent*) OVERRIDE;
virtual String serialize(double) const OVERRIDE;
virtual String serializeWithMilliseconds(double) const;
virtual String visibleValue() const OVERRIDE;
virtual String convertFromVisibleValue(const String&) const OVERRIDE;
virtual String sanitizeValue(const String&) const OVERRIDE;
};
}
#endif // BaseDateAndTimeInputType_h