r385: no message
[ctsim.git] / libctgraphics / sgp.cpp
index ec129d211837fed5ef0b492f3431b113b36b7a84..ec6b89d4a936dcff1fe103a2a362232525bb4b15 100644 (file)
@@ -7,7 +7,7 @@
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2000 Kevin Rosenberg
 **
-**  $Id: sgp.cpp,v 1.25 2001/01/02 16:02:13 kevin Exp $
+**  $Id: sgp.cpp,v 1.27 2001/01/12 21:53:27 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
@@ -91,7 +91,26 @@ SGP::SGP (const SGPDriver& driver)
   ndc_to_mc.setIdentity();
   m_ctm.setIdentity();
 
-#if HAVE_WXWINDOWS
+#ifdef HAVE_WXWINDOWS
+  initFromDC (driver.idWX());
+#endif
+
+  setWindow (0., 0., 1., 1.);
+  setViewport (0., 0., 1., 1.);
+  moveAbs (0., 0.);
+  stylusNDC (0., 0., false);
+  
+  setTextAngle (0.);
+  setTextPointSize (12);
+  setColor (C_BLACK);
+  setLineStyle (LS_SOLID);
+}
+
+
+#ifdef HAVE_WXWINDOWS
+void
+SGP::initFromDC (wxDC* pDC)
+{
   m_pen.SetWidth (1);
 
   if (m_driver.isWX()) {
@@ -112,24 +131,15 @@ SGP::SGP (const SGPDriver& driver)
     m_dPointsPerPixel = iTestPointSize / dTestCharHeight;
        m_driver.idWX()->SetBackground (*wxWHITE_BRUSH);
   }
+}
 #endif
 
-  setWindow (0., 0., 1., 1.);
-  setViewport (0., 0., 1., 1.);
-  moveAbs (0., 0.);
-  stylusNDC (0., 0., false);
-  
-  setTextAngle (0.);
-  setTextPointSize (12);
-  setColor (C_BLACK);
-  setLineStyle (LS_SOLID);
-}
 
 SGP::~SGP()
 {
 #if HAVE_WXWINDOWS
   if (m_driver.isWX()) {
-    m_driver.idWX()->SetFont (wxNullFont);
//   m_driver.idWX()->SetFont (wxNullFont);
     delete m_pFont;
   }
 #endif
@@ -519,7 +529,8 @@ SGP::setTextPointSize (double height)
 #endif
 #if HAVE_WXWINDOWS
   if (m_driver.isWX()) {
-      m_pFont->SetPointSize (static_cast<int>(height+0.5));
+    m_iTextPointSize = static_cast<int>(height+0.5);
+      m_pFont->SetPointSize (m_iTextPointSize);
       m_driver.idWX()->SetFont (*m_pFont);
   }
 #endif
@@ -941,7 +952,10 @@ const unsigned char SGP::MARKER_BITMAP[MARK_COUNT][5] =
 void
 SGP::setDC (wxDC* pDC)
 {
-  if (m_driver.isWX())
+  if (m_driver.isWX()) {
     m_driver.setDC(pDC);
+    initFromDC (pDC);
+    setTextPointSize (m_iTextPointSize);
+  }
 }
 #endif