OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
4 * (C) 2001 Dirk Mueller (mueller@kde.org) | 4 * (C) 2001 Dirk Mueller (mueller@kde.org) |
5 * Copyright (C) 2004, 2005, 2006, 2007 Apple Inc. All rights reserved. | 5 * Copyright (C) 2004, 2005, 2006, 2007 Apple Inc. All rights reserved. |
6 * (C) 2006 Alexey Proskuryakov (ap@nypop.com) | 6 * (C) 2006 Alexey Proskuryakov (ap@nypop.com) |
7 * | 7 * |
8 * This library is free software; you can redistribute it and/or | 8 * This library is free software; you can redistribute it and/or |
9 * modify it under the terms of the GNU Library General Public | 9 * modify it under the terms of the GNU Library General Public |
10 * License as published by the Free Software Foundation; either | 10 * License as published by the Free Software Foundation; either |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
112 if (event->type() == EventTypeNames::blur || event->type() == EventTypeNames
::focus) | 112 if (event->type() == EventTypeNames::blur || event->type() == EventTypeNames
::focus) |
113 return; | 113 return; |
114 innerEditorElement()->defaultEventHandler(event); | 114 innerEditorElement()->defaultEventHandler(event); |
115 } | 115 } |
116 | 116 |
117 String HTMLTextFormControlElement::strippedPlaceholder() const | 117 String HTMLTextFormControlElement::strippedPlaceholder() const |
118 { | 118 { |
119 // According to the HTML5 specification, we need to remove CR and LF from | 119 // According to the HTML5 specification, we need to remove CR and LF from |
120 // the attribute value. | 120 // the attribute value. |
121 const AtomicString& attributeValue = fastGetAttribute(placeholderAttr); | 121 const AtomicString& attributeValue = fastGetAttribute(placeholderAttr); |
122 if (!attributeValue.contains(newlineCharacter) && !attributeValue.contains(c
arriageReturn)) | 122 if (!attributeValue.contains(characterNewline) && !attributeValue.contains(c
haracterCarriageReturn)) |
123 return attributeValue; | 123 return attributeValue; |
124 | 124 |
125 StringBuilder stripped; | 125 StringBuilder stripped; |
126 unsigned length = attributeValue.length(); | 126 unsigned length = attributeValue.length(); |
127 stripped.reserveCapacity(length); | 127 stripped.reserveCapacity(length); |
128 for (unsigned i = 0; i < length; ++i) { | 128 for (unsigned i = 0; i < length; ++i) { |
129 UChar character = attributeValue[i]; | 129 UChar character = attributeValue[i]; |
130 if (character == newlineCharacter || character == carriageReturn) | 130 if (character == characterNewline || character == characterCarriageRetur
n) |
131 continue; | 131 continue; |
132 stripped.append(character); | 132 stripped.append(character); |
133 } | 133 } |
134 return stripped.toString(); | 134 return stripped.toString(); |
135 } | 135 } |
136 | 136 |
137 static bool isNotLineBreak(UChar ch) { return ch != newlineCharacter && ch != ca
rriageReturn; } | 137 static bool isNotLineBreak(UChar ch) { return ch != characterNewline && ch != ch
aracterCarriageReturn; } |
138 | 138 |
139 bool HTMLTextFormControlElement::isPlaceholderEmpty() const | 139 bool HTMLTextFormControlElement::isPlaceholderEmpty() const |
140 { | 140 { |
141 const AtomicString& attributeValue = fastGetAttribute(placeholderAttr); | 141 const AtomicString& attributeValue = fastGetAttribute(placeholderAttr); |
142 return attributeValue.string().find(isNotLineBreak) == kNotFound; | 142 return attributeValue.string().find(isNotLineBreak) == kNotFound; |
143 } | 143 } |
144 | 144 |
145 bool HTMLTextFormControlElement::placeholderShouldBeVisible() const | 145 bool HTMLTextFormControlElement::placeholderShouldBeVisible() const |
146 { | 146 { |
147 return supportsPlaceholder() | 147 return supportsPlaceholder() |
(...skipping 503 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
651 String HTMLTextFormControlElement::innerEditorValue() const | 651 String HTMLTextFormControlElement::innerEditorValue() const |
652 { | 652 { |
653 ASSERT(!hasOpenShadowRoot()); | 653 ASSERT(!hasOpenShadowRoot()); |
654 HTMLElement* innerEditor = innerEditorElement(); | 654 HTMLElement* innerEditor = innerEditorElement(); |
655 if (!innerEditor || !isTextFormControl()) | 655 if (!innerEditor || !isTextFormControl()) |
656 return emptyString(); | 656 return emptyString(); |
657 | 657 |
658 StringBuilder result; | 658 StringBuilder result; |
659 for (Node& node : NodeTraversal::inclusiveDescendantsOf(*innerEditor)) { | 659 for (Node& node : NodeTraversal::inclusiveDescendantsOf(*innerEditor)) { |
660 if (isHTMLBRElement(node)) | 660 if (isHTMLBRElement(node)) |
661 result.append(newlineCharacter); | 661 result.append(characterNewline); |
662 else if (node.isTextNode()) | 662 else if (node.isTextNode()) |
663 result.append(toText(node).data()); | 663 result.append(toText(node).data()); |
664 } | 664 } |
665 return finishText(result); | 665 return finishText(result); |
666 } | 666 } |
667 | 667 |
668 static void getNextSoftBreak(RootInlineBox*& line, Node*& breakNode, unsigned& b
reakOffset) | 668 static void getNextSoftBreak(RootInlineBox*& line, Node*& breakNode, unsigned& b
reakOffset) |
669 { | 669 { |
670 RootInlineBox* next; | 670 RootInlineBox* next; |
671 for (; line; line = next) { | 671 for (; line; line = next) { |
(...skipping 26 matching lines...) Expand all Loading... |
698 unsigned breakOffset; | 698 unsigned breakOffset; |
699 RootInlineBox* line = layoutObject->firstRootBox(); | 699 RootInlineBox* line = layoutObject->firstRootBox(); |
700 if (!line) | 700 if (!line) |
701 return value(); | 701 return value(); |
702 | 702 |
703 getNextSoftBreak(line, breakNode, breakOffset); | 703 getNextSoftBreak(line, breakNode, breakOffset); |
704 | 704 |
705 StringBuilder result; | 705 StringBuilder result; |
706 for (Node& node : NodeTraversal::descendantsOf(*innerText)) { | 706 for (Node& node : NodeTraversal::descendantsOf(*innerText)) { |
707 if (isHTMLBRElement(node)) { | 707 if (isHTMLBRElement(node)) { |
708 result.append(newlineCharacter); | 708 result.append(characterNewline); |
709 } else if (node.isTextNode()) { | 709 } else if (node.isTextNode()) { |
710 String data = toText(node).data(); | 710 String data = toText(node).data(); |
711 unsigned length = data.length(); | 711 unsigned length = data.length(); |
712 unsigned position = 0; | 712 unsigned position = 0; |
713 while (breakNode == node && breakOffset <= length) { | 713 while (breakNode == node && breakOffset <= length) { |
714 if (breakOffset > position) { | 714 if (breakOffset > position) { |
715 result.append(data, position, breakOffset - position); | 715 result.append(data, position, breakOffset - position); |
716 position = breakOffset; | 716 position = breakOffset; |
717 result.append(newlineCharacter); | 717 result.append(characterNewline); |
718 } | 718 } |
719 getNextSoftBreak(line, breakNode, breakOffset); | 719 getNextSoftBreak(line, breakNode, breakOffset); |
720 } | 720 } |
721 result.append(data, position, length - position); | 721 result.append(data, position, length - position); |
722 } | 722 } |
723 while (breakNode == node) | 723 while (breakNode == node) |
724 getNextSoftBreak(line, breakNode, breakOffset); | 724 getNextSoftBreak(line, breakNode, breakOffset); |
725 } | 725 } |
726 return finishText(result); | 726 return finishText(result); |
727 } | 727 } |
(...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1007 } | 1007 } |
1008 | 1008 |
1009 void HTMLTextFormControlElement::copyNonAttributePropertiesFromElement(const Ele
ment& source) | 1009 void HTMLTextFormControlElement::copyNonAttributePropertiesFromElement(const Ele
ment& source) |
1010 { | 1010 { |
1011 const HTMLTextFormControlElement& sourceElement = static_cast<const HTMLText
FormControlElement&>(source); | 1011 const HTMLTextFormControlElement& sourceElement = static_cast<const HTMLText
FormControlElement&>(source); |
1012 m_lastChangeWasUserEdit = sourceElement.m_lastChangeWasUserEdit; | 1012 m_lastChangeWasUserEdit = sourceElement.m_lastChangeWasUserEdit; |
1013 HTMLFormControlElement::copyNonAttributePropertiesFromElement(source); | 1013 HTMLFormControlElement::copyNonAttributePropertiesFromElement(source); |
1014 } | 1014 } |
1015 | 1015 |
1016 } // namespace blink | 1016 } // namespace blink |
OLD | NEW |