#ifndef TEXTPAINTER_H #define TEXTPAINTER_H #include #include #include #include "Types.h" class SynEdit; class SynEditTextPainter { struct TokenAccu { int Len; int MaxLen; int CharsBefore; QString s; QColor FG; QColor BG; SynFontStyles Style; }; public: SynEditTextPainter(SynEdit * edit); QColor colEditorBG(); void ComputeSelectionInfo(); void setDrawingColors(bool Selected); int ColumnToXValue(int Col); void PaintToken(const QString& Token, int TokenLen, int CharsBefore, int First, int Last, bool isSelection); private: SynEdit* edit; QPainter* painter; bool bDoRightEdge; // right edge int nRightEdge; // selection info bool bAnySelection; // any selection visible? DisplayCoord vSelStart; // start of selected area DisplayCoord vSelEnd; // end of selected area // info about normal and selected text and background colors bool bSpecialLine, bLineSelected, bCurrentLine; QColor colFG, colBG; QColor colSelFG, colSelBG; // info about selection of the current line int nLineSelStart, nLineSelEnd; bool bComplexLine; // painting the background and the text QRect rcLine, rcToken; int vFirstLine, vLastLine; }; #endif // TEXTPAINTER_H