X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Frowpainter.h;h=d9feb9a8b95fc170630d717140fe4e441efa3c0e;hb=024275f0690b41634e26dabe8758e3dc6cd31ee2;hp=efbd99b5478a3c75e2ccb65f8a71097d57628b63;hpb=82d3d4dff699f069c24f6e804427dd80361ee295;p=lyx.git diff --git a/src/rowpainter.h b/src/rowpainter.h index efbd99b547..d9feb9a8b9 100644 --- a/src/rowpainter.h +++ b/src/rowpainter.h @@ -1,3 +1,4 @@ +// -*- C++ -*- /** * \file rowpainter.h * This file is part of LyX, the document processor. @@ -5,99 +6,40 @@ * * \author various * \author John Levon + * \author André Pönitz * - * Full author contact details are available in file CREDITS + * Full author contact details are available in file CREDITS. */ #ifndef ROWPAINTER_H #define ROWPAINTER_H -#include - -#include "RowList.h" -#include "LString.h" #include "support/types.h" +namespace lyx { + class LyXText; class BufferView; -class Paragraph; -class Painter; -class LyXFont; -class VSpace; - -/** - * A class used for painting an individual row of text. - */ -class RowPainter { -public: - /// initialise painter - RowPainter(BufferView const & bv, LyXText const & text, RowList::iterator rit); - - /// paint the row. - void paint(int y_offset, int x_offset, int y); - -private: - // paint various parts - void paintBackground(); - void paintSelection(); - void paintAppendix(); - void paintDepthBar(); - void paintChangeBar(); - void paintFirst(); - void paintLast(); - void paintForeignMark(float const orig_x, LyXFont const & orig_font); - void paintHebrewComposeChar(lyx::pos_type & vpos); - void paintArabicComposeChar(lyx::pos_type & vpos); - void paintChars(lyx::pos_type & vpos, bool hebrew, bool arabic); - int paintPageBreak(string const & label, int y); - int paintAppendixStart(int y); - int paintLengthMarker(string const & prefix, VSpace const & vsp, int start); - void paintText(); - void paintFromPos(lyx::pos_type & vpos); - void paintInset(lyx::pos_type const pos); - - /// return left margin - int leftMargin() const; - - /// return the font at the given pos - LyXFont const getFont(lyx::pos_type pos) const; - - /// return the label font for this row - LyXFont const getLabelFont() const; - - char const transformChar(char c, lyx::pos_type pos) const; - - /// return pixel width for the given pos - int singleWidth(lyx::pos_type pos) const; - int singleWidth(lyx::pos_type pos, char c) const; +class PainterInfo; +class ViewMetricsInfo; - /// bufferview to paint on - BufferView const & bv_; +namespace frontend { class Painter; } - /// Painter to use - Painter & pain_; +/// paint visible paragraph of main text +void paintText(BufferView & bv, frontend::Painter & painter); - /// LyXText for the row - LyXText const & text_; +/// paint the rows of a text inset +void paintTextInset(LyXText const & text, PainterInfo & pi, int x, int y); - /// The row to paint - RowList::iterator row_; +/// some space for drawing the 'nested' markers (in pixel) +inline int nestMargin() { return 15; } - /// Row's paragraph - Paragraph const & par_; +/// margin for changebar +inline int changebarMargin() { return 12; } - // Looks ugly - is - int xo_; - int yo_; - float x_; - int y_; - int width_; - float separator_; - float hfill_; - float label_hfill_; -}; +/// right margin +inline int rightMargin() { return 10; } -/// return the pixel height of a space marker before/after a par -int getLengthMarkerHeight(BufferView const & bv, VSpace const & vsp); +} // namespace lyx #endif // ROWPAINTER_H