void RenderView::calcPrefWidths() { ASSERT(prefWidthsDirty()); RenderBlock::calcPrefWidths(); m_maxPrefWidth = m_minPrefWidth; }
void RenderScrollbarPart::calcPrefWidths() { if (!prefWidthsDirty()) return; m_minPrefWidth = m_maxPrefWidth = 0; setPrefWidthsDirty(false); }
void RenderReplaced::calcPrefWidths() { ASSERT(prefWidthsDirty()); int width = calcReplacedWidth() + paddingLeft() + paddingRight() + borderLeft() + borderRight(); if (style()->width().isPercent() || (style()->width().isAuto() && style()->height().isPercent())) { m_minPrefWidth = 0; m_maxPrefWidth = width; } else m_minPrefWidth = m_maxPrefWidth = width; setPrefWidthsDirty(false); }
void RenderSVGRoot::calcPrefWidths() { ASSERT(prefWidthsDirty()); int paddingAndBorders = paddingLeft() + paddingRight() + borderLeft() + borderRight(); int width = calcReplacedWidth(false) + paddingAndBorders; if (style()->maxWidth().isFixed() && style()->maxWidth().value() != undefinedLength) width = min(width, style()->maxWidth().value() + (style()->boxSizing() == CONTENT_BOX ? paddingAndBorders : 0)); if (style()->width().isPercent() || (style()->width().isAuto() && style()->height().isPercent())) { m_minPrefWidth = 0; m_maxPrefWidth = width; } else m_minPrefWidth = m_maxPrefWidth = width; setPrefWidthsDirty(false); }
void RenderReplaced::calcPrefWidths() { ASSERT(prefWidthsDirty()); int borderAndPadding = borderAndPaddingWidth(); int width = calcReplacedWidth(false) + borderAndPadding; if (style()->maxWidth().isFixed() && style()->maxWidth().value() != undefinedLength) width = min(width, style()->maxWidth().value() + (style()->boxSizing() == CONTENT_BOX ? borderAndPadding : 0)); if (style()->width().isPercent() || (style()->width().isAuto() && style()->height().isPercent())) { m_minPrefWidth = 0; m_maxPrefWidth = width; } else m_minPrefWidth = m_maxPrefWidth = width; setPrefWidthsDirty(false); }
void RenderListMarker::layout() { ASSERT(needsLayout()); ASSERT(!prefWidthsDirty()); if (isImage()) { m_width = m_image->image()->width(); m_height = m_image->image()->height(); } else { m_width = minPrefWidth(); m_height = style()->font().height(); } m_marginLeft = m_marginRight = 0; Length leftMargin = style()->marginLeft(); Length rightMargin = style()->marginRight(); if (leftMargin.isFixed()) m_marginLeft = leftMargin.value(); if (rightMargin.isFixed()) m_marginRight = rightMargin.value(); setNeedsLayout(false); }
void RenderListMarker::calcPrefWidths() { ASSERT(prefWidthsDirty()); m_text = ""; if (isImage()) { m_minPrefWidth = m_maxPrefWidth = m_image->image()->width(); setPrefWidthsDirty(false); updateMargins(); return; } const Font& font = style()->font(); int width = 0; EListStyleType type = style()->listStyleType(); switch (type) { case LNONE: break; case CIRCLE: case DISC: case SQUARE: m_text = listMarkerText(type, 0); // value is ignored for these types width = (font.ascent() * 2 / 3 + 1) / 2 + 2; break; case ARMENIAN: case CJK_IDEOGRAPHIC: case DECIMAL_LEADING_ZERO: case GEORGIAN: case HEBREW: case HIRAGANA: case HIRAGANA_IROHA: case KATAKANA: case KATAKANA_IROHA: case LDECIMAL: case LOWER_ALPHA: case LOWER_GREEK: case LOWER_LATIN: case LOWER_ROMAN: case UPPER_ALPHA: case UPPER_LATIN: case UPPER_ROMAN: m_text = listMarkerText(type, m_listItem->value()); if (m_text.isEmpty()) width = 0; else { int itemWidth = font.width(m_text); const UChar periodSpace[2] = { '.', ' ' }; int periodSpaceWidth = font.width(TextRun(periodSpace, 2)); width = itemWidth + periodSpaceWidth; } break; } m_minPrefWidth = width; m_maxPrefWidth = width; setPrefWidthsDirty(false); updateMargins(); }