+ virtual void text(int x, int y, char_type c, FontInfo const & f) = 0;
+
+ /** draw a string at position x, y (y is the baseline). The
+ * text direction is enforced by the \c Font.
+ */
+ virtual void text(int x, int y, docstring const & str, Font const & f,
+ double wordspacing, double textwidth) = 0;
+
+ /** draw a string at position x, y (y is the baseline), but
+ * make sure that the part between \c from and \c to is in
+ * \c other color. The text direction is enforced by the \c Font.
+ */
+ virtual void text(int x, int y, docstring const & str, Font const & f,
+ Color other, size_type from, size_type to,
+ double wordspacing, double textwidth) = 0;
+
+ // Returns true if the painter does not actually paint.
+ virtual bool isNull() const = 0;
+
+ double pixelRatio() const { return pixel_ratio_; }
+
+ bool develMode() const { return devel_mode_; }
+
+ /// draw the underbar, strikeout, xout, uuline and uwave font attributes
+ virtual void textDecoration(FontInfo const & f, int x, int y, int width) = 0;