#ifndef ROWPAINTER_H
#define ROWPAINTER_H
-#include "Bidi.h"
#include "Changes.h"
+#include "Row.h"
#include "support/types.h"
class Paragraph;
class ParagraphList;
class ParagraphMetrics;
-class Row;
class Text;
class TextMetrics;
namespace frontend { class Painter; }
-/**
- * FIXME: Re-implement row painting using row elements.
- *
- * This is not difficult in principle, but the code is intricate and
- * needs some careful analysis. The first thing that needs to be done
- * is to break row elements with the same criteria. Currently breakRow
- * does not consider on-the-fly spell-checking, but it is not clear to
- * me that it is required. Moreover, this thing would only work if we
- * are sure that the Row object is up-to-date when drawing happens.
- * This depends on the update machinery.
- *
- * This would allow to get rid of the Bidi class.
- */
-
-
/**
* A class used for painting an individual row of text.
* FIXME: get rid of that class.
void paintFirst() const;
void paintLast();
void paintText();
- void paintText2();
void paintOnlyInsets();
void paintSelection() const;
private:
void paintSeparator(double width, Font const & font);
void paintForeignMark(double orig_x, Language const * lang, int desc = 0) const;
- void paintStringAndSel(docstring const & str, Font const & font,
- Change const & change,
- pos_type start_pos, pos_type end_pos);
- void paintMisspelledMark(double orig_x,
- docstring const & str, Font const & font,
- pos_type pos, bool changed) const;
+ void paintStringAndSel(Row::Element const & e);
+ void paintMisspelledMark(double orig_x, Row::Element const & e) const;
void paintChange(double orig_x , Font const & font, Change const & change) const;
- int paintAppendixStart(int y) const;
- void paintFromPos(pos_type & vpos, bool changed);
- void paintInset(Inset const * inset, pos_type const pos);
- void paintInlineCompletion(Font const & font);
-
- /// return left margin
- int leftMargin() const;
+ void paintAppendixStart(int y) const;
+ void paintInset(Inset const * inset, Font const & font,
+ Change const & change, pos_type const pos);
/// return the label font for this row
FontInfo labelFont() const;
Paragraph const & par_;
ParagraphMetrics const & pm_;
- /// bidi cache
- Bidi bidi_;
-
/// row changed? (change tracking)
Change const change_;