class WorkArea;
class LyXFont;
-//class LyXScreen;
+class LyXImage;
/** A painter class to encapsulate all graphics parameters and operations
class PainterBase {
protected:
///
- static int dummy1, dummy2, dummy3;
+ static int dummy1;
+ ///
+ static int dummy2;
+ ///
+ static int dummy3;
public:
///
enum line_width {
};
///
- PainterBase(WorkArea & wa) : owner(wa) {}
+ explicit PainterBase(WorkArea & wa) : owner(wa) {}
///
virtual ~PainterBase() {}
- /** Screen geometry */
+ /* Screen geometry */
///
int paperMargin() const;
///
int paperWidth() const;
+ ///
+ int paperHeight() const;
- /**@Basic drawing routines */
/// Draw a line from point to point
virtual PainterBase & line(
int x1, int y1, int x2, int y2,
virtual PainterBase & fillPolygon(
int const * xp, int const * yp,
int np,
- LColor::color =LColor::foreground) = 0;
+ LColor::color = LColor::foreground) = 0;
/// Draw lines from x1,y1 to x2,y2. They are arrays
virtual PainterBase & segments(
///
virtual PainterBase & buttonFrame(int x, int y, int w, int h);
- /**@Image stuff */
- /// For the figure inset
- // This can't be part of the base since we don't know what window
- // system we will be useing, or if are going to use pixmaps at all.
- //virtual PainterBase & pixmap(int x, int y, Pixmap bitmap)=0;
+ // For the figure inset
+ virtual PainterBase & image(int x, int y, int w, int h, LyXImage const * image) = 0;
- /**@String functions */
-
/// Draw a string at position x, y (y is the baseline)
virtual PainterBase & text(int x, int y,
- string const &str, LyXFont const & f) = 0;
+ string const & str, LyXFont const & f) = 0;
/** Draw a string at position x, y (y is the baseline)
This is just for fast drawing */
- virtual PainterBase & text(int x, int y, char const * str, int l,
+ virtual PainterBase & text(int x, int y, char const * str, size_t l,
LyXFont const & f) = 0;
/// Draw a char at position x, y (y is the baseline)
virtual PainterBase & text(int x, int y, char c, LyXFont const & f)=0;
- /// Get the width of text
- int width(string const & s, LyXFont const & f) const;
-
- /** Get the width of text
- This is just for fast width */
- int width(char const * s, int l, LyXFont const & f) const;
-
- /// Get the width of text
- int width(char c, LyXFont const & f) const;
-
/** Draws a string and encloses it inside a rectangle. Returns
the size of the rectangle. If draw is false, we only calculate
the size. */
int & ascent = PainterBase::dummy2,
int & descent = PainterBase::dummy3);
protected:
+ ///
WorkArea & owner;
};