Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(255)

Side by Side Diff: Source/core/layout/LayoutCounter.cpp

Issue 977113003: Rename renderer() to layoutObject(). (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « Source/core/layout/LayoutBox.cpp ('k') | Source/core/layout/LayoutDeprecatedFlexibleBox.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /** 1 /**
2 * Copyright (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com) 2 * Copyright (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com)
3 * Copyright (C) 2006, 2007 Apple Inc. All rights reserved. 3 * Copyright (C) 2006, 2007 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 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 return staticCounterMaps; 52 return staticCounterMaps;
53 } 53 }
54 54
55 // This function processes the renderer tree in the order of the DOM tree 55 // This function processes the renderer tree in the order of the DOM tree
56 // including pseudo elements as defined in CSS 2.1. 56 // including pseudo elements as defined in CSS 2.1.
57 static LayoutObject* previousInPreOrder(const LayoutObject& object) 57 static LayoutObject* previousInPreOrder(const LayoutObject& object)
58 { 58 {
59 Element* self = toElement(object.node()); 59 Element* self = toElement(object.node());
60 ASSERT(self); 60 ASSERT(self);
61 Element* previous = ElementTraversal::previousIncludingPseudo(*self); 61 Element* previous = ElementTraversal::previousIncludingPseudo(*self);
62 while (previous && !previous->renderer()) 62 while (previous && !previous->layoutObject())
63 previous = ElementTraversal::previousIncludingPseudo(*previous); 63 previous = ElementTraversal::previousIncludingPseudo(*previous);
64 return previous ? previous->renderer() : 0; 64 return previous ? previous->layoutObject() : 0;
65 } 65 }
66 66
67 // This function processes the renderer tree in the order of the DOM tree 67 // This function processes the renderer tree in the order of the DOM tree
68 // including pseudo elements as defined in CSS 2.1. 68 // including pseudo elements as defined in CSS 2.1.
69 static LayoutObject* previousSiblingOrParent(const LayoutObject& object) 69 static LayoutObject* previousSiblingOrParent(const LayoutObject& object)
70 { 70 {
71 Element* self = toElement(object.node()); 71 Element* self = toElement(object.node());
72 ASSERT(self); 72 ASSERT(self);
73 Element* previous = ElementTraversal::pseudoAwarePreviousSibling(*self); 73 Element* previous = ElementTraversal::pseudoAwarePreviousSibling(*self);
74 while (previous && !previous->renderer()) 74 while (previous && !previous->layoutObject())
75 previous = ElementTraversal::pseudoAwarePreviousSibling(*previous); 75 previous = ElementTraversal::pseudoAwarePreviousSibling(*previous);
76 if (previous) 76 if (previous)
77 return previous->renderer(); 77 return previous->layoutObject();
78 previous = self->parentElement(); 78 previous = self->parentElement();
79 return previous ? previous->renderer() : 0; 79 return previous ? previous->layoutObject() : 0;
80 } 80 }
81 81
82 static inline Element* parentElement(LayoutObject& object) 82 static inline Element* parentElement(LayoutObject& object)
83 { 83 {
84 return toElement(object.node())->parentElement(); 84 return toElement(object.node())->parentElement();
85 } 85 }
86 86
87 static inline bool areRenderersElementsSiblings(LayoutObject& first, LayoutObjec t& second) 87 static inline bool areRenderersElementsSiblings(LayoutObject& first, LayoutObjec t& second)
88 { 88 {
89 return parentElement(first) == parentElement(second); 89 return parentElement(first) == parentElement(second);
90 } 90 }
91 91
92 // This function processes the renderer tree in the order of the DOM tree 92 // This function processes the renderer tree in the order of the DOM tree
93 // including pseudo elements as defined in CSS 2.1. 93 // including pseudo elements as defined in CSS 2.1.
94 static LayoutObject* nextInPreOrder(const LayoutObject& object, const Element* s tayWithin, bool skipDescendants = false) 94 static LayoutObject* nextInPreOrder(const LayoutObject& object, const Element* s tayWithin, bool skipDescendants = false)
95 { 95 {
96 Element* self = toElement(object.node()); 96 Element* self = toElement(object.node());
97 ASSERT(self); 97 ASSERT(self);
98 Element* next = skipDescendants ? ElementTraversal::nextIncludingPseudoSkipp ingChildren(*self, stayWithin) : ElementTraversal::nextIncludingPseudo(*self, st ayWithin); 98 Element* next = skipDescendants ? ElementTraversal::nextIncludingPseudoSkipp ingChildren(*self, stayWithin) : ElementTraversal::nextIncludingPseudo(*self, st ayWithin);
99 while (next && !next->renderer()) 99 while (next && !next->layoutObject())
100 next = skipDescendants ? ElementTraversal::nextIncludingPseudoSkippingCh ildren(*next, stayWithin) : ElementTraversal::nextIncludingPseudo(*next, stayWit hin); 100 next = skipDescendants ? ElementTraversal::nextIncludingPseudoSkippingCh ildren(*next, stayWithin) : ElementTraversal::nextIncludingPseudo(*next, stayWit hin);
101 return next ? next->renderer() : 0; 101 return next ? next->layoutObject() : 0;
102 } 102 }
103 103
104 static bool planCounter(LayoutObject& object, const AtomicString& identifier, bo ol& isReset, int& value) 104 static bool planCounter(LayoutObject& object, const AtomicString& identifier, bo ol& isReset, int& value)
105 { 105 {
106 // Real text nodes don't have their own style so they can't have counters. 106 // Real text nodes don't have their own style so they can't have counters.
107 // We can't even look at their styles or we'll see extra resets and incremen ts! 107 // We can't even look at their styles or we'll see extra resets and incremen ts!
108 if (object.isText() && !object.isBR()) 108 if (object.isText() && !object.isBR())
109 return false; 109 return false;
110 Node* generatingNode = object.generatingNode(); 110 Node* generatingNode = object.generatingNode();
111 // We must have a generating node or else we cannot have a counter. 111 // We must have a generating node or else we cannot have a counter.
112 if (!generatingNode) 112 if (!generatingNode)
113 return false; 113 return false;
114 const LayoutStyle& style = object.styleRef(); 114 const LayoutStyle& style = object.styleRef();
115 115
116 switch (style.styleType()) { 116 switch (style.styleType()) {
117 case NOPSEUDO: 117 case NOPSEUDO:
118 // Sometimes nodes have more then one renderer. Only the first one gets the counter 118 // Sometimes nodes have more then one renderer. Only the first one gets the counter
119 // LayoutTests/http/tests/css/counter-crash.html 119 // LayoutTests/http/tests/css/counter-crash.html
120 if (generatingNode->renderer() != &object) 120 if (generatingNode->layoutObject() != &object)
121 return false; 121 return false;
122 break; 122 break;
123 case BEFORE: 123 case BEFORE:
124 case AFTER: 124 case AFTER:
125 break; 125 break;
126 default: 126 default:
127 return false; // Counters are forbidden from all other pseudo elements. 127 return false; // Counters are forbidden from all other pseudo elements.
128 } 128 }
129 129
130 const CounterDirectives directives = style.getCounterDirectives(identifier); 130 const CounterDirectives directives = style.getCounterDirectives(identifier);
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
263 // counter being placed is attached to. 263 // counter being placed is attached to.
264 if (currentCounter) { 264 if (currentCounter) {
265 // We found a suitable counter. 265 // We found a suitable counter.
266 if (previousSiblingProtector) { 266 if (previousSiblingProtector) {
267 // Since we had a suitable previous counter before, we shoul d only consider this one as our 267 // Since we had a suitable previous counter before, we shoul d only consider this one as our
268 // previousSibling if it is a reset counter and hence the cu rrent previousSibling is its child. 268 // previousSibling if it is a reset counter and hence the cu rrent previousSibling is its child.
269 if (currentCounter->actsAsReset()) { 269 if (currentCounter->actsAsReset()) {
270 previousSiblingProtector = currentCounter; 270 previousSiblingProtector = currentCounter;
271 // We are no longer interested in previous siblings of t he currentRenderer or their children 271 // We are no longer interested in previous siblings of t he currentRenderer or their children
272 // as counters they may have attached cannot be the prev ious sibling of the counter we are placing. 272 // as counters they may have attached cannot be the prev ious sibling of the counter we are placing.
273 currentRenderer = parentElement(*currentRenderer)->rende rer(); 273 currentRenderer = parentElement(*currentRenderer)->layou tObject();
274 continue; 274 continue;
275 } 275 }
276 } else { 276 } else {
277 previousSiblingProtector = currentCounter; 277 previousSiblingProtector = currentCounter;
278 } 278 }
279 currentRenderer = previousSiblingOrParent(*currentRenderer); 279 currentRenderer = previousSiblingOrParent(*currentRenderer);
280 continue; 280 continue;
281 } 281 }
282 } 282 }
283 // This function is designed so that the same test is not done twice in an iteration, except for this one 283 // This function is designed so that the same test is not done twice in an iteration, except for this one
(...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after
603 fprintf(stderr, " "); 603 fprintf(stderr, " ");
604 fprintf(stderr, "%p N:%p P:%p PS:%p NS:%p C:%p\n", 604 fprintf(stderr, "%p N:%p P:%p PS:%p NS:%p C:%p\n",
605 current, current->node(), current->parent(), current->previousSiblin g(), 605 current, current->node(), current->parent(), current->previousSiblin g(),
606 current->nextSibling(), current->hasCounterNodeMap() ? 606 current->nextSibling(), current->hasCounterNodeMap() ?
607 counterName ? blink::counterMaps().get(current)->get(identifier) : ( blink::CounterNode*)1 : (blink::CounterNode*)0); 607 counterName ? blink::counterMaps().get(current)->get(identifier) : ( blink::CounterNode*)1 : (blink::CounterNode*)0);
608 } 608 }
609 fflush(stderr); 609 fflush(stderr);
610 } 610 }
611 611
612 #endif // NDEBUG 612 #endif // NDEBUG
OLDNEW
« no previous file with comments | « Source/core/layout/LayoutBox.cpp ('k') | Source/core/layout/LayoutDeprecatedFlexibleBox.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698