diff options
Diffstat (limited to 'WebCore/html/InputType.cpp')
-rw-r--r-- | WebCore/html/InputType.cpp | 124 |
1 files changed, 124 insertions, 0 deletions
diff --git a/WebCore/html/InputType.cpp b/WebCore/html/InputType.cpp index c3435f7..1b2303a 100644 --- a/WebCore/html/InputType.cpp +++ b/WebCore/html/InputType.cpp @@ -30,6 +30,7 @@ #include "ButtonInputType.h" #include "CheckboxInputType.h" #include "ColorInputType.h" +#include "DateComponents.h" #include "DateInputType.h" #include "DateTimeInputType.h" #include "DateTimeLocalInputType.h" @@ -53,11 +54,15 @@ #include "TimeInputType.h" #include "URLInputType.h" #include "WeekInputType.h" +#include <limits> +#include <wtf/Assertions.h> #include <wtf/HashMap.h> #include <wtf/text/StringHash.h> namespace WebCore { +using namespace std; + typedef HashMap<String, PassOwnPtr<InputType> (*)(HTMLInputElement*), CaseFoldingHash> InputTypeFactoryMap; static PassOwnPtr<InputTypeFactoryMap> createInputTypeFactoryMap() { @@ -117,11 +122,130 @@ bool InputType::isTextType() const return false; } +double InputType::valueAsDate() const +{ + return DateComponents::invalidMilliseconds(); +} + +void InputType::setValueAsDate(double, ExceptionCode& ec) const +{ + ec = INVALID_STATE_ERR; +} + +double InputType::valueAsNumber() const +{ + return numeric_limits<double>::quiet_NaN(); +} + +void InputType::setValueAsNumber(double, ExceptionCode& ec) const +{ + ec = INVALID_STATE_ERR; +} + +bool InputType::supportsValidation() const +{ + return true; +} + +bool InputType::typeMismatchFor(const String&) const +{ + return false; +} + +bool InputType::typeMismatch() const +{ + return false; +} + +bool InputType::supportsRequired() const +{ + // Almost all validatable types support @required. + return supportsValidation(); +} + +bool InputType::valueMissing(const String&) const +{ + return false; +} + bool InputType::patternMismatch(const String&) const { return false; } +bool InputType::rangeUnderflow(const String&) const +{ + return false; +} + +bool InputType::rangeOverflow(const String&) const +{ + return false; +} + +double InputType::minimum() const +{ + ASSERT_NOT_REACHED(); + return 0; +} + +double InputType::maximum() const +{ + ASSERT_NOT_REACHED(); + return 0; +} + +bool InputType::stepMismatch(const String&, double) const +{ + // Non-supported types should be rejected by HTMLInputElement::getAllowedValueStep(). + ASSERT_NOT_REACHED(); + return false; +} + +double InputType::stepBase() const +{ + ASSERT_NOT_REACHED(); + return 0; +} + +double InputType::defaultStep() const +{ + return numeric_limits<double>::quiet_NaN(); +} + +double InputType::stepScaleFactor() const +{ + return numeric_limits<double>::quiet_NaN(); +} + +bool InputType::parsedStepValueShouldBeInteger() const +{ + return false; +} + +bool InputType::scaledStepValeuShouldBeInteger() const +{ + return false; +} + +double InputType::parseToDouble(const String&, double defaultValue) const +{ + return defaultValue; +} + +bool InputType::parseToDateComponents(const String&, DateComponents*) const +{ + ASSERT_NOT_REACHED(); + return false; +} + +String InputType::serialize(double) const +{ + ASSERT_NOT_REACHED(); + return String(); +} + + namespace InputTypeNames { // The type names must be lowercased because they will be the return values of |