X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=blobdiff_plain;f=src%2Fdlgprojections.cpp;h=3c5854e6ff683ee16e1b5d6094164abdc1cac270;hp=9ec9e84faf03805e4e23687d4612d22d35589707;hb=d84febd85035c7985334618cdda43df21824efbe;hpb=8a7697ce57b56cdc43698cd1241ad98d49f9b5ac diff --git a/src/dlgprojections.cpp b/src/dlgprojections.cpp index 9ec9e84..3c5854e 100644 --- a/src/dlgprojections.cpp +++ b/src/dlgprojections.cpp @@ -7,9 +7,7 @@ ** Date Started: August 2000 ** ** This is part of the CTSim program - ** Copyright (c) 1983-2001 Kevin Rosenberg - ** - ** $Id$ + ** 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 @@ -58,8 +56,8 @@ BEGIN_EVENT_TABLE(ProjectionsDialog, wxDialog) IMPLEMENT_CLASS(ProjectionsDialog, wxDialog) - 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), +ProjectionsDialog::ProjectionsDialog (Scanner& rScanner, Projections& rProj, const Phantom& rPhantom, const int iTrace, wxWindow *parent) +: 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; @@ -67,37 +65,37 @@ BEGIN_EVENT_TABLE(ProjectionsDialog, wxDialog) 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); @@ -105,31 +103,31 @@ BEGIN_EVENT_TABLE(ProjectionsDialog, wxDialog) } 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 (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); + + m_pSGP->setTextPointSize(7); #ifdef __WXMAC__ - MacUpdateImmediately(); + // MacUpdateImmediately(); #endif } @@ -154,7 +152,7 @@ ProjectionsDialog::showView (int iViewNumber) 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"); @@ -182,22 +180,22 @@ ProjectionsDialog::projectView (int iViewNumber) { 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; } @@ -214,7 +212,7 @@ void ProjectionsDialog::OnCancel (wxCommandEvent& event) // 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(); @@ -222,7 +220,7 @@ void ProjectionsDialog::OnCancel (wxCommandEvent& event) } -void +void ProjectionsDialog::OnPause (wxCommandEvent& event) { if ( m_state == Finished ) { @@ -232,16 +230,16 @@ ProjectionsDialog::OnPause (wxCommandEvent& event) 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 ) { @@ -252,7 +250,7 @@ ProjectionsDialog::OnStep (wxCommandEvent& event) 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(); @@ -293,9 +291,8 @@ ProjectionsDialog::~ProjectionsDialog() { if ( m_parentTop ) m_parentTop->Enable(TRUE); - + delete m_pSGP; delete m_pSGPDriver; delete m_pDC; } -