// -*- C++ -*-
/**
* \file Painter.h
- * Copyright 1998-2002 the LyX Team
- * Read the file COPYING
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
*
* \author unknown
- * \author John Levon <moz@compsoc.man.ac.uk>
+ * \author John Levon
+ *
+ * Full author contact details are available in file CREDITS
*/
#ifndef PAINTER_H
#define PAINTER_H
-#ifdef __GNUG__
-#pragma interface
-#endif
#include "LString.h"
#include "LColor.h"
class LyXFont;
namespace grfx {
- class GImage;
+ class Image;
}
/**
/// begin painting
virtual void start() {}
-
+
/// end painting
virtual void end() {}
-
+
/// return the width of the work area in pixels
virtual int paperWidth() const = 0;
/// return the height of the work area in pixels
LColor::color = LColor::foreground,
line_style = line_solid,
line_width = line_thin) = 0;
-
+
/// draw a filled rectangle
virtual Painter & fillRectangle(
int x, int y,
int w, int h,
LColor::color) = 0;
-
+
/// draw a filled (irregular) polygon
virtual Painter & fillPolygon(
int const * xp,
virtual Painter & point(
int x, int y,
LColor::color = LColor::foreground) = 0;
-
+
/// draw a filled rectangle with the shape of a 3D button
virtual Painter & button(int x, int y,
int w, int h);
/// draw an image from the image cache
virtual Painter & image(int x, int y,
int w, int h,
- grfx::GImage const & image) = 0;
-
+ grfx::Image const & image) = 0;
+
/// draw a string at position x, y (y is the baseline)
virtual Painter & text(int x, int y,
string const & str, LyXFont const & f) = 0;
virtual Painter & text(int x, int y,
char c, LyXFont const & f) = 0;
- /// draw a string and enclose it inside a rectangle
+ /**
+ * Draw a string and enclose it inside a rectangle. If
+ * back color is specified, the background is cleared with
+ * the given color. If frame is specified, a thin frame is drawn
+ * around the text with the given color.
+ */
Painter & rectText(int x, int baseline,
string const & string,
LyXFont const & font,
- LColor::color back,
- LColor::color frame);
+ LColor::color back = LColor::none,
+ LColor::color frame = LColor::none);
/// draw a string and enclose it inside a button frame
Painter & buttonText(int x,
protected:
/// check the font, and if set, draw an underline
- void underline(LyXFont const & f,
+ void underline(LyXFont const & f,
int x, int y, int width);
-
+
/// draw a bevelled button border
- Painter & buttonFrame(int x, int y, int w, int h);
+ Painter & buttonFrame(int x, int y, int w, int h);
};
#endif // PAINTER_H