RawPtr<DateTimeDayFieldElement> DateTimeDayFieldElement::create(Document& document, FieldOwner& fieldOwner, const String& placeholder, const Range& range) { DEFINE_STATIC_LOCAL(AtomicString, dayPseudoId, ("-webkit-datetime-edit-day-field")); RawPtr<DateTimeDayFieldElement> field = new DateTimeDayFieldElement(document, fieldOwner, placeholder.isEmpty() ? "--" : placeholder, range); field->initialize(dayPseudoId, queryString(WebLocalizedString::AXDayOfMonthFieldText)); return field.release(); }
RawPtr<DateTimeWeekFieldElement> DateTimeWeekFieldElement::create(Document& document, FieldOwner& fieldOwner, const Range& range) { DEFINE_STATIC_LOCAL(AtomicString, weekPseudoId, ("-webkit-datetime-edit-week-field")); RawPtr<DateTimeWeekFieldElement> field = new DateTimeWeekFieldElement(document, fieldOwner, range); field->initialize(weekPseudoId, queryString(WebLocalizedString::AXWeekOfYearFieldText)); return field.release(); }
RawPtr<DateTimeYearFieldElement> DateTimeYearFieldElement::create(Document& document, FieldOwner& fieldOwner, const DateTimeYearFieldElement::Parameters& parameters) { DEFINE_STATIC_LOCAL(AtomicString, yearPseudoId, ("-webkit-datetime-edit-year-field")); RawPtr<DateTimeYearFieldElement> field = new DateTimeYearFieldElement(document, fieldOwner, parameters); field->initialize(yearPseudoId, queryString(WebLocalizedString::AXYearFieldText)); return field.release(); }
RawPtr<DateTimeSymbolicMonthFieldElement> DateTimeSymbolicMonthFieldElement::create(Document& document, FieldOwner& fieldOwner, const Vector<String>& labels, int minimum, int maximum) { DEFINE_STATIC_LOCAL(AtomicString, monthPseudoId, ("-webkit-datetime-edit-month-field")); RawPtr<DateTimeSymbolicMonthFieldElement> field = new DateTimeSymbolicMonthFieldElement(document, fieldOwner, labels, minimum, maximum); field->initialize(monthPseudoId, queryString(WebLocalizedString::AXMonthFieldText)); return field.release(); }
RawPtr<DateTimeAMPMFieldElement> DateTimeAMPMFieldElement::create(Document& document, FieldOwner& fieldOwner, const Vector<String>& ampmLabels) { DEFINE_STATIC_LOCAL(AtomicString, ampmPseudoId, ("-webkit-datetime-edit-ampm-field")); RawPtr<DateTimeAMPMFieldElement> field = new DateTimeAMPMFieldElement(document, fieldOwner, ampmLabels); field->initialize(ampmPseudoId, queryString(WebLocalizedString::AXAMPMFieldText)); return field.release(); }
RawPtr<DateTimeSecondFieldElement> DateTimeSecondFieldElement::create(Document& document, FieldOwner& fieldOwner, const Range& range, const Step& step) { DEFINE_STATIC_LOCAL(AtomicString, secondPseudoId, ("-webkit-datetime-edit-second-field")); RawPtr<DateTimeSecondFieldElement> field = new DateTimeSecondFieldElement(document, fieldOwner, range, step); field->initialize(secondPseudoId, queryString(WebLocalizedString::AXSecondFieldText)); return field.release(); }
RawPtr<DateTimeHour23FieldElement> DateTimeHour23FieldElement::create(Document& document, FieldOwner& fieldOwner, const Range& hour23Range, const Step& step) { ASSERT(hour23Range.minimum >= 0); ASSERT(hour23Range.maximum <= 23); ASSERT(hour23Range.minimum <= hour23Range.maximum); RawPtr<DateTimeHour23FieldElement> field = new DateTimeHour23FieldElement(document, fieldOwner, hour23Range, step); field->initialize(); return field.release(); }
RawPtr<DateTimeHour11FieldElement> DateTimeHour11FieldElement::create(Document& document, FieldOwner& fieldOwner, const Range& hour23Range, const Step& step) { ASSERT(hour23Range.minimum >= 0); ASSERT(hour23Range.maximum <= 23); ASSERT(hour23Range.minimum <= hour23Range.maximum); Range range(0, 11); if (hour23Range.maximum < 12) range = hour23Range; else if (hour23Range.minimum >= 12) { range.minimum = hour23Range.minimum - 12; range.maximum = hour23Range.maximum - 12; } RawPtr<DateTimeHour11FieldElement> field = new DateTimeHour11FieldElement(document, fieldOwner, range, step); field->initialize(); return field.release(); }