X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;ds=sidebyside;f=src%2Fdlgprojections.cpp;h=489d912b99097fb16eaddef99bac7057f52b3dfb;hb=5c6b29ab4885308cc3381af6e0a68f4804956d2e;hp=cc5b246f85c2e39972518b8f0e626b190c9cfc54;hpb=e9222e8a8190ca48f30a1359badae06bcb200210;p=ctsim.git diff --git a/src/dlgprojections.cpp b/src/dlgprojections.cpp index cc5b246..489d912 100644 --- a/src/dlgprojections.cpp +++ b/src/dlgprojections.cpp @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: dlgprojections.cpp,v 1.10 2000/12/18 05:40:30 kevin Exp $ +** $Id: dlgprojections.cpp,v 1.14 2000/12/29 15:45:06 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 @@ -147,8 +147,10 @@ ProjectionsDialog::showView (int iViewNumber) if ( iViewNumber < m_rProjections.nView() ) { m_iLastView = iViewNumber; ::wxYield(); // update the display - m_pSGP->eraseWindow(); - Refresh(); + m_pSGP->eraseWindow(); + m_btnPause->Refresh(); + m_btnStep->Refresh(); + m_btnAbort->Refresh(); if (m_iTrace >= Trace::TRACE_PLOT) m_pSGP->setViewport (0, 0, 0.66, 1); @@ -161,12 +163,13 @@ ProjectionsDialog::showView (int iViewNumber) double* detPos = new double [detArray.nDet()]; for (int i = 0; i < detArray.nDet(); i++) detPos[i] = i; - EZPlot ezplot (*m_pSGP); - ezplot.ezset("grid"); - ezplot.ezset("box"); + EZPlot ezplot; + ezplot.ezset ("grid"); + ezplot.ezset ("box"); + ezplot.ezset ("yticks left"); ezplot.addCurve (detValues, detPos, detArray.nDet()); m_pSGP->setViewport (0.67, 0.1, 1., 1.); - ezplot.plot(); + ezplot.plot (m_pSGP); delete detPos; } } @@ -221,8 +224,6 @@ void ProjectionsDialog::OnPause (wxCommandEvent& event) { if ( m_state == Finished ) { - // this means that the count down is already finished and we're being - // shown as a modal dialog - so just let the default handler do the job event.Skip(); } else if (m_state == Continue) { m_memoryDC.SelectObject (m_bitmap); // in memoryDC @@ -231,9 +232,9 @@ ProjectionsDialog::OnPause (wxCommandEvent& event) showView (m_iLastView); m_state = Paused; m_btnPause->SetLabel (wxString("Resume")); - } else if (m_state == Paused) { m_pSGP->setDC (m_pDC); m_memoryDC.SelectObject(wxNullBitmap); + } else if (m_state == Paused) { m_state = Continue; m_btnPause->SetLabel (wxString("Pause")); } @@ -243,20 +244,26 @@ void ProjectionsDialog::OnStep (wxCommandEvent& event) { if ( m_state == Finished ) { - // this means that the count down is already finished and we're being - // shown as a modal dialog - so just let the default handler do the job event.Skip(); } else if (m_state == Continue) { m_memoryDC.SelectObject (m_bitmap); // in memoryDC m_pSGP->setDC (&m_memoryDC); - m_memoryDC.SetFont (*wxSWISS_FONT); - m_rScanner.collectProjections (m_rProjections, m_rPhantom, m_iLastView, 1, true, m_iTrace, m_pSGP); + m_memoryDC.SetFont (*wxSWISS_FONT); + showView (m_iLastView); + // m_rScanner.collectProjections (m_rProjections, m_rPhantom, m_iLastView, 1, true, m_iTrace, m_pSGP); m_state = Paused; m_btnPause->SetLabel (wxString("Resume")); - } else if (m_state == Paused) { m_pSGP->setDC (m_pDC); m_memoryDC.SelectObject(wxNullBitmap); + Refresh(); + } else if (m_state == Paused) { + m_memoryDC.SelectObject (m_bitmap); // in memoryDC + m_pSGP->setDC (&m_memoryDC); + m_memoryDC.SetFont (*wxSWISS_FONT); projectView (m_iLastView + 1); + m_pSGP->setDC (m_pDC); + m_memoryDC.SelectObject(wxNullBitmap); + Refresh(); } } @@ -275,7 +282,7 @@ ProjectionsDialog::OnPaint (wxPaintEvent& event) { wxPaintDC paintDC (this); if (m_state == Paused) { - paintDC.DrawBitmap(m_bitmap, 0, 0, false); + paintDC.DrawBitmap (m_bitmap, 0, 0, false); } }