| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 Google Inc. All rights reserved. |
| 3 * Copyright (C) 2012 Apple Inc. All rights reserved. | 3 * Copyright (C) 2012 Apple Inc. All rights reserved. |
| 4 * | 4 * |
| 5 * This library is free software; you can redistribute it and/or | 5 * This library is free software; you can redistribute it and/or |
| 6 * modify it under the terms of the GNU Library General Public | 6 * modify it under the terms of the GNU Library General Public |
| 7 * License as published by the Free Software Foundation; either | 7 * License as published by the Free Software Foundation; either |
| 8 * version 2 of the License, or (at your option) any later version. | 8 * version 2 of the License, or (at your option) any later version. |
| 9 * | 9 * |
| 10 * This library is distributed in the hope that it will be useful, | 10 * This library is distributed in the hope that it will be useful, |
| (...skipping 442 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 453 void TextAutosizer::setMultiplierForList(RenderObject* renderer, float multiplie
r) | 453 void TextAutosizer::setMultiplierForList(RenderObject* renderer, float multiplie
r) |
| 454 { | 454 { |
| 455 #ifndef NDEBUG | 455 #ifndef NDEBUG |
| 456 Node* parentNode = renderer->generatingNode(); | 456 Node* parentNode = renderer->generatingNode(); |
| 457 ASSERT(parentNode); | 457 ASSERT(parentNode); |
| 458 ASSERT(isHTMLOListElement(parentNode) || isHTMLUListElement(parentNode)); | 458 ASSERT(isHTMLOListElement(parentNode) || isHTMLUListElement(parentNode)); |
| 459 #endif | 459 #endif |
| 460 setMultiplier(renderer, multiplier); | 460 setMultiplier(renderer, multiplier); |
| 461 | 461 |
| 462 // Make sure all list items are autosized consistently. | 462 // Make sure all list items are autosized consistently. |
| 463 for (RenderObject* child = renderer->firstChild(); child; child = child->nex
tSibling()) { | 463 for (RenderObject* child = renderer->slowFirstChild(); child; child = child-
>nextSibling()) { |
| 464 if (child->isListItem() && child->style()->textAutosizingMultiplier() ==
1) | 464 if (child->isListItem() && child->style()->textAutosizingMultiplier() ==
1) |
| 465 setMultiplier(child, multiplier); | 465 setMultiplier(child, multiplier); |
| 466 } | 466 } |
| 467 } | 467 } |
| 468 | 468 |
| 469 float TextAutosizer::computeAutosizedFontSize(float specifiedSize, float multipl
ier) | 469 float TextAutosizer::computeAutosizedFontSize(float specifiedSize, float multipl
ier) |
| 470 { | 470 { |
| 471 // Somewhat arbitrary "pleasant" font size. | 471 // Somewhat arbitrary "pleasant" font size. |
| 472 const float pleasantSize = 16; | 472 const float pleasantSize = 16; |
| 473 | 473 |
| (...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 788 // containingBlock() should never leave the cluster, since it only skips anc
estors when finding the | 788 // containingBlock() should never leave the cluster, since it only skips anc
estors when finding the |
| 789 // container of position:absolute/fixed blocks, and those cannot exist betwe
en a cluster and its text | 789 // container of position:absolute/fixed blocks, and those cannot exist betwe
en a cluster and its text |
| 790 // nodes lowest common ancestor as isAutosizingCluster would have made them
into their own independent | 790 // nodes lowest common ancestor as isAutosizingCluster would have made them
into their own independent |
| 791 // cluster. | 791 // cluster. |
| 792 RenderBlock* containingBlock = firstNode->containingBlock(); | 792 RenderBlock* containingBlock = firstNode->containingBlock(); |
| 793 ASSERT(containingBlock->isDescendantOf(cluster)); | 793 ASSERT(containingBlock->isDescendantOf(cluster)); |
| 794 | 794 |
| 795 return containingBlock; | 795 return containingBlock; |
| 796 } | 796 } |
| 797 | 797 |
| 798 const RenderObject* TextAutosizer::findFirstTextLeafNotInCluster(const RenderObj
ect* parent, size_t& depth, TraversalDirection direction) | 798 const RenderObject* TextAutosizer::findFirstTextLeafNotInCluster(const RenderBlo
ck* parent, size_t& depth, TraversalDirection direction) |
| 799 { | 799 { |
| 800 if (parent->isText()) | 800 if (parent->isText()) |
| 801 return parent; | 801 return parent; |
| 802 | 802 |
| 803 ++depth; | 803 ++depth; |
| 804 const RenderObject* child = (direction == FirstToLast) ? parent->firstChild(
) : parent->lastChild(); | 804 const RenderObject* child = (direction == FirstToLast) ? parent->firstChild(
) : parent->lastChild(); |
| 805 while (child) { | 805 while (child) { |
| 806 if (!isAutosizingContainer(child) || !isIndependentDescendant(toRenderBl
ock(child))) { | 806 if (!isAutosizingContainer(child) || !isIndependentDescendant(toRenderBl
ock(child))) { |
| 807 const RenderObject* leaf = findFirstTextLeafNotInCluster(child, dept
h, direction); | 807 const RenderObject* leaf = findFirstTextLeafNotInCluster(toRenderBlo
ck(child), depth, direction); |
| 808 if (leaf) | 808 if (leaf) |
| 809 return leaf; | 809 return leaf; |
| 810 } | 810 } |
| 811 child = (direction == FirstToLast) ? child->nextSibling() : child->previ
ousSibling(); | 811 child = (direction == FirstToLast) ? child->nextSibling() : child->previ
ousSibling(); |
| 812 } | 812 } |
| 813 --depth; | 813 --depth; |
| 814 | 814 |
| 815 return 0; | 815 return 0; |
| 816 } | 816 } |
| 817 | 817 |
| (...skipping 28 matching lines...) Expand all Loading... |
| 846 if (i + 1 < clusterInfos.size()) { | 846 if (i + 1 < clusterInfos.size()) { |
| 847 LayoutUnit currentWidth = clusterInfos[i].root->contentLogicalWidth(
); | 847 LayoutUnit currentWidth = clusterInfos[i].root->contentLogicalWidth(
); |
| 848 LayoutUnit nextWidth = clusterInfos[i + 1].root->contentLogicalWidth
(); | 848 LayoutUnit nextWidth = clusterInfos[i + 1].root->contentLogicalWidth
(); |
| 849 if (currentWidth - nextWidth > maxWidthDifferenceWithinGroup) | 849 if (currentWidth - nextWidth > maxWidthDifferenceWithinGroup) |
| 850 groups.grow(groups.size() + 1); | 850 groups.grow(groups.size() + 1); |
| 851 } | 851 } |
| 852 } | 852 } |
| 853 } | 853 } |
| 854 | 854 |
| 855 } // namespace WebCore | 855 } // namespace WebCore |
| OLD | NEW |