X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=libctgraphics%2Fsgp.cpp;h=275a955bfbf031b24891351eb25e6e9830d57695;hb=e98a8a9d72a7b919debbbc9d1b0f237fe71c0fb3;hp=ec129d211837fed5ef0b492f3431b113b36b7a84;hpb=c00c639073653fac7463a88f2b000f263236550d;p=ctsim.git diff --git a/libctgraphics/sgp.cpp b/libctgraphics/sgp.cpp index ec129d2..275a955 100644 --- a/libctgraphics/sgp.cpp +++ b/libctgraphics/sgp.cpp @@ -5,9 +5,9 @@ ** Programmer: Kevin Rosenberg ** ** This is part of the CTSim program -** Copyright (C) 1983-2000 Kevin Rosenberg +** Copyright (c) 1983-2001 Kevin Rosenberg ** -** $Id: sgp.cpp,v 1.25 2001/01/02 16:02:13 kevin Exp $ +** $Id: sgp.cpp,v 1.29 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 @@ -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(height+0.5)); + m_iTextPointSize = static_cast(height+0.5); + m_pFont->SetPointSize (m_iTextPointSize); m_driver.idWX()->SetFont (*m_pFont); } #endif @@ -553,7 +564,7 @@ SGP::getCharHeight () if (m_driver.isWX()) { dHeight = m_driver.idWX()->GetCharHeight(); dHeight /= static_cast(m_iPhysicalYSize); - dHeight /= (yv_max - yv_min); // scale to viewport; + dHeight /= (yv_max - yv_min); // scale to viewport; } #endif dHeight *= (yw_max - yw_min); // scale to world coordinates @@ -569,7 +580,7 @@ SGP::getCharWidth () if (m_driver.isWX()) { dWidth = m_driver.idWX()->GetCharWidth(); dWidth /= static_cast(m_iPhysicalXSize); - dWidth /= (xv_max - xv_min); // scale to viewport + dWidth /= (xv_max - xv_min); // scale to viewport } #endif dWidth *= (xw_max - xw_min); //scale to world coordinates @@ -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