- /// Constructor
- explicit Painter(WorkArea &);
-
- /// Draw a line from point to point
- PainterBase & line(int x1, int y1, int x2, int y2,
- LColor::color = LColor::foreground,
- enum line_style = line_solid,
- enum line_width = line_thin);
-
- /// Here xp and yp are arrays of points
- PainterBase & lines(int const * xp, int const * yp, int np,
- LColor::color = LColor::foreground,
- enum line_style = line_solid,
- enum line_width = line_thin);
-
- /// Here xp and yp are arrays of points
- PainterBase & fillPolygon(int const * xp, int const * yp, int np,
- LColor::color = LColor::foreground);
-
- /// Draw lines from x1,y1 to x2,y2. They are arrays
- PainterBase & segments(int const * x1, int const * y1,
- int const * x2, int const * y2, int ns,
- LColor::color = LColor::foreground,
- enum line_style = line_solid,
- enum line_width = line_thin);
-
- /// Draw a rectangle
- PainterBase & rectangle(int x, int y, int w, int h,
- LColor::color = LColor::foreground,
- enum line_style = line_solid,
- enum line_width = line_thin);
-
- /// Draw an arc
- PainterBase & arc(int x, int y, unsigned int w, unsigned int h,
- int a1, int a2,
- LColor::color = LColor::foreground);
-
- /// Draw a pixel
- PainterBase & point(int x, int y, LColor::color = LColor::foreground);
-
- /// Fill a rectangle
- PainterBase & fillRectangle(int x, int y, int w, int h,
- LColor::color);
-
- /// For the graphics inset.
- PainterBase & image(int x, int y, int w, int h,
- grfx::GImage const & image);
-
- /// Draw a string at position x, y (y is the baseline)
- PainterBase & text(int x, int y,
- string const & str, LyXFont const & f);
+ XPainter(WorkArea &);
+
+ /// return the width of the work area in pixels
+ virtual int paperWidth() const;
+ /// return the height of the work area in pixels
+ virtual int paperHeight() const;
+
+ /// draw a line from point to point
+ virtual Painter & line(
+ int x1, int y1,
+ int x2, int y2,
+ LColor::color = LColor::foreground,
+ line_style = line_solid,
+ line_width = line_thin);
+
+ /**
+ * lines - draw a set of lines
+ * @param xp array of points' x co-ords
+ * @param yp array of points' y co-ords
+ * @param np size of the points array
+ */
+ virtual Painter & lines(
+ int const * xp,
+ int const * yp,
+ int np,
+ LColor::color = LColor::foreground,
+ line_style = line_solid,
+ line_width = line_thin);
+
+ /// draw a rectangle
+ virtual Painter & rectangle(
+ int x, int y,
+ int w, int h,
+ LColor::color = LColor::foreground,
+ line_style = line_solid,
+ line_width = line_thin);
+
+ /// draw a filled rectangle
+ virtual Painter & fillRectangle(
+ int x, int y,
+ int w, int h,
+ LColor::color);
+
+ /// draw a filled (irregular) polygon
+ virtual Painter & fillPolygon(
+ int const * xp,
+ int const * yp,
+ int np,
+ LColor::color = LColor::foreground);
+
+ /// draw an arc
+ virtual Painter & arc(
+ int x, int y,
+ unsigned int w, unsigned int h,
+ int a1, int a2,
+ LColor::color = LColor::foreground);
+
+ /// draw a pixel
+ virtual Painter & point(
+ int x, int y,
+ LColor::color = LColor::foreground);
+
+ /// draw an image from the image cache
+ virtual Painter & image(int x, int y,
+ int w, int h,
+ grfx::GImage const & image);
+
+ /// draw a string at position x, y (y is the baseline)
+ virtual Painter & text(int x, int y,
+ string const & str, LyXFont const & f);