X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=blobdiff_plain;f=include%2Fsgp.h;h=67f1b7c81ed9af6df9d3295ccb56c87fac85cc9b;hp=b026cdc6f1634cdcb67f2b08fae8b4633d28406a;hb=9f29c8b32c972db1178d6f8551d5cd57ceb67083;hpb=a05f3cb550877e94aa118cc04b361c0c8fdb3dc3 diff --git a/include/sgp.h b/include/sgp.h index b026cdc..67f1b7c 100644 --- a/include/sgp.h +++ b/include/sgp.h @@ -7,9 +7,9 @@ ** Date Started: 1984 ** ** This is part of the CTSim program -** Copyright (C) 1983-2000 Kevin Rosenberg +** Copyright (c) 1983-2001 Kevin Rosenberg ** -** $Id: sgp.h,v 1.16 2000/08/31 08:38:58 kevin Exp $ +** $Id: sgp.h,v 1.26 2001/01/28 19:10:18 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 +#include #endif #if HAVE_G2_H @@ -47,12 +48,11 @@ extern "C" { #include - 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; } @@ -125,7 +125,10 @@ private: double m_dCurrentWorldX; double m_dCurrentWorldY; double m_dTextAngle; + int m_iTextPointSize; 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 +145,9 @@ private: #if HAVE_WXWINDOWS wxPen m_pen; + wxFont* m_pFont; + + void initFromDC (wxDC* pDC); #endif public: @@ -168,10 +174,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 +188,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,15 +203,21 @@ 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); void setMarker (int idMarker, int color); void setRasterOp (int ro); - void getViewport (double &xmin, double &ymin, double& xmax, double& ymax); + void getWindow (double& xmin, double& ymin, double& xmax, double& ymax); + 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);