X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Frowpainter.C;h=f4485f889b47d4a8b535e3c04ec050bf90c315f1;hb=3c851f1f7951f3a24b57826f3e580e4318b5e6c4;hp=c1cecb6351d256d12250b48b64f6f9fab0fc4092;hpb=a2cd656e256fa50aec3f03851b63a4bc6cdd666d;p=lyx.git diff --git a/src/rowpainter.C b/src/rowpainter.C index c1cecb6351..f4485f889b 100644 --- a/src/rowpainter.C +++ b/src/rowpainter.C @@ -58,7 +58,7 @@ class RowPainter { public: /// initialise and run painter RowPainter(PainterInfo & pi, LyXText const & text, - pit_type pit, Row & row, int x, int y); + pit_type pit, Row const & row, int x, int y); // paint various parts void paintAppendix(); @@ -101,7 +101,7 @@ private: ParagraphList & pars_; /// The row to paint - Row & row_; + Row const & row_; /// Row's paragraph pit_type const pit_; @@ -119,7 +119,7 @@ private: RowPainter::RowPainter(PainterInfo & pi, - LyXText const & text, pit_type pit, Row & row, int x, int y) + LyXText const & text, pit_type pit, Row const & row, int x, int y) : bv_(*pi.base.bv), pain_(pi.pain), text_(text), pars_(text.paragraphs()), row_(row), pit_(pit), par_(text.paragraphs()[pit]), xo_(x), yo_(y), width_(text_.width()) @@ -178,7 +178,7 @@ void RowPainter::paintInset(pos_type const pos) PainterInfo pi(const_cast(&bv_), pain_); pi.base.font = getFont(pos); pi.ltr_pos = (text_.bidi.level(pos) % 2 == 0); - theCoords.insets_.add(inset, int(x_), yo_); + theCoords.insets().add(inset, int(x_), yo_); inset->drawSelection(pi, int(x_), yo_); inset->draw(pi, int(x_), yo_); x_ += inset->width(); @@ -509,13 +509,15 @@ void RowPainter::paintFirst() // the top. if (layout->counter == "chapter") { if (buffer.params().secnumdepth >= 0) { - float spacing_val = 1.0; + double spacing_val = 1.0; if (!parparams.spacing().isDefault()) { spacing_val = parparams.spacing().getValue(); } else { spacing_val = buffer.params().spacing().getValue(); } -#warning Look is this correct? +#ifdef WITH_WARNINGS +#warning Look is this correct? +#endif int const labeladdon = int(font_metrics::maxHeight(font) * layout->spacing.getValue() * spacing_val); int const maxdesc = int(font_metrics::maxDescent(font) * layout->spacing.getValue() * spacing_val) @@ -550,7 +552,7 @@ void RowPainter::paintFirst() LyXFont font = getLabelFont(); if (!par_.getLabelstring().empty()) { string const str = par_.getLabelstring(); - float spacing_val = 1.0; + double spacing_val = 1.0; if (!parparams.spacing().isDefault()) { spacing_val = parparams.spacing().getValue(); } else { @@ -662,7 +664,7 @@ void RowPainter::paintText() // if we reach the end of a struck out range, paint it // we also don't paint across things like tables if (running_strikeout && (highly_editable_inset || !is_struckout)) { - // FIXME this should take real text height into account, not + // FIXME this should take real text height into account, not // the whole row including padding whitespace //int const middle = yo_ + (- row_.ascent() + row_.top_of_text()) / 2; int const middle = yo_ - row_.ascent() / 2; @@ -733,20 +735,20 @@ void paintPar static NullPainter nop; static PainterInfo nullpi(pi.base.bv, nop); int const ww = pi.base.bv->workHeight(); - + Paragraph & par = text.paragraphs()[pit]; - RowList::iterator const rb = par.rows().begin(); - RowList::iterator const re = par.rows().end(); - theCoords.pars_[&text][pit] = Point(x, y); + RowList::const_iterator const rb = par.rows().begin(); + RowList::const_iterator const re = par.rows().end(); + theCoords.parPos()[&text][pit] = Point(x, y); y -= rb->ascent(); - for (RowList::iterator rit = rb; rit != re; ++rit) { + for (RowList::const_iterator rit = rb; rit != re; ++rit) { y += rit->ascent(); bool const inside = (y + rit->descent() >= 0 && y - rit->ascent() < ww); RowPainter rp(inside ? pi : nullpi, text, pit, *rit, x, y); - + y += rit->descent(); rp.paintAppendix(); rp.paintDepthBar(); @@ -783,7 +785,7 @@ void paintText(BufferView const & bv, ViewMetricsInfo const & vi) paintPar(pi, *bv.text(), pit, 0, yy); yy += text->getPar(pit).descent(); } - + // paint one paragraph above and one below if (vi.p1 > 0) { @@ -792,19 +794,19 @@ void paintText(BufferView const & bv, ViewMetricsInfo const & vi) vi.y1 - text->getPar(vi.p1 - 1).descent()); } - if (vi.p2 < text->paragraphs().size() - 1) { + if (vi.p2 < lyx::pit_type(text->paragraphs().size()) - 1) { text->redoParagraph(vi.p2 + 1); paintPar(pi, *bv.text(), vi.p2 + 1, 0, vi.y2 + text->getPar(vi.p2 + 1).ascent()); } // and grey out above (should not happen later) - lyxerr << "par ascent: " << text->getPar(vi.p1).ascent() << endl; +// lyxerr << "par ascent: " << text->getPar(vi.p1).ascent() << endl; if (vi.y1 > 0) pain.fillRectangle(0, 0, bv.workWidth(), vi.y1, LColor::bottomarea); // and possibly grey out below - lyxerr << "par descent: " << text->getPar(vi.p1).ascent() << endl; +// lyxerr << "par descent: " << text->getPar(vi.p1).ascent() << endl; if (vi.y2 < bv.workHeight()) pain.fillRectangle(0, vi.y2, bv.workWidth(), bv.workHeight() - vi.y2, LColor::bottomarea); }