| 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 26 matching lines...) Expand all Loading... |
| 37 | 37 |
| 38 namespace WebCore { | 38 namespace WebCore { |
| 39 | 39 |
| 40 BaseChooserOnlyDateAndTimeInputType::~BaseChooserOnlyDateAndTimeInputType() | 40 BaseChooserOnlyDateAndTimeInputType::~BaseChooserOnlyDateAndTimeInputType() |
| 41 { | 41 { |
| 42 closeDateTimeChooser(); | 42 closeDateTimeChooser(); |
| 43 } | 43 } |
| 44 | 44 |
| 45 void BaseChooserOnlyDateAndTimeInputType::handleDOMActivateEvent(Event*) | 45 void BaseChooserOnlyDateAndTimeInputType::handleDOMActivateEvent(Event*) |
| 46 { | 46 { |
| 47 if (element()->isDisabledOrReadOnly() || !element()->renderer() || !UserGest
ureIndicator::processingUserGesture() || element()->hasAuthorShadowRoot()) | 47 if (element().isDisabledOrReadOnly() || !element().renderer() || !UserGestur
eIndicator::processingUserGesture() || element().hasAuthorShadowRoot()) |
| 48 return; | 48 return; |
| 49 | 49 |
| 50 if (m_dateTimeChooser) | 50 if (m_dateTimeChooser) |
| 51 return; | 51 return; |
| 52 if (!element()->document().page()) | 52 if (!element().document().page()) |
| 53 return; | 53 return; |
| 54 DateTimeChooserParameters parameters; | 54 DateTimeChooserParameters parameters; |
| 55 if (!element()->setupDateTimeChooserParameters(parameters)) | 55 if (!element().setupDateTimeChooserParameters(parameters)) |
| 56 return; | 56 return; |
| 57 m_dateTimeChooser = element()->document().page()->chrome().openDateTimeChoos
er(this, parameters); | 57 m_dateTimeChooser = element().document().page()->chrome().openDateTimeChoose
r(this, parameters); |
| 58 } | 58 } |
| 59 | 59 |
| 60 void BaseChooserOnlyDateAndTimeInputType::createShadowSubtree() | 60 void BaseChooserOnlyDateAndTimeInputType::createShadowSubtree() |
| 61 { | 61 { |
| 62 DEFINE_STATIC_LOCAL(AtomicString, valueContainerPseudo, ("-webkit-date-and-t
ime-value", AtomicString::ConstructFromLiteral)); | 62 DEFINE_STATIC_LOCAL(AtomicString, valueContainerPseudo, ("-webkit-date-and-t
ime-value", AtomicString::ConstructFromLiteral)); |
| 63 | 63 |
| 64 RefPtr<HTMLDivElement> valueContainer = HTMLDivElement::create(element()->do
cument()); | 64 RefPtr<HTMLDivElement> valueContainer = HTMLDivElement::create(element().doc
ument()); |
| 65 valueContainer->setPart(valueContainerPseudo); | 65 valueContainer->setPart(valueContainerPseudo); |
| 66 element()->userAgentShadowRoot()->appendChild(valueContainer.get()); | 66 element().userAgentShadowRoot()->appendChild(valueContainer.get()); |
| 67 updateAppearance(); | 67 updateAppearance(); |
| 68 } | 68 } |
| 69 | 69 |
| 70 void BaseChooserOnlyDateAndTimeInputType::updateAppearance() | 70 void BaseChooserOnlyDateAndTimeInputType::updateAppearance() |
| 71 { | 71 { |
| 72 Node* node = element()->userAgentShadowRoot()->firstChild(); | 72 Node* node = element().userAgentShadowRoot()->firstChild(); |
| 73 if (!node || !node->isHTMLElement()) | 73 if (!node || !node->isHTMLElement()) |
| 74 return; | 74 return; |
| 75 String displayValue = visibleValue(); | 75 String displayValue = visibleValue(); |
| 76 if (displayValue.isEmpty()) { | 76 if (displayValue.isEmpty()) { |
| 77 // Need to put something to keep text baseline. | 77 // Need to put something to keep text baseline. |
| 78 displayValue = " "; | 78 displayValue = " "; |
| 79 } | 79 } |
| 80 toHTMLElement(node)->setInnerText(displayValue, ASSERT_NO_EXCEPTION); | 80 toHTMLElement(node)->setInnerText(displayValue, ASSERT_NO_EXCEPTION); |
| 81 } | 81 } |
| 82 | 82 |
| 83 void BaseChooserOnlyDateAndTimeInputType::setValue(const String& value, bool val
ueChanged, TextFieldEventBehavior eventBehavior) | 83 void BaseChooserOnlyDateAndTimeInputType::setValue(const String& value, bool val
ueChanged, TextFieldEventBehavior eventBehavior) |
| 84 { | 84 { |
| 85 BaseDateAndTimeInputType::setValue(value, valueChanged, eventBehavior); | 85 BaseDateAndTimeInputType::setValue(value, valueChanged, eventBehavior); |
| 86 if (valueChanged) | 86 if (valueChanged) |
| 87 updateAppearance(); | 87 updateAppearance(); |
| 88 } | 88 } |
| 89 | 89 |
| 90 void BaseChooserOnlyDateAndTimeInputType::detach() | 90 void BaseChooserOnlyDateAndTimeInputType::detach() |
| 91 { | 91 { |
| 92 closeDateTimeChooser(); | 92 closeDateTimeChooser(); |
| 93 } | 93 } |
| 94 | 94 |
| 95 void BaseChooserOnlyDateAndTimeInputType::didChooseValue(const String& value) | 95 void BaseChooserOnlyDateAndTimeInputType::didChooseValue(const String& value) |
| 96 { | 96 { |
| 97 element()->setValue(value, DispatchInputAndChangeEvent); | 97 element().setValue(value, DispatchInputAndChangeEvent); |
| 98 } | 98 } |
| 99 | 99 |
| 100 void BaseChooserOnlyDateAndTimeInputType::didEndChooser() | 100 void BaseChooserOnlyDateAndTimeInputType::didEndChooser() |
| 101 { | 101 { |
| 102 m_dateTimeChooser.clear(); | 102 m_dateTimeChooser.clear(); |
| 103 } | 103 } |
| 104 | 104 |
| 105 void BaseChooserOnlyDateAndTimeInputType::closeDateTimeChooser() | 105 void BaseChooserOnlyDateAndTimeInputType::closeDateTimeChooser() |
| 106 { | 106 { |
| 107 if (m_dateTimeChooser) | 107 if (m_dateTimeChooser) |
| (...skipping 16 matching lines...) Expand all Loading... |
| 124 } | 124 } |
| 125 | 125 |
| 126 void BaseChooserOnlyDateAndTimeInputType::accessKeyAction(bool sendMouseEvents) | 126 void BaseChooserOnlyDateAndTimeInputType::accessKeyAction(bool sendMouseEvents) |
| 127 { | 127 { |
| 128 BaseDateAndTimeInputType::accessKeyAction(sendMouseEvents); | 128 BaseDateAndTimeInputType::accessKeyAction(sendMouseEvents); |
| 129 BaseClickableWithKeyInputType::accessKeyAction(element(), sendMouseEvents); | 129 BaseClickableWithKeyInputType::accessKeyAction(element(), sendMouseEvents); |
| 130 } | 130 } |
| 131 | 131 |
| 132 } | 132 } |
| 133 #endif | 133 #endif |
| OLD | NEW |