]> git.lyx.org Git - lyx.git/blobdiff - src/PainterBase.h
form para crash fix from John
[lyx.git] / src / PainterBase.h
index 7178f93564561a2e2a7bbf4cb9d5692980d3a3f9..e3b7d0747287ebb4956c4ef6cf34500234060ef7 100644 (file)
@@ -4,7 +4,7 @@
  * 
  *           LyX, The Document Processor
  *      
- *         Copyright 1998-2000 The LyX Team
+ *         Copyright 1998-2001 The LyX Team
  *
  *======================================================*/
 
@@ -20,6 +20,7 @@
 
 class WorkArea;
 class LyXFont;
+class LyXImage;
 
 /** A painter class to encapsulate all graphics parameters and operations
    
@@ -35,7 +36,11 @@ class LyXFont;
 class PainterBase {
 protected:
         ///
-       static int dummy1, dummy2, dummy3;
+       static int dummy1;
+       ///
+       static int dummy2;
+       ///
+       static int dummy3;
 public:
        ///
        enum line_width {
@@ -56,18 +61,19 @@ public:
        };
 
        ///
-       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, 
@@ -88,7 +94,7 @@ public:
        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(
@@ -131,7 +137,7 @@ public:
        /// Fill a rectangle
        virtual PainterBase & fillRectangle(
                int x, int y, int w, int h,
-               LColor::color = LColor::background) = 0;
+               LColor::color) = 0;
        
        /// A filled rectangle with the shape of a 3D button
        virtual PainterBase & button(int x, int y, int w, int h);
@@ -139,49 +145,35 @@ public:
        /// 
         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;
-       
-       /** Draws a string and encloses it inside a rectangle. Returns
-           the size of the rectangle. If draw is false, we only calculate
-           the size. */
-       virtual PainterBase & rectText(int x, int baseline, 
-                          string const & string, 
-                          LyXFont const & font,
-                          LColor::color back,
-                          LColor::color frame, bool draw = true,
-                          int & width = PainterBase::dummy1,
-                          int & ascent = PainterBase::dummy2, 
-                          int & descent = PainterBase::dummy3);
-
-       /** Draw a string and encloses it inside a button frame. Returns
-           the size of the frame. If draw is false, we only calculate
-           the size. */
-       virtual PainterBase & buttonText(int x, int baseline, string const & s,
-                            LyXFont const & font, bool draw = true,
-                            int & width = PainterBase::dummy1,
-                            int & ascent = PainterBase::dummy2, 
-                            int & descent = PainterBase::dummy3);
+
+       /** Draws a string and encloses it inside a rectangle. */
+       PainterBase & rectText(int x, int baseline, 
+                              string const & string, 
+                              LyXFont const & font,
+                              LColor::color back,
+                              LColor::color frame);
+
+       /** Draw a string and encloses it inside a button frame. */
+       PainterBase & buttonText(int x, int baseline, string const & s,
+                                LyXFont const & font);
 protected:
+       ///
        WorkArea & owner;
 };