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 280 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
291 box->nextTextBox()->setPreviousTextBox(box->prevTextBox()); | 291 box->nextTextBox()->setPreviousTextBox(box->prevTextBox()); |
292 if (box->prevTextBox()) | 292 if (box->prevTextBox()) |
293 box->prevTextBox()->setNextTextBox(box->nextTextBox()); | 293 box->prevTextBox()->setNextTextBox(box->nextTextBox()); |
294 | 294 |
295 checkConsistency(); | 295 checkConsistency(); |
296 } | 296 } |
297 | 297 |
298 void RenderText::deleteTextBoxes() | 298 void RenderText::deleteTextBoxes() |
299 { | 299 { |
300 if (firstTextBox()) { | 300 if (firstTextBox()) { |
301 RenderArena* arena = renderArena(); | |
302 InlineTextBox* next; | 301 InlineTextBox* next; |
303 for (InlineTextBox* curr = firstTextBox(); curr; curr = next) { | 302 for (InlineTextBox* curr = firstTextBox(); curr; curr = next) { |
304 next = curr->nextTextBox(); | 303 next = curr->nextTextBox(); |
305 curr->destroy(arena); | 304 curr->destroy(); |
306 } | 305 } |
307 m_firstTextBox = m_lastTextBox = 0; | 306 m_firstTextBox = m_lastTextBox = 0; |
308 } | 307 } |
309 } | 308 } |
310 | 309 |
311 PassRefPtr<StringImpl> RenderText::originalText() const | 310 PassRefPtr<StringImpl> RenderText::originalText() const |
312 { | 311 { |
313 Node* e = node(); | 312 Node* e = node(); |
314 return (e && e->isTextNode()) ? toText(e)->dataImpl() : 0; | 313 return (e && e->isTextNode()) ? toText(e)->dataImpl() : 0; |
315 } | 314 } |
(...skipping 1163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1479 deleteTextBoxes(); | 1478 deleteTextBoxes(); |
1480 else if (!m_linesDirty) { | 1479 else if (!m_linesDirty) { |
1481 for (InlineTextBox* box = firstTextBox(); box; box = box->nextTextBox()) | 1480 for (InlineTextBox* box = firstTextBox(); box; box = box->nextTextBox()) |
1482 box->dirtyLineBoxes(); | 1481 box->dirtyLineBoxes(); |
1483 } | 1482 } |
1484 m_linesDirty = false; | 1483 m_linesDirty = false; |
1485 } | 1484 } |
1486 | 1485 |
1487 InlineTextBox* RenderText::createTextBox() | 1486 InlineTextBox* RenderText::createTextBox() |
1488 { | 1487 { |
1489 return new (renderArena()) InlineTextBox(this); | 1488 return new InlineTextBox(this); |
1490 } | 1489 } |
1491 | 1490 |
1492 InlineTextBox* RenderText::createInlineTextBox() | 1491 InlineTextBox* RenderText::createInlineTextBox() |
1493 { | 1492 { |
1494 InlineTextBox* textBox = createTextBox(); | 1493 InlineTextBox* textBox = createTextBox(); |
1495 if (!m_firstTextBox) | 1494 if (!m_firstTextBox) |
1496 m_firstTextBox = m_lastTextBox = textBox; | 1495 m_firstTextBox = m_lastTextBox = textBox; |
1497 else { | 1496 else { |
1498 m_lastTextBox->setNextTextBox(textBox); | 1497 m_lastTextBox->setNextTextBox(textBox); |
1499 textBox->setPreviousTextBox(m_lastTextBox); | 1498 textBox->setPreviousTextBox(m_lastTextBox); |
(...skipping 12 matching lines...) Expand all Loading... |
1512 // We want the box to be destroyed. | 1511 // We want the box to be destroyed. |
1513 s->remove(); | 1512 s->remove(); |
1514 if (m_firstTextBox == s) | 1513 if (m_firstTextBox == s) |
1515 m_firstTextBox = s->nextTextBox(); | 1514 m_firstTextBox = s->nextTextBox(); |
1516 else | 1515 else |
1517 s->prevTextBox()->setNextTextBox(s->nextTextBox()); | 1516 s->prevTextBox()->setNextTextBox(s->nextTextBox()); |
1518 if (m_lastTextBox == s) | 1517 if (m_lastTextBox == s) |
1519 m_lastTextBox = s->prevTextBox(); | 1518 m_lastTextBox = s->prevTextBox(); |
1520 else | 1519 else |
1521 s->nextTextBox()->setPreviousTextBox(s->prevTextBox()); | 1520 s->nextTextBox()->setPreviousTextBox(s->prevTextBox()); |
1522 s->destroy(renderArena()); | 1521 s->destroy(); |
1523 return; | 1522 return; |
1524 } | 1523 } |
1525 | 1524 |
1526 m_containsReversedText |= !s->isLeftToRightDirection(); | 1525 m_containsReversedText |= !s->isLeftToRightDirection(); |
1527 } | 1526 } |
1528 | 1527 |
1529 float RenderText::width(unsigned from, unsigned len, float xPos, bool firstLine,
HashSet<const SimpleFontData*>* fallbackFonts, GlyphOverflow* glyphOverflow) co
nst | 1528 float RenderText::width(unsigned from, unsigned len, float xPos, bool firstLine,
HashSet<const SimpleFontData*>* fallbackFonts, GlyphOverflow* glyphOverflow) co
nst |
1530 { | 1529 { |
1531 if (from >= textLength()) | 1530 if (from >= textLength()) |
1532 return 0; | 1531 return 0; |
(...skipping 396 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1929 void RenderText::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const | 1928 void RenderText::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const |
1930 { | 1929 { |
1931 MemoryClassInfo info(memoryObjectInfo, this, PlatformMemoryTypes::Rendering)
; | 1930 MemoryClassInfo info(memoryObjectInfo, this, PlatformMemoryTypes::Rendering)
; |
1932 RenderObject::reportMemoryUsage(memoryObjectInfo); | 1931 RenderObject::reportMemoryUsage(memoryObjectInfo); |
1933 info.addMember(m_text, "text"); | 1932 info.addMember(m_text, "text"); |
1934 info.addMember(m_firstTextBox, "firstTextBox"); | 1933 info.addMember(m_firstTextBox, "firstTextBox"); |
1935 info.addMember(m_lastTextBox, "lastTextBox"); | 1934 info.addMember(m_lastTextBox, "lastTextBox"); |
1936 } | 1935 } |
1937 | 1936 |
1938 } // namespace WebCore | 1937 } // namespace WebCore |
OLD | NEW |