r297: fix scaling by viewport for text sizes
[ctsim.git] / libctgraphics / sgp.cpp
index 14cfd63e500a9f40d3dc4a94f03588017d4d68c3..d3ea434b9b27a2cd8946f41b516d6d7bdced3543 100644 (file)
@@ -7,7 +7,7 @@
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2000 Kevin Rosenberg
 **
-**  $Id: sgp.cpp,v 1.20 2000/12/18 05:40:30 kevin Exp $
+**  $Id: sgp.cpp,v 1.22 2000/12/18 06:47:03 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
@@ -165,12 +165,19 @@ SGP::eraseWindow ()
     g2_clear (m_driver.idG2());
 #endif
 #if HAVE_WXWINDOWS
-  if (m_driver.isWX()) {
-    wxBrush brushWhite;\r
+  if (m_driver.isWX()) {\r
+       wxBrush brushWhite;\r
        brushWhite.SetColour(255,255,255);\r
        m_driver.idWX()->SetBackground(brushWhite);\r
        m_driver.idWX()->Clear();\r
        m_driver.idWX()->SetBackground(wxNullBrush);\r
+#if 1\r
+       wxPen pen;\r
+       pen.SetColour(255,255,255);\r
+       m_driver.idWX()->SetBrush (brushWhite);\r
+       m_driver.idWX()->DrawRectangle (0, 0, m_iPhysicalXSize, m_iPhysicalYSize);\r
+       m_driver.idWX()->SetBrush (wxNullBrush);\r
+#endif\r
   }
 #endif
 }
@@ -498,10 +505,11 @@ SGP::getCharHeight ()
 #if HAVE_WXWINDOWS
   if (m_driver.isWX()) {
     dHeight = m_driver.idWX()->GetCharHeight();
-    dHeight /= static_cast<double>(m_iPhysicalYSize);
+    dHeight /= static_cast<double>(m_iPhysicalYSize);\r
+       dHeight /= (yv_max - yv_min); // scale to viewport;
   }
 #endif
-  dHeight *= (yw_max - yw_min);
+  dHeight *= (yw_max - yw_min);  // scale to world coordinates
   return dHeight;
 }
 
@@ -513,10 +521,11 @@ SGP::getCharWidth ()
 #if HAVE_WXWINDOWS
   if (m_driver.isWX()) {
     dWidth = m_driver.idWX()->GetCharWidth();
-    dWidth /= static_cast<double>(m_iPhysicalXSize);
+    dWidth /= static_cast<double>(m_iPhysicalXSize);\r
+       dWidth /= (xv_max - xv_min); // scale to viewport
   }
 #endif
-  dWidth *= (xw_max - xw_min);
+  dWidth *= (xw_max - xw_min); //scale to world coordinates
   return dWidth;
 }