]> git.lyx.org Git - lyx.git/blobdiff - src/RowPainter.h
typo
[lyx.git] / src / RowPainter.h
index f3dc1adff8f53b9f38db93238cd03fed324b1b4f..d573cb8e5b98a34848ae0dcf557f38bddf448e0b 100644 (file)
 #ifndef ROWPAINTER_H
 #define ROWPAINTER_H
 
-#include "Bidi.h"
-#include "Changes.h"
-
-#include "support/types.h"
+#include "Row.h"
 
 namespace lyx {
 
-class BufferView;
-class Font;
-class FontInfo;
-class Inset;
-class Language;
 class PainterInfo;
 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.
@@ -59,7 +33,7 @@ class RowPainter {
 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
@@ -68,31 +42,24 @@ public:
        void paintChangeBar() const;
        void paintTooLargeMarks(bool const left, bool const right) const;
        void paintFirst() const;
-       void paintLast();
+       void paintLast() const;
        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;
-       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;
-
-       /// return the label font for this row
-       FontInfo labelFont() 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(Row::Element const & e) const;
+
+       /// return the label font for this row (end label when \c end is true)
+       FontInfo labelFont(bool end) const;
 
        ///
        void paintLabel() const;
@@ -105,32 +72,18 @@ private:
 
        /// 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_;
-
-       /// bidi cache
-       Bidi bidi_;
-
-       /// 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