| OLD | NEW |
| 1 /* | 1 /* |
| 2 * (C) 1999 Lars Knoll (knoll@kde.org) | 2 * (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * (C) 2000 Dirk Mueller (mueller@kde.org) | 3 * (C) 2000 Dirk Mueller (mueller@kde.org) |
| 4 * Copyright (C) 2004, 2005, 2006, 2007 Apple Inc. All rights reserved. | 4 * Copyright (C) 2004, 2005, 2006, 2007 Apple Inc. All rights reserved. |
| 5 * Copyright (C) 2006 Andrew Wellington (proton@wiretapped.net) | 5 * Copyright (C) 2006 Andrew Wellington (proton@wiretapped.net) |
| 6 * Copyright (C) 2006 Graham Dennis (graham.dennis@gmail.com) | 6 * Copyright (C) 2006 Graham Dennis (graham.dennis@gmail.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 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 143 : WTF::Unicode::toTitleCase(stringWithPrevious[startOfWord])); | 143 : WTF::Unicode::toTitleCase(stringWithPrevious[startOfWord])); |
| 144 } | 144 } |
| 145 for (int i = startOfWord + 1; i < endOfWord; i++) | 145 for (int i = startOfWord + 1; i < endOfWord; i++) |
| 146 result.append(input[i - 1]); | 146 result.append(input[i - 1]); |
| 147 } | 147 } |
| 148 | 148 |
| 149 *string = result.toString(); | 149 *string = result.toString(); |
| 150 } | 150 } |
| 151 | 151 |
| 152 LayoutText::LayoutText(Node* node, PassRefPtr<StringImpl> str) | 152 LayoutText::LayoutText(Node* node, PassRefPtr<StringImpl> str) |
| 153 : LayoutObject(!node || node->isDocumentNode() ? 0 : node), | 153 : LayoutObject(node), |
| 154 m_hasTab(false), | 154 m_hasTab(false), |
| 155 m_linesDirty(false), | 155 m_linesDirty(false), |
| 156 m_containsReversedText(false), | 156 m_containsReversedText(false), |
| 157 m_knownToHaveNoOverflowAndNoFallbackFonts(false), | 157 m_knownToHaveNoOverflowAndNoFallbackFonts(false), |
| 158 m_minWidth(-1), | 158 m_minWidth(-1), |
| 159 m_maxWidth(-1), | 159 m_maxWidth(-1), |
| 160 m_firstLineMinWidth(0), | 160 m_firstLineMinWidth(0), |
| 161 m_lastLineLineMinWidth(0), | 161 m_lastLineLineMinWidth(0), |
| 162 m_text(std::move(str)), | 162 m_text(std::move(str)), |
| 163 m_firstTextBox(nullptr), | 163 m_firstTextBox(nullptr), |
| 164 m_lastTextBox(nullptr) { | 164 m_lastTextBox(nullptr) { |
| 165 ASSERT(m_text); | 165 ASSERT(m_text); |
| 166 // FIXME: Some clients of LayoutText (and subclasses) pass Document as node to | 166 DCHECK(!node || !node->isDocumentNode()); |
| 167 // create anonymous layoutObject. | |
| 168 // They should be switched to passing null and using setDocumentForAnonymous. | |
| 169 if (node && node->isDocumentNode()) | |
| 170 setDocumentForAnonymous(toDocument(node)); | |
| 171 | 167 |
| 172 setIsText(); | 168 setIsText(); |
| 173 | 169 |
| 174 view()->frameView()->incrementVisuallyNonEmptyCharacterCount(m_text.length()); | 170 if (node) |
| 171 frameView()->incrementVisuallyNonEmptyCharacterCount(m_text.length()); |
| 175 } | 172 } |
| 176 | 173 |
| 177 #if DCHECK_IS_ON() | 174 #if DCHECK_IS_ON() |
| 178 | 175 |
| 179 LayoutText::~LayoutText() { | 176 LayoutText::~LayoutText() { |
| 180 ASSERT(!m_firstTextBox); | 177 ASSERT(!m_firstTextBox); |
| 181 ASSERT(!m_lastTextBox); | 178 ASSERT(!m_lastTextBox); |
| 182 } | 179 } |
| 183 | 180 |
| 184 #endif | 181 #endif |
| 185 | 182 |
| 183 LayoutText* LayoutText::createEmptyAnonymous(Document& doc) { |
| 184 LayoutText* text = new LayoutText(nullptr, StringImpl::empty); |
| 185 text->setDocumentForAnonymous(&doc); |
| 186 return text; |
| 187 } |
| 188 |
| 186 bool LayoutText::isTextFragment() const { | 189 bool LayoutText::isTextFragment() const { |
| 187 return false; | 190 return false; |
| 188 } | 191 } |
| 189 | 192 |
| 190 bool LayoutText::isWordBreak() const { | 193 bool LayoutText::isWordBreak() const { |
| 191 return false; | 194 return false; |
| 192 } | 195 } |
| 193 | 196 |
| 194 void LayoutText::styleDidChange(StyleDifference diff, | 197 void LayoutText::styleDidChange(StyleDifference diff, |
| 195 const ComputedStyle* oldStyle) { | 198 const ComputedStyle* oldStyle) { |
| (...skipping 1857 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2053 LayoutRect rect = LayoutRect( | 2056 LayoutRect rect = LayoutRect( |
| 2054 IntRect(firstRunX(), firstRunY(), linesBox.width(), linesBox.height())); | 2057 IntRect(firstRunX(), firstRunY(), linesBox.width(), linesBox.height())); |
| 2055 LayoutBlock* block = containingBlock(); | 2058 LayoutBlock* block = containingBlock(); |
| 2056 if (block && hasTextBoxes()) | 2059 if (block && hasTextBoxes()) |
| 2057 block->adjustChildDebugRect(rect); | 2060 block->adjustChildDebugRect(rect); |
| 2058 | 2061 |
| 2059 return rect; | 2062 return rect; |
| 2060 } | 2063 } |
| 2061 | 2064 |
| 2062 } // namespace blink | 2065 } // namespace blink |
| OLD | NEW |