BaseDateAndTimeInputType.h [plain text]
#pragma once
#if ENABLE(DATE_AND_TIME_INPUT_TYPES)
#include "DateComponents.h"
#include "InputType.h"
namespace WebCore {
class BaseDateAndTimeInputType : public InputType {
protected:
BaseDateAndTimeInputType(HTMLInputElement& element) : InputType(element) { }
Decimal parseToNumber(const String&, const Decimal&) const override;
bool parseToDateComponents(const String&, DateComponents*) const override;
String sanitizeValue(const String&) const override;
String serialize(const Decimal&) const override;
String serializeWithComponents(const DateComponents&) const;
virtual bool setMillisecondToDateComponents(double, DateComponents*) const = 0;
String visibleValue() const override;
#if PLATFORM(IOS)
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
double valueAsDate() const override;
ExceptionOr<void> setValueAsDate(double) const override;
double valueAsDouble() const override;
ExceptionOr<void> setValueAsDecimal(const Decimal&, TextFieldEventBehavior) const override;
bool typeMismatchFor(const String&) const override;
bool typeMismatch() const override;
bool valueMissing(const String&) const override;
Decimal defaultValueForStepUp() const override;
void minOrMaxAttributeChanged() override;
bool isSteppable() const override;
virtual String serializeWithMilliseconds(double) const;
String localizeValue(const String&) const override;
bool supportsReadOnly() const override;
bool shouldRespectListAttribute() override;
};
}
#endif