r185: *** empty log message ***
[ctsim.git] / include / sgp.h
index 32abbc405e2baae7c0ae11aec3903ac943a2c191..0a5fe0344ea7a9c9bd5359d750a7106f703b1a08 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2000 Kevin Rosenberg
 **
-**  $Id: sgp.h,v 1.12 2000/07/29 19:50:08 kevin Exp $
+**  $Id: sgp.h,v 1.15 2000/08/27 20:32:55 kevin Exp $
 **
 **  This program is free software; you can redistribute it and/or modify
 **  it under the terms of the GNU General Public License (version 2) as
@@ -68,7 +68,7 @@ public:
   };
 
 #ifdef HAVE_WXWINDOWS
-  SGPDriver (wxDC* pDC, const char* szWinTitle = "", int xsize = 640, int ysize = 480);
+  SGPDriver (wxDC* pDC, int xsize = 640, int ysize = 480);
 #endif
 
   SGPDriver (const char* szWinTitle = "", int xsize = 640, int ysize = 480);
@@ -137,6 +137,10 @@ private:
   static RGBColor s_aRGBColor[];
   static int s_iRGBColorCount;
 
+#if HAVE_WXWINDOWS
+  wxPen m_pen;
+#endif
+
 public:
   enum {                  // linestyles 
       LS_NOLINE = 0,
@@ -167,7 +171,7 @@ public:
   SGP (const SGPDriver& driver);
 
   void drawCircle (const double r);
-  void drawArc (double start, double stop, const double r);
+  void drawArc (const double r, double start, double stop);
   void drawRect (double xmin, double ymin, double xmax, double ymax);
   void lineAbs(double x, double y);
   void moveAbs(double x, double y);
@@ -191,7 +195,12 @@ public:
   void setTextSize (double height);
   void setTextAngle (double angle);
   void setTextColor (int iFGcolor, int iBGcolor);
+  void setPenWidth (int width);
   void setMarker (int idMarker, int color);
+  void setRasterOp (int ro);
+
+  void getTextExtent (const char *szText, double* x, double* y);
+  double getCharHeight ();
 
   void ctmClear ();
   void ctmSet (const TransformationMatrix2D& m);
@@ -232,6 +241,26 @@ enum {
     C_WHITE     = 15,
 };
 
+enum RasterOp {
+    RO_AND = 1,
+    RO_AND_INVERT,
+    RO_AND_REVERSE,
+    RO_CLEAR,
+    RO_COPY,
+    RO_EQUIV,
+    RO_INVERT,
+    RO_NAND,
+    RO_NOR,
+    RO_NO_OP,
+    RO_OR,
+    RO_OR_INVERT,
+    RO_OR_REVERSE,
+    RO_SET,
+    RO_SRC_INVERT,
+    RO_XOR,
+};
+
+
 class RGBColor {
  private:
   short int r;