]> git.lyx.org Git - lyx.git/blobdiff - src/Painter.h
fix typo that put too many include paths for most people
[lyx.git] / src / Painter.h
index 06468b33ba26acfe2ec452f3dd919663e96b611c..c5524fc1a6af787744d1e23ae7d6c872971b7133 100644 (file)
@@ -1,10 +1,10 @@
 // -*- C++ -*-
 /* This file is part of
  * ======================================================
- * 
+ *
  *           LyX, The Document Processor
- *      
- *         Copyright 1995-2000 The LyX Team
+ *
+ *         Copyright 1995-2001 The LyX Team
  *
  * ======================================================*/
 
 #pragma interface
 #endif
 
-#include "config.h"
 #include "LString.h"
 
 // This is only included to provide stuff for the non-public sections
 #include <X11/Xlib.h>
 
-#include <map>
 #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 
+       /// Constructor
        explicit Painter(WorkArea &);
-       
-       /// Destructor
-       ~Painter();
-       
-       /**@Basic drawing routines */
+
        /// Draw a line from point to point
-       PainterBase & line(int x1, int y1, int x2, int y2, 
+       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, 
+       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 
+
+       /// 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, 
+       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 = LColor::background);
-       
-       /**@Image stuff */
-       
-       /// For the figure inset
-       PainterBase & pixmap(int x, int y, int w, int h, Pixmap bitmap);
-       
-       /**@String functions */
-       
+                                   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);
-       
+
        /** Draw a string at position x, y (y is the baseline)
            This is just for fast drawing */
-       PainterBase & text(int x, int y, char const * str, int l,
+       PainterBase & text(int x, int y, char const * str, size_t l,
                           LyXFont const & f);
-       
+
        /// Draw a char at position x, y (y is the baseline)
        PainterBase & text(int x, int y, char c, LyXFont const & f);
-       
-protected:
-       /**@Support for X only, by now */
-       friend class WorkArea;
-       ///
-       PainterBase & setDisplay(Display * d) { display = d; return *this; }
-       
-       /// Get foreground color in ordinary GC
-       GC getGCForeground(LColor::color c);
-       
-       /// Set up GC according to line style
-       GC getGCLinepars(enum line_style, enum line_width, LColor::color c);
-       
+
+       /// 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() const;
-               
-       ///
-       Colormap colormap;
-       
-       /// Caching of ordinary color GCs
-       GC colorGCcache[LColor::ignore + 1];
-       /// Caching of GCs used for lines
-       typedef std::map<int, GC> LineGCCache;
-       ///
-       LineGCCache lineGCcache;
 };
+
 #endif