summaryrefslogtreecommitdiffstats
path: root/WebCore/html/InputType.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/html/InputType.cpp')
-rw-r--r--WebCore/html/InputType.cpp124
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