OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1997 Martin Jones (mjones@kde.org) | 2 * Copyright (C) 1997 Martin Jones (mjones@kde.org) |
3 * (C) 1997 Torben Weis (weis@kde.org) | 3 * (C) 1997 Torben Weis (weis@kde.org) |
4 * (C) 1998 Waldo Bastian (bastian@kde.org) | 4 * (C) 1998 Waldo Bastian (bastian@kde.org) |
5 * (C) 1999 Lars Knoll (knoll@kde.org) | 5 * (C) 1999 Lars Knoll (knoll@kde.org) |
6 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 6 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
7 * Copyright (C) 2003, 2004, 2005, 2006, 2010 Apple Inc. All rights reserved. | 7 * Copyright (C) 2003, 2004, 2005, 2006, 2010 Apple Inc. All rights reserved. |
8 * | 8 * |
9 * This library is free software; you can redistribute it and/or | 9 * This library is free software; you can redistribute it and/or |
10 * modify it under the terms of the GNU Library General Public | 10 * modify it under the terms of the GNU Library General Public |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
60 } | 60 } |
61 | 61 |
62 int HTMLTableCellElement::rowSpan() const | 62 int HTMLTableCellElement::rowSpan() const |
63 { | 63 { |
64 const AtomicString& rowSpanValue = fastGetAttribute(rowspanAttr); | 64 const AtomicString& rowSpanValue = fastGetAttribute(rowspanAttr); |
65 return max(1, min(rowSpanValue.toInt(), maxRowspan)); | 65 return max(1, min(rowSpanValue.toInt(), maxRowspan)); |
66 } | 66 } |
67 | 67 |
68 int HTMLTableCellElement::cellIndex() const | 68 int HTMLTableCellElement::cellIndex() const |
69 { | 69 { |
70 int index = 0; | 70 if (!isHTMLTableRowElement(parentElement())) |
71 if (!parentElement() || !parentElement()->hasTagName(trTag)) | |
72 return -1; | 71 return -1; |
73 | 72 |
74 for (const Node * node = previousSibling(); node; node = node->previousSibli
ng()) { | 73 int index = 0; |
75 if (node->hasTagName(tdTag) || node->hasTagName(thTag)) | 74 for (const HTMLTableCellElement* element = Traversal<HTMLTableCellElement>::
previousSibling(*this); element; element = Traversal<HTMLTableCellElement>::prev
iousSibling(*element)) |
76 index++; | 75 ++index; |
77 } | |
78 | 76 |
79 return index; | 77 return index; |
80 } | 78 } |
81 | 79 |
82 bool HTMLTableCellElement::isPresentationAttribute(const QualifiedName& name) co
nst | 80 bool HTMLTableCellElement::isPresentationAttribute(const QualifiedName& name) co
nst |
83 { | 81 { |
84 if (name == nowrapAttr || name == widthAttr || name == heightAttr) | 82 if (name == nowrapAttr || name == widthAttr || name == heightAttr) |
85 return true; | 83 return true; |
86 return HTMLTablePartElement::isPresentationAttribute(name); | 84 return HTMLTablePartElement::isPresentationAttribute(name); |
87 } | 85 } |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
170 | 168 |
171 RenderTableCell* tableCellRenderer = toRenderTableCell(cellRenderer); | 169 RenderTableCell* tableCellRenderer = toRenderTableCell(cellRenderer); |
172 RenderTableCell* cellAboveRenderer = tableCellRenderer->table()->cellAbove(t
ableCellRenderer); | 170 RenderTableCell* cellAboveRenderer = tableCellRenderer->table()->cellAbove(t
ableCellRenderer); |
173 if (!cellAboveRenderer) | 171 if (!cellAboveRenderer) |
174 return 0; | 172 return 0; |
175 | 173 |
176 return toHTMLTableCellElement(cellAboveRenderer->node()); | 174 return toHTMLTableCellElement(cellAboveRenderer->node()); |
177 } | 175 } |
178 | 176 |
179 } // namespace WebCore | 177 } // namespace WebCore |
OLD | NEW |