+ /// A struct used for drawing routines
+ struct DrawRowParams {
+ // the bufferview
+ BufferView * bv;
+ // the row
+ Row * row;
+ // the painter to use
+ Painter * pain;
+ // has the background been cleared
+ bool cleared;
+ /// x offset (e.g. for insets)
+ int xo;
+ /// y offset (e.g. for insets)
+ int yo;
+ /// FIXME
+ float x;
+ /// FIXME
+ int y;
+ /// the inset/view full width
+ int width;
+ /// hfill size
+ float hfill;
+ /// label hfill size
+ float label_hfill;
+ /// fill separator size
+ float separator;
+ };
+
+ /// paint the background
+ bool paintRowBackground(DrawRowParams & p);
+
+ /// paint the selection background
+ void paintRowSelection(DrawRowParams & p);
+
+ /// paint change bar
+ void paintChangeBar(DrawRowParams & p);
+
+ /// paint appendix marker
+ void paintRowAppendix(DrawRowParams & p);
+
+ /// paint page break marker. Returns its height.
+ int paintPageBreak(string const & label, int y, DrawRowParams & p);
+
+ /// paint env depth bar
+ void paintRowDepthBar(DrawRowParams & p);
+
+ /// get the on-screen size of the length marker
+ int getLengthMarkerHeight(BufferView * bv, VSpace const & vsp) const;
+
+ /// paint an added space marker
+ int drawLengthMarker(DrawRowParams & p, string const & str,
+ VSpace const & vsp, int start);
+
+ /// paint a first row in a paragraph
+ void paintFirstRow(DrawRowParams & p);
+
+ /// paint a last row in a paragraph
+ void paintLastRow(DrawRowParams & p);
+
+ /// paint text
+ void paintRowText(DrawRowParams & p);
+
+ // fix the cursor `cur' after a characters has been deleted at `where'
+ // position. Called by deleteEmptyParagraphMechanism
+ void fixCursorAfterDelete(BufferView * bv,
+ LyXCursor & cur,
+ LyXCursor const & where) const;
+
+ /// delete double space (false) or empty paragraphs (true) around old_cursor
+ bool deleteEmptyParagraphMechanism(BufferView *,