BaseDateAndTimeInputType.h [plain text]
#ifndef BaseDateAndTimeInputType_h
#define BaseDateAndTimeInputType_h
#if ENABLE(DATE_AND_TIME_INPUT_TYPES)
#include "DateComponents.h"
#include "InputType.h"
#include <wtf/unicode/Unicode.h>
namespace WebCore {
class BaseDateAndTimeInputType : public InputType {
protected:
BaseDateAndTimeInputType(HTMLInputElement* element) : InputType(element) { }
virtual Decimal parseToNumber(const String&, const Decimal&) const OVERRIDE;
virtual bool parseToDateComponents(const String&, DateComponents*) const OVERRIDE;
virtual String sanitizeValue(const String&) const OVERRIDE;
virtual String serialize(const Decimal&) const OVERRIDE;
String serializeWithComponents(const DateComponents&) const;
virtual bool setMillisecondToDateComponents(double, DateComponents*) const = 0;
virtual String visibleValue() const OVERRIDE;
#if PLATFORM(IOS)
virtual bool isKeyboardFocusable(KeyboardEvent*) const OVERRIDE;
#endif
private:
virtual bool parseToDateComponentsInternal(const UChar*, unsigned length, DateComponents*) const = 0;
#if !PLATFORM(IOS)
virtual DateComponents::Type dateType() const = 0;
#endif
virtual double valueAsDate() const OVERRIDE;
virtual void setValueAsDate(double, ExceptionCode&) 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 typeMismatch() const OVERRIDE;
virtual bool valueMissing(const String&) const OVERRIDE;
virtual Decimal defaultValueForStepUp() const OVERRIDE;
virtual bool isSteppable() const OVERRIDE;
virtual String serializeWithMilliseconds(double) const;
virtual String localizeValue(const String&) const OVERRIDE;
virtual bool supportsReadOnly() const OVERRIDE;
virtual bool shouldRespectListAttribute() OVERRIDE;
};
} #endif
#endif // BaseDateAndTimeInputType_h