| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
| 8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
| 9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
| 10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
| (...skipping 392 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 403 DEFINE_STATIC_LOCAL(AtomicString, textPseudoId, ("-webkit-datetime-edit-text
", AtomicString::ConstructFromLiteral)); | 403 DEFINE_STATIC_LOCAL(AtomicString, textPseudoId, ("-webkit-datetime-edit-text
", AtomicString::ConstructFromLiteral)); |
| 404 ASSERT(text.length()); | 404 ASSERT(text.length()); |
| 405 RefPtr<HTMLDivElement> element = HTMLDivElement::create(m_editElement.docume
nt()); | 405 RefPtr<HTMLDivElement> element = HTMLDivElement::create(m_editElement.docume
nt()); |
| 406 element->setPseudo(textPseudoId); | 406 element->setPseudo(textPseudoId); |
| 407 if (m_parameters.locale.isRTL() && text.length()) { | 407 if (m_parameters.locale.isRTL() && text.length()) { |
| 408 Direction dir = direction(text[0]); | 408 Direction dir = direction(text[0]); |
| 409 if (dir == SegmentSeparator || dir == WhiteSpaceNeutral || dir == OtherN
eutral) | 409 if (dir == SegmentSeparator || dir == WhiteSpaceNeutral || dir == OtherN
eutral) |
| 410 element->appendChild(Text::create(m_editElement.document(), String(&
rightToLeftMark, 1))); | 410 element->appendChild(Text::create(m_editElement.document(), String(&
rightToLeftMark, 1))); |
| 411 } | 411 } |
| 412 element->appendChild(Text::create(m_editElement.document(), text)); | 412 element->appendChild(Text::create(m_editElement.document(), text)); |
| 413 m_editElement.fieldsWrapperElement()->appendChild(element, ASSERT_NO_EXCEPTI
ON_STATE, AttachLazily); | 413 m_editElement.fieldsWrapperElement()->appendChild(element, ASSERT_NO_EXCEPTI
ON, AttachLazily); |
| 414 } | 414 } |
| 415 | 415 |
| 416 DateTimeNumericFieldElement::Step DateTimeEditBuilder::createStep(double msPerFi
eldUnit, double msPerFieldSize) const | 416 DateTimeNumericFieldElement::Step DateTimeEditBuilder::createStep(double msPerFi
eldUnit, double msPerFieldSize) const |
| 417 { | 417 { |
| 418 const Decimal msPerFieldUnitDecimal(static_cast<int>(msPerFieldUnit)); | 418 const Decimal msPerFieldUnitDecimal(static_cast<int>(msPerFieldUnit)); |
| 419 const Decimal msPerFieldSizeDecimal(static_cast<int>(msPerFieldSize)); | 419 const Decimal msPerFieldSizeDecimal(static_cast<int>(msPerFieldSize)); |
| 420 Decimal stepMilliseconds = stepRange().step(); | 420 Decimal stepMilliseconds = stepRange().step(); |
| 421 ASSERT(!msPerFieldUnitDecimal.isZero()); | 421 ASSERT(!msPerFieldUnitDecimal.isZero()); |
| 422 ASSERT(!msPerFieldSizeDecimal.isZero()); | 422 ASSERT(!msPerFieldSizeDecimal.isZero()); |
| 423 ASSERT(!stepMilliseconds.isZero()); | 423 ASSERT(!stepMilliseconds.isZero()); |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 457 { | 457 { |
| 458 ASSERT(firstChild()); | 458 ASSERT(firstChild()); |
| 459 return toElement(firstChild()); | 459 return toElement(firstChild()); |
| 460 } | 460 } |
| 461 | 461 |
| 462 void DateTimeEditElement::addField(PassRefPtr<DateTimeFieldElement> field) | 462 void DateTimeEditElement::addField(PassRefPtr<DateTimeFieldElement> field) |
| 463 { | 463 { |
| 464 if (m_fields.size() == m_fields.capacity()) | 464 if (m_fields.size() == m_fields.capacity()) |
| 465 return; | 465 return; |
| 466 m_fields.append(field.get()); | 466 m_fields.append(field.get()); |
| 467 fieldsWrapperElement()->appendChild(field, ASSERT_NO_EXCEPTION_STATE, Attach
Lazily); | 467 fieldsWrapperElement()->appendChild(field, ASSERT_NO_EXCEPTION, AttachLazily
); |
| 468 } | 468 } |
| 469 | 469 |
| 470 bool DateTimeEditElement::anyEditableFieldsHaveValues() const | 470 bool DateTimeEditElement::anyEditableFieldsHaveValues() const |
| 471 { | 471 { |
| 472 for (size_t fieldIndex = 0; fieldIndex < m_fields.size(); ++fieldIndex) { | 472 for (size_t fieldIndex = 0; fieldIndex < m_fields.size(); ++fieldIndex) { |
| 473 if (!m_fields[fieldIndex]->isDisabled() && m_fields[fieldIndex]->hasValu
e()) | 473 if (!m_fields[fieldIndex]->isDisabled() && m_fields[fieldIndex]->hasValu
e()) |
| 474 return true; | 474 return true; |
| 475 } | 475 } |
| 476 return false; | 476 return false; |
| 477 } | 477 } |
| (...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 646 { | 646 { |
| 647 return m_editControlOwner && m_editControlOwner->isEditControlOwnerReadOnly(
); | 647 return m_editControlOwner && m_editControlOwner->isEditControlOwnerReadOnly(
); |
| 648 } | 648 } |
| 649 | 649 |
| 650 void DateTimeEditElement::layout(const LayoutParameters& layoutParameters, const
DateComponents& dateValue) | 650 void DateTimeEditElement::layout(const LayoutParameters& layoutParameters, const
DateComponents& dateValue) |
| 651 { | 651 { |
| 652 DEFINE_STATIC_LOCAL(AtomicString, fieldsWrapperPseudoId, ("-webkit-datetime-
edit-fields-wrapper", AtomicString::ConstructFromLiteral)); | 652 DEFINE_STATIC_LOCAL(AtomicString, fieldsWrapperPseudoId, ("-webkit-datetime-
edit-fields-wrapper", AtomicString::ConstructFromLiteral)); |
| 653 if (!firstChild()) { | 653 if (!firstChild()) { |
| 654 RefPtr<HTMLDivElement> element = HTMLDivElement::create(document()); | 654 RefPtr<HTMLDivElement> element = HTMLDivElement::create(document()); |
| 655 element->setPseudo(fieldsWrapperPseudoId); | 655 element->setPseudo(fieldsWrapperPseudoId); |
| 656 appendChild(element.get(), ASSERT_NO_EXCEPTION_STATE, AttachLazily); | 656 appendChild(element.get(), ASSERT_NO_EXCEPTION, AttachLazily); |
| 657 } | 657 } |
| 658 Element* fieldsWrapper = fieldsWrapperElement(); | 658 Element* fieldsWrapper = fieldsWrapperElement(); |
| 659 | 659 |
| 660 size_t focusedFieldIndex = this->focusedFieldIndex(); | 660 size_t focusedFieldIndex = this->focusedFieldIndex(); |
| 661 DateTimeFieldElement* const focusedField = fieldAt(focusedFieldIndex); | 661 DateTimeFieldElement* const focusedField = fieldAt(focusedFieldIndex); |
| 662 const AtomicString focusedFieldId = focusedField ? focusedField->shadowPseud
oId() : nullAtom; | 662 const AtomicString focusedFieldId = focusedField ? focusedField->shadowPseud
oId() : nullAtom; |
| 663 | 663 |
| 664 DateTimeEditBuilder builder(*this, layoutParameters, dateValue); | 664 DateTimeEditBuilder builder(*this, layoutParameters, dateValue); |
| 665 Node* lastChildToBeRemoved = fieldsWrapper->lastChild(); | 665 Node* lastChildToBeRemoved = fieldsWrapper->lastChild(); |
| 666 if (!builder.build(layoutParameters.dateTimeFormat) || m_fields.isEmpty()) { | 666 if (!builder.build(layoutParameters.dateTimeFormat) || m_fields.isEmpty()) { |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 790 { | 790 { |
| 791 DateTimeFieldsState dateTimeFieldsState; | 791 DateTimeFieldsState dateTimeFieldsState; |
| 792 for (size_t fieldIndex = 0; fieldIndex < m_fields.size(); ++fieldIndex) | 792 for (size_t fieldIndex = 0; fieldIndex < m_fields.size(); ++fieldIndex) |
| 793 m_fields[fieldIndex]->populateDateTimeFieldsState(dateTimeFieldsState); | 793 m_fields[fieldIndex]->populateDateTimeFieldsState(dateTimeFieldsState); |
| 794 return dateTimeFieldsState; | 794 return dateTimeFieldsState; |
| 795 } | 795 } |
| 796 | 796 |
| 797 } // namespace WebCore | 797 } // namespace WebCore |
| 798 | 798 |
| 799 #endif | 799 #endif |
| OLD | NEW |