#ifndef ROWPAINTER_H
#define ROWPAINTER_H
-#include "Changes.h"
#include "Row.h"
-#include "support/types.h"
-
namespace lyx {
-class BufferView;
-class Font;
-class FontInfo;
-class Inset;
-class Language;
class PainterInfo;
class Paragraph;
-class ParagraphList;
-class ParagraphMetrics;
class Text;
class TextMetrics;
-namespace frontend { class Painter; }
-
/**
* A class used for painting an individual row of text.
* FIXME: get rid of that class.
public:
/// initialise and run painter
RowPainter(PainterInfo & pi, Text const & text,
- pit_type pit, Row const & row, int x, int y);
+ Row const & row, int x, int y);
/// paint various parts
/// FIXME: transfer to TextMetrics
void paintChangeBar() const;
void paintTooLargeMarks(bool const left, bool const right) const;
void paintFirst() const;
- void paintLast();
+ void paintLast() const;
void paintText();
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(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;
+ void paintLanguageMarkings(Row::Element const & e) const;
+ void paintForeignMark(Row::Element const & e) const;
+ void paintNoSpellingMark(Row::Element const & e) const;
+ void paintStringAndSel(Row::Element const & e) const;
+ void paintTextDecoration(Row::Element const & e) const;
+ void paintMisspelledMark(Row::Element const & e) const;
+ void paintChange(Row::Element const & e) const;
void paintAppendixStart(int y) const;
- void paintInset(Inset const * inset, Font const & font,
- Change const & change, pos_type const pos);
+ void paintInset(Row::Element const & e) const;
- /// return the label font for this row
- FontInfo labelFont() const;
+ /// return the label font for this row (end label when \c end is true)
+ FontInfo labelFont(bool end) const;
///
void paintLabel() const;
/// Text for the row
Text const & text_;
- TextMetrics const & text_metrics_;
- ParagraphList const & pars_;
+ TextMetrics const & tm_;
/// The row to paint
Row const & row_;
/// Row's paragraph
- pit_type const pit_;
Paragraph const & par_;
- ParagraphMetrics const & pm_;
-
- /// row changed? (change tracking)
- Change const change_;
// Looks ugly - is
double const xo_;
int const yo_; // current baseline
double x_;
- int width_;
- int solid_line_thickness_;
- int solid_line_offset_;
- int dotted_line_thickness_;
- int dotted_line_offset_;
};
} // namespace lyx