r184: *** empty log message ***
[ctsim.git] / include / sgp.h
index b2d31eec0fbf7818e2d1728a3ac1deba444337fc..62407526e47f75efe1c439429086382400c57a12 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2000 Kevin Rosenberg
 **
-**  $Id: sgp.h,v 1.11 2000/07/28 08:28:08 kevin Exp $
+**  $Id: sgp.h,v 1.14 2000/08/25 15:59:13 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);
@@ -100,6 +100,7 @@ public:
 };
 
 
+class RGBColor;
 class SGP {
 private:
   int m_iPhysicalXSize;   // Physical Window size 
@@ -133,6 +134,13 @@ private:
   
   void calc_transform ();
 
+  static RGBColor s_aRGBColor[];
+  static int s_iRGBColorCount;
+
+#if HAVE_WXWINDOWS
+  wxPen* m_pPen;
+#endif
+
 public:
   enum {                  // linestyles 
       LS_NOLINE = 0,
@@ -188,6 +196,7 @@ public:
   void setTextAngle (double angle);
   void setTextColor (int iFGcolor, int iBGcolor);
   void setMarker (int idMarker, int color);
+  void setRasterOp (int ro);
 
   void ctmClear ();
   void ctmSet (const TransformationMatrix2D& m);
@@ -209,4 +218,65 @@ public:
 };
 
 
+enum {
+    C_BLACK     = 0,     // color codes 
+    C_BLUE      = 1,
+    C_GREEN     = 2,
+    C_CYAN      = 3,
+    C_RED       = 4,
+    C_MAGENTA   = 5,
+    C_BROWN     = 6,
+    C_GRAY      = 7,
+    C_LTGRAY    = 8,
+    C_LTBLUE    = 9,
+    C_LTGREEN   = 10,
+    C_LTCYAN    = 11,
+    C_LTRED     = 12,
+    C_LTMAGENTA = 13,
+    C_YELLOW    = 14,
+    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;
+  short int g;
+  short int b;
+
+ public:
+  RGBColor (int r, int g, int b)
+    : r(r), g(g), b(b)
+    {}
+
+  int getRed () const
+    { return r; }
+
+  int getGreen () const
+    { return g; }
+
+  int getBlue () const
+    { return b; }
+
+};
+
 #endif