void InlineBox::showBox(int printedCharacters) const { printedCharacters += fprintf(stderr, "%s\t%p", boxName(), this); for (; printedCharacters < showTreeCharacterOffset; printedCharacters++) fputc(' ', stderr); fprintf(stderr, "\t%s %p {pos=%g,%g size=%g,%g} baseline=%i/%i\n", renderer().renderName(), &renderer(), x(), y(), width(), height(), baselinePosition(AlphabeticBaseline), baselinePosition(IdeographicBaseline)); }
void InlineBox::showBox(int printedCharacters) const { printedCharacters += fprintf(stderr, "%s %p", boxName(), this); for (; printedCharacters < showTreeCharacterOffset; printedCharacters++) fputc(' ', stderr); fprintf(stderr, "\t%s %p {pos=%g,%g size=%g,%g} baseline=%i/%i\n", layoutObject().decoratedName().ascii().data(), &layoutObject(), x().toFloat(), y().toFloat(), width().toFloat(), height().toFloat(), baselinePosition(AlphabeticBaseline), baselinePosition(IdeographicBaseline)); }
IntRect SVGInlineTextBox::calculateBoundaries() const { FloatRect textRect; RenderText* textRenderer = this->textRenderer(); ASSERT(textRenderer); RenderStyle* style = textRenderer->style(); ASSERT(style); int baseline = baselinePosition(AlphabeticBaseline); int heightDifference = baseline - style->fontMetrics().ascent(); unsigned textFragmentsSize = m_textFragments.size(); for (unsigned i = 0; i < textFragmentsSize; ++i) { const SVGTextFragment& fragment = m_textFragments.at(i); FloatRect fragmentRect(fragment.x, fragment.y - baseline, fragment.width, fragment.height + heightDifference); if (!fragment.transform.isIdentity()) fragmentRect = fragment.transform.mapRect(fragmentRect); textRect.unite(fragmentRect); } return enclosingIntRect(textRect); }