** Date Started: August 2000
**
** This is part of the CTSim program
- ** Copyright (c) 1983-2001 Kevin Rosenberg
- **
- ** $Id: dlgprojections.cpp,v 1.26 2002/05/30 06:27:46 kevin Exp $
+ ** Copyright (c) 1983-2009 Kevin Rosenberg
**
** 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
** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
******************************************************************************/
-#ifdef __GNUG__
-#pragma implementation "dlgprojections.h"
-#endif
-
#include "wx/wxprec.h"
#ifndef WX_PRECOMP
ProjectionsDialog::ProjectionsDialog (Scanner& rScanner, Projections& rProj, const Phantom& rPhantom, const int iTrace, wxWindow *parent)
- : wxDialog(parent, -1, "Collect Projections", wxDefaultPosition), m_rScanner(rScanner), m_rProjections(rProj), m_rPhantom(rPhantom),
+: wxDialog(parent, -1, _T("Collect Projections"), wxDefaultPosition), m_rScanner(rScanner), m_rProjections(rProj), m_rPhantom(rPhantom),
m_pSGPDriver(NULL), m_pSGP(NULL), m_iTrace(iTrace), m_pDC(NULL), m_btnAbort(0), m_btnPause(0), m_btnStep(0)
{
m_state = Continue;
m_parentTop = parent;
while ( m_parentTop && m_parentTop->GetParent() )
m_parentTop = m_parentTop->GetParent();
-
+
m_btnAbort = new wxButton(this, wxID_CANCEL, _("Cancel"));
wxLayoutConstraints* c = new wxLayoutConstraints;
c->right.SameAs(this, wxRight, 2*LAYOUT_X_MARGIN);
c->bottom.SameAs(this, wxBottom, 2*LAYOUT_Y_MARGIN);
-
+
wxSize sizeBtn = wxButton::GetDefaultSize();
c->width.Absolute(sizeBtn.x);
c->height.Absolute(sizeBtn.y);
-
+
m_btnAbort->SetConstraints(c);
-
- m_btnPause = new wxButton (this, ID_BTN_PAUSE, wxString("Pause"));
+
+ m_btnPause = new wxButton (this, ID_BTN_PAUSE, _T("Pause"));
wxLayoutConstraints* cPause = new wxLayoutConstraints;
cPause->right.SameAs(this, wxRight, 3*LAYOUT_X_MARGIN + sizeBtn.x);
cPause->bottom.SameAs(this, wxBottom, 2*LAYOUT_Y_MARGIN);
cPause->width.Absolute(sizeBtn.x);
cPause->height.Absolute(sizeBtn.y);
m_btnPause->SetConstraints(cPause);
-
- m_btnStep = new wxButton (this, ID_BTN_STEP, wxString("Step"));
+
+ m_btnStep = new wxButton (this, ID_BTN_STEP, _T("Step"));
wxLayoutConstraints* cStep = new wxLayoutConstraints;
cStep->right.SameAs(this, wxRight, 5*LAYOUT_X_MARGIN + sizeBtn.x * 2);
cStep->bottom.SameAs(this, wxBottom, 2*LAYOUT_Y_MARGIN);
cStep->width.Absolute(sizeBtn.x);
cStep->height.Absolute(sizeBtn.y);
m_btnStep->SetConstraints(cStep);
-
+
SetAutoLayout(TRUE);
Layout();
-
+
wxSize sizeDlg (500,500);
if (sizeDlg.x != sizeDlg.y) {
sizeDlg.x = imax(sizeDlg.x,sizeDlg.y);
}
if (m_iTrace >= Trace::TRACE_PLOT)
sizeDlg.x += 250;
-
+
m_iClientX = sizeDlg.x;
m_iClientY = sizeDlg.y;
SetClientSize(sizeDlg);
-
+
Centre(wxCENTER_FRAME | wxBOTH);
-
+
if ( m_parentTop )
m_parentTop->Enable(FALSE);
-
+
Show(TRUE);
Enable(TRUE); // enable this window
-
+
m_bitmap.Create (m_iClientX, m_iClientY); // save a copy of screen
m_pDC = dynamic_cast<wxDC*> (new wxClientDC (this));
int x, y;
this->GetClientSize(&x, &y);
m_pSGPDriver = new SGPDriver (m_pDC, x, y);
m_pSGP = new SGP (*m_pSGPDriver);
-
+
wxYield(); // Update the display
-
+
m_pSGP->setTextPointSize(10);
#ifdef __WXMAC__
- MacUpdateImmediately();
+ // MacUpdateImmediately();
#endif
}
const DetectorValue* detValues = detArray.detValues();
double* detPos = new double [detArray.nDet()];
for (int i = 0; i < detArray.nDet(); i++)
- detPos[i] = i;
+ detPos[i] = i;
EZPlot ezplot;
ezplot.ezset ("grid");
ezplot.ezset ("box");
{
if (iViewNumber <= m_iLastView) // already done this view
return true;
-
+
if (iViewNumber < m_rProjections.nView()) {
showView (iViewNumber);
wxYield(); // update the display
if (m_iTrace >= Trace::TRACE_PLOT) {
- ::wxUsleep(500);
+ ::wxMilliSleep(500);
}
} else {
- m_state = Finished; // so that we return TRUE below and
+ m_state = Finished; // so that we return TRUE below and
// that [Cancel] handler knew what to do
}
-
+
#ifdef __WXMAC__
- MacUpdateImmediately();
+ // MacUpdateImmediately();
#endif
-
+
return m_state != Cancelled;
}
// request to cancel was received, the next time Update() is called we
// will handle it
m_state = Cancelled;
-
+
// update the button state immediately so that the user knows that the
// request has been noticed
m_btnAbort->Disable();
}
-void
+void
ProjectionsDialog::OnPause (wxCommandEvent& event)
{
if ( m_state == Finished ) {
m_pSGP->setDC (&m_memoryDC);
showView (m_iLastView);
m_state = Paused;
- m_btnPause->SetLabel (wxString("Resume"));
+ m_btnPause->SetLabel (_T("Resume"));
m_pSGP->setDC (m_pDC);
m_memoryDC.SelectObject(wxNullBitmap);
} else if (m_state == Paused) {
m_state = Continue;
- m_btnPause->SetLabel (wxString("Pause"));
+ m_btnPause->SetLabel (_T("Pause"));
}
}
-void
+void
ProjectionsDialog::OnStep (wxCommandEvent& event)
{
if ( m_state == Finished ) {
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"));
+ m_btnPause->SetLabel (_T("Resume"));
m_pSGP->setDC (m_pDC);
m_memoryDC.SelectObject(wxNullBitmap);
Refresh();
{
if ( m_parentTop )
m_parentTop->Enable(TRUE);
-
+
delete m_pSGP;
delete m_pSGPDriver;
delete m_pDC;