** This is part of the CTSim program
** Copyright (c) 1983-2001 Kevin Rosenberg
**
-** $Id: views.cpp,v 1.151 2002/05/03 00:40:30 kevin Exp $
+** $Id: views.cpp,v 1.155 2002/05/05 14:22:44 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
#include <sstream_subst>
#endif
+// Used to reduce calls to progress bar update function
+const short int ITER_PER_UPDATE = 10;
// ImageFileCanvas
#ifdef CTSIM_MDI
ySize = xSize = (xSize / 4);
#else
- ySize = xSize;
+ xSize = ySize = ySize * .7;
#endif
+
return wxSize (xSize, ySize);
}
for (int i = 0; i < pProj->nView(); i++) {
//theScanner.collectProjections (*pProj, rPhantom, i, 1, true, m_iDefaultTrace);
theScanner.collectProjections (*pProj, rPhantom, i, 1, theScanner.offsetView(), true, m_iDefaultTrace);
- if (! dlgProgress.Update (i+1)) {
- delete pProj;
- return;
- }
+ if ((i + 1) % ITER_PER_UPDATE == 0)
+ if (! dlgProgress.Update (i+1)) {
+ delete pProj;
+ return;
+ }
}
}
}
return;
}
pProjectionDoc->setProjections (pProj);
- ProjectionFileView* projView = pProjectionDoc->getView();
- if (projView) {
- projView->OnUpdate (projView, NULL);
- if (projView->getCanvas())
- projView->getCanvas()->SetClientSize (m_iDefaultNDet, m_iDefaultNView);
- if (wxFrame* pFrame = projView->getFrame()) {
- pFrame->Show(true);
- pFrame->SetFocus();
- pFrame->Raise();
- }
- GetDocumentManager()->ActivateView (projView, true, false);
- }
if (theApp->getAskDeleteNewDocs())
pProjectionDoc-> Modify(true);
pProjectionDoc->UpdateAllViews (this);
{
ImageFile* pImageFile = new ImageFile (m_iDefaultRasterNX, m_iDefaultRasterNY);
- wxProgressDialog dlgProgress (wxString("Rasterize"), wxString("Rasterization Progress"),
- pImageFile->nx() + 1, getFrameForChild(), wxPD_CAN_ABORT );
+ wxProgressDialog dlgProgress (wxString("Rasterize"),
+ wxString("Rasterization Progress"),
+ pImageFile->nx() + 1,
+ getFrameForChild(),
+ wxPD_CAN_ABORT );
Timer timer;
for (unsigned int i = 0; i < pImageFile->nx(); i++) {
- rPhantom.convertToImagefile (*pImageFile, m_dDefaultRasterViewRatio, m_iDefaultRasterNSamples, Trace::TRACE_NONE, i, 1, true);
- if (! dlgProgress.Update (i+1)) {
- delete pImageFile;
- return;
- }
+ rPhantom.convertToImagefile (*pImageFile, m_dDefaultRasterViewRatio,
+ m_iDefaultRasterNSamples, Trace::TRACE_NONE,
+ i, 1, true);
+ if ((i + 1) % ITER_PER_UPDATE == 0)
+ if (! dlgProgress.Update (i+1)) {
+ delete pImageFile;
+ return;
+ }
}
ImageFileDocument* pRasterDoc = theApp->newImageDoc();
*theApp->getLog() << os.str().c_str() << "\n";
pImageFile->labelAdd (os.str().c_str(), timer.timerEnd());
- pRasterDoc->UpdateAllViews();
+ pRasterDoc->UpdateAllViews(this);
pRasterDoc->getView()->setInitialClientSize();
pRasterDoc->Activate();
}
pIF->labelAdd (os.str().c_str());
if (theApp->getAskDeleteNewDocs())
pRectDoc->Modify (true);
+ pRectDoc->UpdateAllViews();
pRectDoc->getView()->setInitialClientSize();
pRectDoc->Activate();
}
pIF->labelAdd (os.str().c_str());
if (theApp->getAskDeleteNewDocs())
pPolarDoc->Modify (true);
- pPolarDoc->UpdateAllViews ();
+ pPolarDoc->UpdateAllViews (this);
pPolarDoc->getView()->setInitialClientSize();
pPolarDoc->Activate();
}
for (int iView = 0; iView < rProj.nView(); iView++) {
pReconstructor->reconstructView (iView, 1);
- if (! dlgProgress.Update (iView + 1)) {
- delete pReconstructor;
- return; // don't make new window, thread will do this
- }
+ if ((iView + 1) % ITER_PER_UPDATE == 0)
+ if (! dlgProgress.Update (iView + 1)) {
+ delete pReconstructor;
+ return; // don't make new window, thread will do this
+ }
}
pReconstructor->postProcessing();
delete pReconstructor;
ProjectionFileView::setInitialClientSize ()
{
wxSize bestSize = m_pCanvas->GetBestSize();
-
+
if (bestSize.x > 800)
bestSize.x = 800;
if (bestSize.y > 800)
wxImage image (nDet, nView, imageData, true);
m_bitmap = image.ConvertToBitmap();
delete imageData;
- //int xSize = nDet;
- //int ySize = nView;
- //xSize = clamp (xSize, 0, 800);
- //ySize = clamp (ySize, 0, 800);
- //m_pFrame->SetClientSize (xSize, ySize);
- m_pCanvas->SetScrollbars (20, 20, nDet/20, nView/20);
}
- if (m_pCanvas)
- m_pCanvas->Refresh();
+ m_pCanvas->SetScrollbars(20, 20, nDet/20, nView/20);
+ m_pCanvas->SetBackgroundColour(*wxWHITE);
+
+ if (m_pCanvas)
+ m_pCanvas->Refresh();
}
bool
}
wxSize
-PlotFileCanvas::GetBestSize() const
+TextFileCanvas::GetBestSize() const
{
int xSize, ySize;
theApp->getMainFrame()->GetClientSize (&xSize, &ySize);