#include "rowpainter.h"
#include "lyxrc.h"
#include "lyxrow_funcs.h"
+#include "metricsinfo.h"
using std::max;
using lyx::pos_type;
LyXFont const RowPainter::getLabelFont() const
{
- return text_.getLabelFont(bv_.buffer(), &*pit_);
+ return text_.getLabelFont(bv_.buffer(), pit_);
}
lyx::Assert(inset);
- LyXFont const & font = getFont(pos);
-
#warning inset->update FIXME
inset->update(perv(bv_), false);
- inset->draw(perv(bv_), font, yo_ + row_->baseline(), x_);
+ PainterInfo pi(perv(bv_));
+ pi.base.font = getFont(pos);
+ int const w = inset->width(perv(bv_), pi.base.font);
+ inset->draw(pi, int(x_), yo_ + row_->baseline());
+ x_ += w;
}
LyXLayout_ptr const & layout = pit_->layout();
if (buffer->params.paragraph_separation == BufferParams::PARSEP_SKIP) {
- if (pit_->previous()) {
+ if (pit_ != text_.ownerParagraphs().begin()) {
if (layout->latextype == LATEX_PARAGRAPH
&& !pit_->getDepth()) {
y_top += buffer->params.getDefSkip().inPixels(bv_);
if (layout->labeltype >= LABEL_STATIC
&& (layout->labeltype != LABEL_STATIC
|| layout->latextype != LATEX_ENVIRONMENT
- || isFirstInSequence(&*pit_))) {
+ || isFirstInSequence(pit_, text_.ownerParagraphs()))) {
LyXFont font = getLabelFont();
if (!pit_->getLabelstring().empty()) {
// the labels at the top of an environment.
// More or less for bibliography
- } else if (isFirstInSequence(&*pit_) &&
+ } else if (isFirstInSequence(pit_, text_.ownerParagraphs()) &&
(layout->labeltype == LABEL_TOP_ENVIRONMENT ||
layout->labeltype == LABEL_BIBLIO ||
layout->labeltype == LABEL_CENTERED_TOP_ENVIRONMENT)) {
}
bool const is_rtl = pit_->isRightToLeftPar(bv_.buffer()->params);
- int const endlabel = getEndLabel(&*pit_);
+ int const endlabel = getEndLabel(pit_, text_.ownerParagraphs());
// draw an endlabel
switch (endlabel) {