| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2008 Apple Inc. All rights reserved. | 2 * Copyright (C) 2008 Apple Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * | 7 * |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 45 | 45 |
| 46 AXTableColumn::~AXTableColumn() | 46 AXTableColumn::~AXTableColumn() |
| 47 { | 47 { |
| 48 } | 48 } |
| 49 | 49 |
| 50 PassRefPtr<AXTableColumn> AXTableColumn::create(AXObjectCacheImpl* axObjectCache
) | 50 PassRefPtr<AXTableColumn> AXTableColumn::create(AXObjectCacheImpl* axObjectCache
) |
| 51 { | 51 { |
| 52 return adoptRef(new AXTableColumn(axObjectCache)); | 52 return adoptRef(new AXTableColumn(axObjectCache)); |
| 53 } | 53 } |
| 54 | 54 |
| 55 |
| 55 void AXTableColumn::setParent(AXObject* parent) | 56 void AXTableColumn::setParent(AXObject* parent) |
| 56 { | 57 { |
| 57 AXMockObject::setParent(parent); | 58 AXMockObject::setParent(parent); |
| 58 | 59 |
| 59 clearChildren(); | 60 clearChildren(); |
| 60 } | 61 } |
| 61 | 62 |
| 62 LayoutRect AXTableColumn::elementRect() const | 63 LayoutRect AXTableColumn::elementRect() const |
| 63 { | 64 { |
| 64 // this will be filled in when addChildren is called | 65 // this will be filled in when addChildren is called |
| 65 return m_columnRect; | 66 return m_columnRect; |
| 66 } | 67 } |
| 67 | 68 |
| 69 void AXTableColumn::headerObjectsForColumn(AccessibilityChildrenVector& headers) |
| 70 { |
| 71 if (!m_parent) |
| 72 return; |
| 73 |
| 74 RenderObject* renderer = m_parent->renderer(); |
| 75 if (!renderer || !renderer->isTable()) |
| 76 return; |
| 77 |
| 78 RenderTable* table = toRenderTable(renderer); |
| 79 RenderTableSection* tableSection = table->topSection(); |
| 80 for (; tableSection; tableSection = table->sectionBelow(tableSection, SkipEm
ptySections)) { |
| 81 unsigned numRows = tableSection->numRows(); |
| 82 for (unsigned r = 0; r < numRows; r++) { |
| 83 RenderTableCell* renderCell = tableSection->primaryCellAt(r, m_colum
nIndex); |
| 84 if (!renderCell) |
| 85 continue; |
| 86 |
| 87 // Whenever cell's col is less then current column index, we've foun
d the cell with colspan. |
| 88 // We do not need to add this cell, it's already been added. |
| 89 if (renderCell->col() < m_columnIndex) |
| 90 continue; |
| 91 |
| 92 AXObject* cell = axObjectCache()->getOrCreate(renderCell->node()); |
| 93 if (!cell) |
| 94 continue; |
| 95 |
| 96 if (toAXTableCell(cell)->scanToDecideHeaderRole() == ColumnHeaderRol
e) |
| 97 headers.append(cell); |
| 98 } |
| 99 } |
| 100 } |
| 101 |
| 68 AXObject* AXTableColumn::headerObject() | 102 AXObject* AXTableColumn::headerObject() |
| 69 { | 103 { |
| 70 if (!m_parent) | 104 if (!m_parent) |
| 71 return 0; | 105 return 0; |
| 72 | 106 |
| 73 RenderObject* renderer = m_parent->renderer(); | 107 RenderObject* renderer = m_parent->renderer(); |
| 74 if (!renderer) | 108 if (!renderer) |
| 75 return 0; | 109 return 0; |
| 76 | 110 |
| 77 if (!m_parent->isAXTable()) | 111 if (!m_parent->isAXTable()) |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 176 // make sure the last one isn't the same as this one (rowspan cells) | 210 // make sure the last one isn't the same as this one (rowspan cells) |
| 177 if (m_children.size() > 0 && m_children.last() == cell) | 211 if (m_children.size() > 0 && m_children.last() == cell) |
| 178 continue; | 212 continue; |
| 179 | 213 |
| 180 m_children.append(cell); | 214 m_children.append(cell); |
| 181 m_columnRect.unite(cell->elementRect()); | 215 m_columnRect.unite(cell->elementRect()); |
| 182 } | 216 } |
| 183 } | 217 } |
| 184 | 218 |
| 185 } // namespace blink | 219 } // namespace blink |
| OLD | NEW |