X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=include%2Fsgp.h;h=9e4f8b9fa60eb80ac1620c39ea9a630ef46f5d4d;hb=a1d1b6fcaa983c7f5832436effebeaf0c8068fb8;hp=f30f582e3df2762114744de2b698a86ca596c29d;hpb=ee0105d74fec9d6bfd236e22e9e1d315e46c568e;p=ctsim.git diff --git a/include/sgp.h b/include/sgp.h index f30f582..9e4f8b9 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.20 2000/12/06 01:46:43 kevin Exp $ +** $Id: sgp.h,v 1.27 2001/03/11 15:27:30 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 @@ -47,13 +47,12 @@ extern "C" { #endif #include -using namespace std; class SGPDriver { private: int m_iPhysicalXSize; int m_iPhysicalYSize; - string m_sWindowTitle; + std::string m_sWindowTitle; int m_idDriver; #ifdef HAVE_WXWINDOWS @@ -82,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,8 +125,11 @@ 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; + int m_iMarker; // Master coordinates are coordinates before CTM transformation // World coordinates are coordinates defined by setWindow() @@ -144,7 +146,9 @@ private: #if HAVE_WXWINDOWS wxPen m_pen; - wxFont m_font; + wxFont* m_pFont; + + void initFromDC (wxDC* pDC); #endif public: @@ -159,22 +163,23 @@ public: }; enum { // Codes for marker symbols - MARK_POINT = 0, // small dot - MARK_SQUARE = 1, // empty square - MARK_FSQUARE = 2, // filled square - MARK_DIAMOND = 3, // empty diamond - MARK_FDIAMOND = 4, // filled diamond - MARK_CROSS = 5, // cross - MARK_XCROSS = 6, // x - MARK_CIRCLE = 7, // open circle - MARK_FCIRCLE = 8, // filled circle - MARK_BSQUARE = 9, // big open square - MARK_BDIAMOND = 10, // big open diamond + MARKER_POINT = 0, // small dot + MARKER_SQUARE = 1, // empty square + MARKER_FSQUARE = 2, // filled square + MARKER_DIAMOND = 3, // empty diamond + MARKER_FDIAMOND = 4, // filled diamond + MARKER_CROSS = 5, // cross + MARKER_XCROSS = 6, // x + MARKER_CIRCLE = 7, // open circle + MARKER_FCIRCLE = 8, // filled circle + MARKER_BSQUARE = 9, // big open square + MARKER_BDIAMOND = 10, // big open diamond }; 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); @@ -184,7 +189,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); @@ -204,7 +209,7 @@ public: void setTextAngle (double angle); void setTextColor (int iFGcolor, int iBGcolor); void setPenWidth (int width); - void setMarker (int idMarker, int color); + void setMarker (int idMarker); void setRasterOp (int ro); void getWindow (double& xmin, double& ymin, double& xmax, double& ymax);