Home | History | Annotate | Download | only in rendering

Lines Matching full:cell

84     // recalc cell info because RenderTable has unguarded pointers
105 // If beforeChild is inside an anonymous cell/row, insert into the cell or into
167 emptyCellStruct.cell = 0;
181 void RenderTableSection::addCell(RenderTableCell* cell, RenderTableRow* row)
183 int rSpan = cell->rowSpan();
184 int cSpan = cell->colSpan();
189 // (see the annotation on table cell layouting in the CSS specs and the testcase below:
195 while (m_cCol < nCols && (cellAt(m_cRow, m_cCol).cell || cellAt(m_cRow, m_cCol).inColSpan))
200 Length height = cell->style()->height();
228 // tell the cell where it is
230 currentCell.cell = cell;
245 if (!c.cell)
246 c.cell = currentCell.cell;
252 currentCell.cell = 0;
255 cell->setRow(m_cRow);
256 cell->setCol(table()->effColToCol(col));
280 RenderTableCell* cell = current.cell;
282 if (!cell)
285 int cspan = cell->colSpan();
298 int oldWidth = cell->width();
300 if (w != oldWidth || (visibleWidth > 0 && visibleWidth != cell->getVisibleWidth())) {
304 cell->setNeedsLayout(true);
305 if (!table()->selfNeedsLayout() && cell->checkForRepaintDuringLayout()) {
311 cell->repaint();
316 cell->updateWidth(w);
341 RenderTableCell* cell;
365 cell = current.cell;
366 if (!cell || current.inColSpan)
368 if (r < m_gridRows - 1 && cellAt(r + 1, c).cell == cell)
371 int indx = max(r - cell->rowSpan() + 1, 0);
373 if (cell->overrideSize() != -1) {
379 cell->setOverrideSize(-1);
380 cell->setChildNeedsLayout(true, false);
381 cell->layoutIfNeeded();
384 int adjustedPaddingTop = cell->paddingTop() - cell->intrinsicPaddingTop();
385 int adjustedPaddingBottom = cell->paddingBottom() - cell->intrinsicPaddingBottom();
386 int adjustedHeight = cell->height() - (cell->intrinsicPaddingTop() + cell->intrinsicPaddingBottom());
390 ch = cell->style()->height().calcValue(0) +
391 (cell->style()->htmlHacks() ? 0 : (adjustedPaddingTop + adjustedPaddingBottom +
392 cell->borderTop() + cell->borderBottom()));
400 EVerticalAlign va = cell->style()->verticalAlign();
402 int b = cell->baselinePosition();
403 if (b > cell->borderTop() + cell->paddingTop()) {
404 baseline = max(baseline, b - cell->intrinsicPaddingTop());
405 bdesc = max(bdesc, m_rowPos[indx] + ch - (b - cell->intrinsicPaddingTop()));
466 RenderTableCell* cell = current.cell;
468 if (!cell || current.inColSpan)
470 if (r > 0 && (cellAt(r-1, c).cell == cell))
473 // cell->setCellTopExtra(0);
474 // cell->setCellBottomExtra(0);
476 int oldCellX = cell->x();
477 int oldCellY = cell->y();
480 cell->setX(table()->width());
481 cell->setY(rHeight);
483 cell->setX(leftOffset);
484 cell->setY(rHeight);
487 // If the cell moved, we have to repaint it as well as any floating/positioned
489 // repaint ourselves (and the cell) anyway.
490 if (!table()->selfNeedsLayout() && cell->checkForRepaintDuringLayout()) {
491 cell->borderTopExtra() , cell->width(), cell->height());
492 IntRect cellRect(oldCellX, oldCellY, cell->width(), cell->height());
493 cell->repaintDuringLayoutIfMoved(cellRect);
495 rHeight += cell->height() + vspacing;
587 RenderTableCell* cell = cellAt(r, c).cell;
589 if (!cell)
591 if (r < totalRows - 1 && cell == cellAt(r + 1, c).cell)
594 rindx = max(0, r - cell->rowSpan() + 1);
599 // This will cause these children to grow to fill the cell.
604 // new height of the cell (thus letting the percentages cause growth one
612 bool flexAllChildren = cell->style()->height().isFixed() ||
613 (!table()->style()->height().isAuto() && rHeight != cell->height());
615 for (RenderObject* o = cell->firstChild(); o; o = o->nextSibling()) {
625 if (HashSet<RenderBox*>* percentHeightDescendants = cell->percentHeightDescendants()) {
632 while (box != cell) {
646 cell->setChildNeedsLayout(true, false);
647 // Alignment within a cell is based off the calculated
648 // height, which becomes irrelevant once the cell has
650 cell->setOverrideSize(max(0,
651 rHeight - cell->borderTop() - cell->paddingTop() -
652 cell->borderBottom() - cell->paddingBottom()));
653 cell->layoutIfNeeded();
656 EVerticalAlign va = cell->style()->verticalAlign();
658 int b = cell->baselinePosition();
659 if (b > cell->borderTop() + cell->paddingTop())
664 int oldTe = cell->intrinsicPaddingTop();
665 int oldBe = cell->intrinsicPaddingBottom();
666 int heightWithoutIntrinsicPadding = cell->height() - oldTe - oldBe;
669 switch (cell->style()->verticalAlign()) {
675 int b = cell->baselinePosition();
676 if (b > cell->borderTop() + cell->paddingTop())
694 cell->setIntrinsicPaddingTop(te);
695 cell->setIntrinsicPaddingBottom(be);
697 cell->setNeedsLayout(true, false);
698 cell->layoutIfNeeded();
701 if ((te != oldTe || be > oldBe) && !table()->selfNeedsLayout() && cell->checkForRepaintDuringLayout())
702 cell->repaint();
704 IntRect oldCellRect(cell->x(), cell->y() , cell->width(), cell->height());
707 cell->setLocation(table()->columnPositions()[nEffCols] - table()->columnPositions()[table()->colToEffCol(cell->col() + cell->colSpan())] + hspacing, m_rowPos[rindx]);
709 cell->setLocation(table()->columnPositions()[c] + hspacing, m_rowPos[rindx]);
711 // If the cell moved, we have to repaint it as well as any floating/positioned
713 // repaint ourselves (and the cell) anyway.
714 if (!table()->selfNeedsLayout() && cell->checkForRepaintDuringLayout())
715 cell->repaintDuringLayoutIfMoved(oldCellRect);
730 RenderTableCell* cell = cellAt(r, c).cell;
731 if (!cell)
733 if (r < totalRows - 1 && cell == cellAt(r + 1, c).cell)
735 addOverflowFromChild(cell);
736 m_hasOverflowingCell |= cell->hasVisibleOverflow();
753 RenderTableCell* cell = toRenderTableCell(curr);
754 bottom = max(bottom, cell->y() + cell->lowestPosition(false));
771 RenderTableCell* cell = toRenderTableCell(curr);
772 right = max(right, cell->x() + cell->rightmostPosition(false));
789 RenderTableCell* cell = toRenderTableCell(curr);
790 left = min(left, cell->x() + cell->leftmostPosition(false));
821 if (current.inColSpan || !current.cell)
823 const BorderValue& cb = current.cell->style()->borderTop();
874 if (current.inColSpan || !current.cell)
876 const BorderValue& cb = current.cell->style()->borderBottom();
931 if (!current.cell)
933 // FIXME: Don't repeat for the same cell
934 const BorderValue& cb = current.cell->style()->borderLeft();
935 const BorderValue& rb = current.cell->parent()->style()->borderLeft();
978 if (!current.cell)
980 // FIXME: Don't repeat for the same cell
981 const BorderValue& cb = current.cell->style()->borderRight();
982 const BorderValue& rb = current.cell->parent()->style()->borderRight();
1019 RenderTableCell* cell = firstRow->at(i).cell;
1020 if (cell)
1021 firstLineBaseline = max(firstLineBaseline, cell->y() + cell->paddingTop() + cell->borderTop() + cell->contentHeight());
1085 // If some cell overflows, just paint all of them.
1128 // since a cell can be -1 (indicating a colspan) we might have to search backwards to include it
1133 RenderTableCell* cell = current.cell;
1137 // if we've already seen the cell.
1138 if (!cell || (r > startrow && (cellAt(r - 1, c).cell == cell)))
1141 RenderTableRow* row = toRenderTableRow(cell->parent());
1145 // the column group, column, row group, row, and then the cell.
1154 // Note that we deliberately ignore whether or not the cell has a layer, since these backgrounds paint "behind" the
1155 // cell.
1156 cell->paintBackgroundsBehindCell(paintInfo, tx, ty, colGroup);
1157 cell->paintBackgroundsBehindCell(paintInfo, tx, ty, col);
1160 cell->paintBackgroundsBehindCell(paintInfo, tx, ty, this);
1163 // painting the row background for the cell.
1165 cell->paintBackgroundsBehindCell(paintInfo, tx, ty, row);
1168 if ((!cell->hasSelfPaintingLayer() && !row->hasSelfPaintingLayer()) || paintInfo.phase == PaintPhaseCollapsedTableBorders)
1169 cell->paint(paintInfo, tx, ty);
1199 for (RenderObject* cell = row->firstChild(); cell; cell = cell->nextSibling()) {
1200 if (cell->isTableCell())
1201 addCell(toRenderTableCell(cell), tableRow);
1222 const CellStruct& cell = cellAt(r, c);
1223 if (cell.cell || cell.inColSpan)
1236 c.cell = 0;
1249 r[pos + 1].cell = 0;
1250 r[pos + 1].inColSpan = r[pos].inColSpan || r[pos].cell;