r348: fix linefeed problem
[ctsim.git] / include / sgp.h
index a873d18d16e5c5529c3c5a51369903e730ea36d6..2d83b2ed6b2eaac7ca02497a530461e6023551e8 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2000 Kevin Rosenberg
 **
-**  $Id: sgp.h,v 1.17 2000/09/02 05:10:39 kevin Exp $
+**  $Id: sgp.h,v 1.24 2001/01/02 16:02: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
@@ -36,6 +36,7 @@
 
 #ifdef HAVE_WXWINDOWS
 #include <wx/wx.h>
+#include <wx/font.h>
 #endif
 
 #if HAVE_G2_H
@@ -47,12 +48,11 @@ extern "C" {
 
 #include <string>
 
-
 class SGPDriver {
 private:
   int m_iPhysicalXSize;
   int m_iPhysicalYSize;
-  string m_sWindowTitle;
+  std::string m_sWindowTitle;
   int m_idDriver;
 
 #ifdef HAVE_WXWINDOWS
@@ -81,14 +81,14 @@ public:
   int getPhysicalYSize () const
     { return m_iPhysicalYSize; }
 
-  const string& getWindowTitle () const
+  const std::string& getWindowTitle () const
     { return m_sWindowTitle; }
 
   bool isWX () const
-    { return (m_idDriver & SGPDRIVER_WXWINDOWS); }
+  { return (m_idDriver & SGPDRIVER_WXWINDOWS ? true : false); }
 
   bool isG2 () const
-    { return (m_idDriver & SGPDRIVER_G2); }
+  { return (m_idDriver & SGPDRIVER_G2 ? true : false); }
 
   int idG2 () const
     { return m_idG2; }
@@ -126,6 +126,8 @@ private:
   double m_dCurrentWorldY;
   double m_dTextAngle;
   bool m_bRecalcTransform;
+  double m_dPointsPerPixel;  // points (72pt/in) per screen pixel;
+  int m_iLinestyle;
 
   // Master coordinates are coordinates before CTM transformation
   // World coordinates are coordinates defined by setWindow()
@@ -142,6 +144,7 @@ private:
 
 #if HAVE_WXWINDOWS
   wxPen m_pen;
+  wxFont* m_pFont;
 #endif
 
 public:
@@ -168,10 +171,11 @@ public:
       MARK_BSQUARE = 9,        // big open square 
       MARK_BDIAMOND = 10,      // big open diamond 
   };
-  static const int MARK_COUNT = 11;
+  enum  { MARK_COUNT = 11, };
   static const unsigned char MARKER_BITMAP[MARK_COUNT][5];
 
   SGP (const SGPDriver& driver);
+  ~SGP();
 
   void drawCircle (const double r);
   void drawArc (const double r, double start, double stop);
@@ -181,7 +185,7 @@ public:
   void lineRel(double x, double y);
   void moveRel(double x, double y);
   void drawText(const char *szMessage);
-  void drawText(const string& rsMessage);
+  void drawText(const std::string& rsMessage);
   void polylineAbs(double x[], double y[], int n);
   void markerAbs (double x, double y);
   void markerRel(double x, double y);
@@ -196,6 +200,8 @@ public:
   void setColor (int icol);
   void setLineStyle (int style);
   void setTextSize (double height);
+  void setTextNDCSize (double height);
+  void setTextPointSize (double height);
   void setTextAngle (double angle);
   void setTextColor (int iFGcolor, int iBGcolor);
   void setPenWidth (int width);
@@ -206,6 +212,9 @@ public:
   void getViewport (double& xmin, double& ymin, double& xmax, double& ymax);
   void getTextExtent (const char *szText, double* x, double* y);
   double getCharHeight ();
+  double getCharWidth ();
+  SGPDriver& getDriver() {return m_driver;}
+  const SGPDriver& getDriver() const {return m_driver;}
 
   void ctmClear ();
   void ctmSet (const TransformationMatrix2D& m);