diff options
Diffstat (limited to 'WebCore/html/DateTimeLocalInputType.cpp')
-rw-r--r-- | WebCore/html/DateTimeLocalInputType.cpp | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/WebCore/html/DateTimeLocalInputType.cpp b/WebCore/html/DateTimeLocalInputType.cpp index 33c6cfa..1ec2a47 100644 --- a/WebCore/html/DateTimeLocalInputType.cpp +++ b/WebCore/html/DateTimeLocalInputType.cpp @@ -31,10 +31,18 @@ #include "config.h" #include "DateTimeLocalInputType.h" +#include "DateComponents.h" +#include "HTMLInputElement.h" +#include "HTMLNames.h" #include <wtf/PassOwnPtr.h> namespace WebCore { +using namespace HTMLNames; + +static const double dateTimeLocalDefaultStep = 60.0; +static const double dateTimeLocalStepScaleFactor = 1000.0; + PassOwnPtr<InputType> DateTimeLocalInputType::create(HTMLInputElement* element) { return adoptPtr(new DateTimeLocalInputType(element)); @@ -45,4 +53,54 @@ const AtomicString& DateTimeLocalInputType::formControlType() const return InputTypeNames::datetimelocal(); } +double DateTimeLocalInputType::valueAsDate() const +{ + // valueAsDate doesn't work for the datetime-local type according to the standard. + return DateComponents::invalidMilliseconds(); +} + +void DateTimeLocalInputType::setValueAsDate(double value, ExceptionCode& ec) const +{ + // valueAsDate doesn't work for the datetime-local type according to the standard. + InputType::setValueAsDate(value, ec); +} + +double DateTimeLocalInputType::minimum() const +{ + return parseToDouble(element()->fastGetAttribute(minAttr), DateComponents::minimumDateTime()); +} + +double DateTimeLocalInputType::maximum() const +{ + return parseToDouble(element()->fastGetAttribute(maxAttr), DateComponents::maximumDateTime()); +} + +double DateTimeLocalInputType::defaultStep() const +{ + return dateTimeLocalDefaultStep; +} + +double DateTimeLocalInputType::stepScaleFactor() const +{ + return dateTimeLocalStepScaleFactor; +} + +bool DateTimeLocalInputType::scaledStepValeuShouldBeInteger() const +{ + return true; +} + +bool DateTimeLocalInputType::parseToDateComponentsInternal(const UChar* characters, unsigned length, DateComponents* out) const +{ + ASSERT(out); + unsigned end; + return out->parseDateTimeLocal(characters, length, 0, end) && end == length; +} + +bool DateTimeLocalInputType::setMillisecondToDateComponents(double value, DateComponents* date) const +{ + ASSERT(date); + return date->setMillisecondsSinceEpochForDateTimeLocal(value); +} + } // namespace WebCore |