X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FPainter.h;h=8d39c2ba02c72e75d74464b0fe9ac95fc41cb6bd;hb=21226de2b87a86be19fff025cace3d286a75aa76;hp=0c7ed2a93315ecb01985611bfdc8e9b9a3f45770;hpb=cfdd73ea94c3cc0058459d67b1c62fabd31fbeb1;p=lyx.git diff --git a/src/Painter.h b/src/Painter.h index 0c7ed2a933..8d39c2ba02 100644 --- a/src/Painter.h +++ b/src/Painter.h @@ -4,12 +4,10 @@ * * LyX, The Document Processor * - * Copyright 1999-2000 The LyX Team + * Copyright 1995-2001 The LyX Team * * ======================================================*/ -#ifdef USE_PAINTER - #ifndef PAINTER_H #define PAINTER_H @@ -17,124 +15,93 @@ #pragma interface #endif -#include "config.h" #include "LString.h" // This is only included to provide stuff for the non-public sections #include -#include #include "PainterBase.h" -#include "LColor.h" class LyXFont; class WorkArea; /** An inplementation for the X Window System. Xlib. - + Classes similar to this one can be made for gtk+, Qt, etc. - */ +*/ class Painter : public PainterBase { public: /// Constructor - Painter(WorkArea &); - - /// Destructor - ~Painter(); - - /**@Basic drawing routines */ + explicit Painter(WorkArea &); + /// Draw a line from point to point - Painter & 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 - Painter & 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 - Painter & fillPolygon(int const * xp, int const * yp, int np, - LColor::color = LColor::foreground); - - /// Draw lines from x1,y1 to x2,y2. They are arrays - Painter & segments(int const * x1, int const * y1, - int const * x2, int const * y2, int ns, + PainterBase & line(int x1, int y1, int x2, int y2, LColor::color = LColor::foreground, enum line_style = line_solid, enum line_width = line_thin); - - /// Draw a rectangle - Painter & rectangle(int x, int y, int w, int h, + + /// 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 - Painter & arc(int x, int y, unsigned int w, unsigned int h, - int a1, int a2, - LColor::color = LColor::foreground); + PainterBase & arc(int x, int y, unsigned int w, unsigned int h, + int a1, int a2, + LColor::color = LColor::foreground); /// Draw a pixel - Painter & point(int x, int y, LColor::color = LColor::foreground); + PainterBase & point(int x, int y, LColor::color = LColor::foreground); /// Fill a rectangle - Painter & fillRectangle(int x, int y, int w, int h, - LColor::color = LColor::background); + PainterBase & fillRectangle(int x, int y, int w, int h, + LColor::color); - /**@Image stuff */ + /// For the graphics inset. + PainterBase & image(int x, int y, int w, int h, LyXImage const * image); - /// For the figure inset - Painter & pixmap(int x, int y, Pixmap bitmap); - - /**@String functions */ + /// For the figinset + PainterBase & pixmap(int x, int y, int w, int h, Pixmap bitmap); /// Draw a string at position x, y (y is the baseline) - Painter & text(int x, int y, string const & str, LyXFont const & f); - + PainterBase & text(int x, int y, + string const & str, LyXFont const & f); + /** Draw a string at position x, y (y is the baseline) This is just for fast drawing */ - Painter & text(int x, int y, char const * str, int l, - LyXFont const & f); - - /// Draw a char at position x, y (y is the baseline) - Painter & text(int x, int y, char c, LyXFont const & f); - -protected: - /**@Support for X only, by now */ - friend class WorkArea; - /// - Painter & setDisplay(Display * d) { display = d; return *this; } - - /// - Painter & setDrawable(Drawable d) { drawable = d; return *this; } - - /// Get foreground color in ordinary GC - GC getGCForeground(LColor::color c); + PainterBase & text(int x, int y, char const * str, size_t l, + LyXFont const & f); - /// Set up GC according to line style - GC getGCLinepars(enum line_style, enum line_width, LColor::color c); + /// Draw a char at position x, y (y is the baseline) + PainterBase & text(int x, int y, char c, LyXFont const & f); + /// Draw a wide string at position x, y + PainterBase & text(int x, int y, XChar2b const * str, int l, + LyXFont const & f); +private: /// Check the font, and if set, draw an underline void underline(LyXFont const & f, int x, int y, int width); - - /**@Low level X parameters */ + /// Display * display; - /// - Drawable drawable; - /// - Colormap colormap; - - /// Caching of ordinary color GCs - GC colorGCcache[LColor::ignore + 1]; - /// Caching of GCs used for lines - typedef map > LineGCCache; - /// - LineGCCache lineGCcache; }; -#endif #endif