| 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 |