* \author various
* \author John Levon
*
- * Full author contact details are available in file CREDITS
+ * Full author contact details are available in file CREDITS.
*/
#include <config.h>
int RowPainter::singleWidth(lyx::pos_type pos, char c) const
{
- return text_.singleWidth(pit_, pos, c);
+ LyXFont const & font = text_.getFont(pit_, pos);
+ return text_.singleWidth(pit_, pos, c, font);
}
y_top += paintLengthMarker(_("Space above"), parparams.spaceTop(),
yo_ + y_top);
- Buffer const * buffer = bv_.buffer();
+ Buffer const & buffer = *bv_.buffer();
LyXLayout_ptr const & layout = pit_->layout();
- if (buffer->params.paragraph_separation == BufferParams::PARSEP_SKIP) {
+ if (buffer.params.paragraph_separation == BufferParams::PARSEP_SKIP) {
if (pit_ != text_.ownerParagraphs().begin()) {
if (layout->latextype == LATEX_PARAGRAPH
&& !pit_->getDepth()) {
- y_top += buffer->params.getDefSkip().inPixels(bv_);
+ y_top += buffer.params.getDefSkip().inPixels(bv_);
} else {
LyXLayout_ptr const & playout =
boost::prior(pit_)->layout();
if (playout->latextype == LATEX_PARAGRAPH
&& !boost::prior(pit_)->getDepth()) {
// is it right to use defskip here, too? (AS)
- y_top += buffer->params.getDefSkip().inPixels(bv_);
+ y_top += buffer.params.getDefSkip().inPixels(bv_);
}
}
}
// printed in an extra row and has a pagebreak at
// the top.
if (layout->labeltype == LABEL_COUNTER_CHAPTER) {
- if (buffer->params.secnumdepth >= 0) {
+ if (buffer.params.secnumdepth >= 0) {
float spacing_val = 1.0;
if (!parparams.spacing().isDefault()) {
spacing_val = parparams.spacing().getValue();
} else {
- spacing_val = buffer->params.spacing.getValue();
+ spacing_val = buffer.params.spacing.getValue();
}
int const maxdesc =
if (!parparams.spacing().isDefault()) {
spacing_val = parparams.spacing().getValue();
} else {
- spacing_val = buffer->params.spacing.getValue();
+ spacing_val = buffer.params.spacing.getValue();
}
int maxdesc =
void RowPainter::paint()
{
- width_ = text_.workWidth();
-
- // FIXME: must be a cleaner way here. Aren't these calculations
- // belonging to row metrics ?
- text_.prepareToPrint(pit_, row_, x_, separator_, hfill_, label_hfill_);
+ width_ = text_.workWidth();
+ x_ = row_->x();
+ separator_ = row_->fill_separator();
+ hfill_ = row_->fill_hfill();
+ label_hfill_ = row_->fill_label_hfill();
// FIXME: what is this fixing ?
if (text_.isInInset() && x_ < 0)
ParagraphList::iterator pit, RowList::iterator rit,
int xo, int y, int yf, int yo)
{
- lyxerr << " paintRows: rit: " << &*rit << endl;
- const_cast<LyXText&>(text).updateRowPositions();
+ //lyxerr << " paintRows: rit: " << &*rit << endl;
+ //const_cast<LyXText&>(text).updateRowPositions();
int const yy = yf - y;
int const y2 = bv.painter().paperHeight();
-
+
ParagraphList::iterator end = text.ownerParagraphs().end();
bool active = false;
if (row == rit)
active = true;
if (active) {
- RowPainter painter(bv, text, pit, row, y + yo, xo, y + text.top_y());
+ RowPainter painter(bv, text, pit, row, y + yo, xo, y + bv.top_y());
painter.paint();
y += row->height();
if (yy + y >= y2)
return y;
}
-
} // namespace anon
-int paintText(BufferView & bv, LyXText & text)
+int paintText(BufferView & bv)
{
- int const topy = text.top_y();
- int y_text = topy;
+ int const topy = bv.top_y();
ParagraphList::iterator pit;
- RowList::iterator rit = text.getRowNearY(y_text, pit);
- int y = y_text - topy;
- return paintRows(bv, text, pit, rit, 0, y, y, 0);
+ RowList::iterator rit = bv.text->getRowNearY(topy, pit);
+ int y = rit->y() - topy;
+ return paintRows(bv, *bv.text, pit, rit, 0, y, y, 0);
}
y += rit->height();
text.nextRow(pit, rit);
}
- if (y_offset < 0) {
- text.top_y(-y_offset);
+ if (y_offset < 0)
paintRows(bv, text, pit, rit, x, 0, y, y);
- } else {
- text.top_y(y - y_offset);
+ else
paintRows(bv, text, pit, rit, x, 0, y_offset, y_offset);
- }
}
else
return max(min_size, space_size);
}
-
-