** This is part of the CTSim program
** Copyright (c) 1983-2001 Kevin Rosenberg
**
-** $Id: ctsim.cpp,v 1.104 2001/09/24 15:16:41 kevin Exp $
+** $Id: ctsim.cpp,v 1.105 2002/05/03 00:40:30 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
#endif
#endif
-static const char* rcsindent = "$Id: ctsim.cpp,v 1.104 2001/09/24 15:16:41 kevin Exp $";
+static const char* rcsindent = "$Id: ctsim.cpp,v 1.105 2002/05/03 00:40:30 kevin Exp $";
struct option CTSimApp::ctsimOptions[] =
{
int xSize, ySize;
m_pFrame->GetClientSize(&xSize, &ySize);
int yLogSize = ySize / 4;
- m_pLogDoc->getView()->getFrame()->SetSize (0, ySize - yLogSize, xSize, yLogSize);
+ m_pLogDoc->getView()->getFrame()->SetClientSize (0, ySize - yLogSize, xSize, yLogSize);
m_pLogDoc->getView()->getFrame()->Show (true);
} else
#else
int xSize, ySize;
GetClientSize(&xSize, &ySize);
int yLogSize = ySize / 4;
- theApp->getLogDoc()->getView()->getFrame()->SetSize (0, ySize - yLogSize, xSize, yLogSize);
- theApp->getLogDoc()->getView()->getFrame()->Show (true);
+ theApp->getLogDoc()->getView()->getFrame()->SetSize (0, ySize - yLogSize, xSize, yLogSize);
+ theApp->getLogDoc()->getView()->getFrame()->Show (true);
}
#endif
return;
}
pImageDoc->setImageFile (pImageFile);
- pImageDoc->UpdateAllViews (NULL);
- if (ImageFileView* imageView = pImageDoc->getView()) {
- imageView->OnUpdate (imageView, NULL);
- imageView->getFrame()->SetFocus();
- imageView->getFrame()->Show(true);
- }
+ // pImageDoc->UpdateAllViews (NULL);
+ // if (ImageFileView* imageView = pImageDoc->getView()) {
+ // imageView->OnUpdate (imageView, NULL);
+ // imageView->getFrame()->SetFocus();
+ // imageView->getFrame()->Show(true);
+ // }
if (theApp->getAskDeleteNewDocs())
pImageDoc->Modify (true);
-
}
void
if (pView) {
wxFrame* pFrame = pView->getFrame();
if (pFrame) {
- pFrame->SetSize (0,0);
+ // wxSize size;
+ // m_pFrame->GetClientSize (&size.x, &size.y);
+ // pFrame->SetClientSize (size.x / 2, size.y / 2);
pFrame->Show (false);
}
}
{
ImageFileDocument* newDoc = dynamic_cast<ImageFileDocument*>(m_pDocTemplImage->CreateDocument (""));
if (newDoc) {
- ImageFileView* pView = newDoc->getView();
- if (pView) {
- wxFrame* pFrame = pView->getFrame();
- if (pFrame) {
- pFrame->SetSize (0,0);
- pFrame->Show (false);
- }
- }
newDoc->SetDocumentName (m_pDocTemplImage->GetDocumentName());
newDoc->SetDocumentTemplate (m_pDocTemplImage);
newDoc->OnNewDocument();
{
PlotFileDocument* newDoc = dynamic_cast<PlotFileDocument*>(m_pDocTemplPlot->CreateDocument (""));
if (newDoc) {
- PlotFileView* pView = newDoc->getView();
- if (pView) {
- wxFrame* pFrame = pView->getFrame();
- if (pFrame) {
- wxSize size;
- m_pFrame->GetClientSize (&size.x, &size.y);
- pFrame->SetSize (size.x / 2, size.y / 2);
- pFrame->Show (false);
- }
- }
newDoc->SetDocumentName (m_pDocTemplPlot->GetDocumentName());
newDoc->SetDocumentTemplate (m_pDocTemplPlot);
newDoc->OnNewDocument();
TextFileDocument* newDoc = dynamic_cast<TextFileDocument*>(m_pDocTemplText->CreateDocument (""));
if (newDoc) {
- TextFileView* pView = newDoc->getView();
- if (pView) {
- wxFrame* pFrame = pView->getFrame();
- if (pFrame) {
- wxSize size;
- m_pFrame->GetClientSize (&size.x, &size.y);;
- pFrame->SetSize (size.x / 2, size.y / 2);
- pFrame->Show (false);
- }
- }
newDoc->SetDocumentName (m_pDocTemplText->GetDocumentName());
newDoc->SetDocumentTemplate (m_pDocTemplText);
newDoc->OnNewDocument();
{
PhantomFileDocument* newDoc = dynamic_cast<PhantomFileDocument*>(m_pDocTemplPhantom->CreateDocument (""));
if (newDoc) {
- PhantomFileView* pView = newDoc->getView();
- if (pView) {
- wxFrame* pFrame = pView->getFrame();
- if (pFrame)
- pFrame->SetSize (0,0);
- }
newDoc->SetDocumentName (m_pDocTemplPhantom->GetDocumentName());
newDoc->SetDocumentTemplate (m_pDocTemplPhantom);
newDoc->OnNewDocument();
{
Graph3dFileDocument* newDoc = dynamic_cast<Graph3dFileDocument*>(m_pDocTemplGraph3d->CreateDocument (""));
if (newDoc) {
- Graph3dFileView* pView = newDoc->getView();
- if (pView) {
- wxFrame* pFrame = pView->getFrame();
- if (pFrame)
- pFrame->SetSize (0,0);
- }
newDoc->SetDocumentName (m_pDocTemplGraph3d->GetDocumentName());
newDoc->SetDocumentTemplate (m_pDocTemplGraph3d);
newDoc->OnNewDocument();
** This is part of the CTSim program
** Copyright (c) 1983-2001 Kevin Rosenberg
**
-** $Id: views.cpp,v 1.150 2002/05/01 15:17:36 kevin Exp $
+** $Id: views.cpp,v 1.151 2002/05/03 00:40:30 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
pDifferenceImage->labelAdd (os.str().c_str());
if (theApp->getAskDeleteNewDocs())
pDifferenceDoc->Modify (true);
- pDifferenceDoc->UpdateAllViews (this);
- pDifferenceDoc->getView()->OnUpdate (this, NULL);
- pDifferenceDoc->getView()->getFrame()->Show(true);
+ pDifferenceDoc->UpdateAllViews(this);
+ pDifferenceDoc->getView()->setInitialClientSize();
pDifferenceDoc->Activate();
}
wxMessageBox(os.str().c_str(), "Image Comparison");
if (theApp->getAskDeleteNewDocs())
pNewDoc->Modify (true);
pNewDoc->UpdateAllViews (this);
- pNewDoc->getView()->getFrame()->Show(true);
+ pNewDoc->getView()->setInitialClientSize();
pNewDoc->Activate();
}
}
if (theApp->getAskDeleteNewDocs())
pNewDoc->Modify (true);
pNewDoc->UpdateAllViews (this);
- pNewDoc->getView()->getFrame()->Show(true);
+ pNewDoc->getView()->setInitialClientSize();
pNewDoc->Activate();
}
}
if (theApp->getAskDeleteNewDocs())
pNewDoc->Modify (true);
pNewDoc->UpdateAllViews (this);
- pNewDoc->getView()->getFrame()->Show(true);
+ pNewDoc->getView()->setInitialClientSize();
pNewDoc->Activate();
}
}
if (theApp->getAskDeleteNewDocs())
pNewDoc->Modify (true);
pNewDoc->UpdateAllViews (this);
- pNewDoc->getView()->getFrame()->Show(true);
+ pNewDoc->getView()->setInitialClientSize();
pNewDoc->Activate();
}
}
return true;
}
+void
+ImageFileView::setInitialClientSize ()
+{
+ if (m_pFrame && m_pCanvas) {
+ wxSize bestSize = m_pCanvas->GetBestSize();
+
+ if (bestSize.x > 800)
+ bestSize.x = 800;
+ if (bestSize.y > 800)
+ bestSize.y = 800;
+
+ m_pFrame->SetClientSize (bestSize);
+ m_pFrame->Show (true);
+ m_pFrame->SetFocus();
+ }
+}
+
void
ImageFileView::OnDraw (wxDC* dc)
{
- wxSize sizeWindow = m_pFrame->GetClientSize();
- wxSize sizeBest = m_pCanvas->GetBestSize();
- if (sizeWindow.x > sizeBest.x || sizeWindow.y > sizeBest.y)
- m_pFrame->SetClientSize (sizeBest);
-
if (m_bitmap.Ok())
dc->DrawBitmap(m_bitmap, 0, 0, false);
wxImage image (nx, ny, imageData, true);
m_bitmap = image.ConvertToBitmap();
delete imageData;
- int xSize = nx;
- int ySize = ny;
- ySize = clamp (ySize, 0, 800);
- // m_pFrame->SetClientSize (xSize, ySize); // KMR
m_pCanvas->SetScrollbars(20, 20, nx/20, ny/20);
m_pCanvas->SetBackgroundColour(*wxWHITE);
}
if (theApp->getAskDeleteNewDocs())
pScaledDoc->Modify (true);
pScaledDoc->UpdateAllViews (this);
- pScaledDoc->getView()->getFrame()->Show(true);
+ pScaledDoc->getView()->setInitialClientSize();
pScaledDoc->Activate();
}
}
if (theApp->getAskDeleteNewDocs())
pProjectionDoc-> Modify(true);
pProjectionDoc->UpdateAllViews (this);
+ pProjectionDoc->getView()->setInitialClientSize();
pProjectionDoc->Activate();
}
*theApp->getLog() << os.str().c_str() << "\n";
pImageFile->labelAdd (os.str().c_str(), timer.timerEnd());
- if (ImageFileView* rasterView = pRasterDoc->getView()) {
- rasterView->getFrame()->Show(true);
- rasterView->getFrame()->SetFocus();
- rasterView->OnUpdate (rasterView, NULL);
- }
- // Causes loss of frame in wxGTK
- // pRasterDoc->UpdateAllViews (this);
- // pRasterDoc->Activate();
+ pRasterDoc->UpdateAllViews();
+ pRasterDoc->getView()->setInitialClientSize();
+ pRasterDoc->Activate();
}
}
m_pCanvas = CreateCanvas (m_pFrame);
m_pFrame->SetClientSize (m_pCanvas->GetBestSize());
m_pCanvas->SetClientSize (m_pCanvas->GetBestSize());
-
m_pFrame->SetTitle ("PhantomFileView");
-
-#ifdef __X__
- int x, y; // X requires a forced resize
- m_pFrame->GetSize(&x, &y);
- m_pFrame->SetSize(-1, -1, x, y);
-#endif
-
+
m_pFrame->Show(true);
Activate(true);
ProjectionFileCanvas::GetBestSize () const
{
wxSize best (0, 0);
+ if (! m_pView)
+ return best;
+
if (m_pView) {
Projections& rProj = m_pView->GetDocument()->getProjections();
best.Set (rProj.nDet(), rProj.nView());
pIF->labelAdd (os.str().c_str());
if (theApp->getAskDeleteNewDocs())
pRectDoc->Modify (true);
- pRectDoc->getView()->getFrame()->Show(true);
- pRectDoc->UpdateAllViews ();
+ pRectDoc->getView()->setInitialClientSize();
pRectDoc->Activate();
}
pIF->labelAdd (os.str().c_str());
if (theApp->getAskDeleteNewDocs())
pPolarDoc->Modify (true);
- pPolarDoc->getView()->getFrame()->Show(true);
pPolarDoc->UpdateAllViews ();
+ pPolarDoc->getView()->setInitialClientSize();
pPolarDoc->Activate();
}
}
pIF->labelAdd (os.str().c_str());
if (theApp->getAskDeleteNewDocs())
pPolarDoc->Modify (true);
- pPolarDoc->getView()->getFrame()->Show(true);
pPolarDoc->UpdateAllViews ();
+ pPolarDoc->getView()->setInitialClientSize();
pPolarDoc->Activate();
}
}
if (theApp->getAskDeleteNewDocs())
pProjDocNew-> Modify(true);
pProjDocNew->UpdateAllViews (this);
+ pProjDocNew->getView()->setInitialClientSize();
pProjDocNew->Activate();
}
pIF->labelAdd (os.str().c_str());
if (theApp->getAskDeleteNewDocs())
pPolarDoc->Modify (true);
- pPolarDoc->getView()->getFrame()->Show(true);
pPolarDoc->UpdateAllViews ();
+ pPolarDoc->getView()->setInitialClientSize();
pPolarDoc->Activate();
}
}
sys_error (ERR_SEVERE, "Unable to create image file");
return;
}
- pReconDoc->setImageFile (pImageFile);
- if (theApp->getAskDeleteNewDocs())
- pReconDoc->Modify (true);
*theApp->getLog() << os.str().c_str() << "\n";
pImageFile->labelAdd (rProj.getLabel());
pImageFile->labelAdd (os.str().c_str(), timerRecon.timerEnd());
- // if (ImageFileView* rasterView = pReconDoc->getView()) {
- // rasterView->getFrame()->Show(true);
- // rasterView->getFrame()->SetFocus();
- // rasterView->OnUpdate (rasterView, NULL);
- // }
- // causes loss of frame in wxGTK
- pReconDoc->GetFirstView()->GetFrame()->Show(true);
- pReconDoc->UpdateAllViews ();
- // pReconDoc->Activate();
+ pReconDoc->setImageFile (pImageFile);
+ if (theApp->getAskDeleteNewDocs())
+ pReconDoc->Modify (true);
+ pReconDoc->UpdateAllViews();
+ pReconDoc->getView()->setInitialClientSize();
+ pReconDoc->Activate();
}
m_pFrame->SetTitle ("ProjectionFileView");
m_pCanvas = CreateCanvas (m_pFrame);
-#ifdef __X__
- int x, y; // X requires a forced resize
- m_pFrame->GetSize(&x, &y);
- m_pFrame->SetSize(-1, -1, x, y);
-#endif
-
m_pFrame->Show(true);
Activate(true);
void
ProjectionFileView::OnDraw (wxDC* dc)
{
- wxSize clientSize = m_pFrame->GetClientSize();
- wxSize bestSize = m_pCanvas->GetBestSize();
-
- if (clientSize.x > bestSize.x || clientSize.y > bestSize.y)
- m_pFrame->SetClientSize (bestSize);
-
if (m_bitmap.Ok())
dc->DrawBitmap (m_bitmap, 0, 0, false);
}
+void
+ProjectionFileView::setInitialClientSize ()
+{
+ wxSize bestSize = m_pCanvas->GetBestSize();
+
+ if (bestSize.x > 800)
+ bestSize.x = 800;
+ if (bestSize.y > 800)
+ bestSize.y = 800;
+
+ m_pFrame->SetClientSize (bestSize);
+ m_pFrame->Show (true);
+ m_pFrame->SetFocus();
+}
+
void
ProjectionFileView::OnUpdate (wxView *WXUNUSED(sender), wxObject *WXUNUSED(hint) )
{
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);
+ //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);
}
m_pView = v;
}
+wxSize
+PlotFileCanvas::GetBestSize() const
+{
+ if (! m_pView)
+ return wxSize(0,0);
+
+ int xSize, ySize;
+ theApp->getMainFrame()->GetClientSize (&xSize, &ySize);
+ xSize = maxValue<int> (xSize, ySize);
+#ifdef CTSIM_MDI
+ ySize = xSize = (xSize / 4);
+#else
+ ySize = xSize;
+#endif
+ return wxSize (xSize, ySize);
+}
+
PlotFileCanvas::~PlotFileCanvas ()
{
m_pView = NULL;
m_pFrame->SetTitle ("Plot File");
m_pCanvas = CreateCanvas (m_pFrame);
-#ifdef __X__
- int x, y; // X requires a forced resize
- m_pFrame->GetSize(&x, &y);
- m_pFrame->SetSize(-1, -1, x, y);
-#endif
-
m_pFrame->Show(true);
Activate(true);
m_pCanvas = new TextFileCanvas (this, m_pFrame, wxPoint(0, 0), wxSize(width, height), wxTE_MULTILINE | wxTE_READONLY);
m_pFrame->SetTitle("Log");
-#ifdef __X__
- // X seems to require a forced resize
- int x, y;
- frame->GetSize(&x, &y);
- frame->SetSize(-1, -1, x, y);
-#endif
-
m_pFrame->Show (true);
Activate (true);
{
m_pView = NULL;
}
+
+wxSize
+PlotFileCanvas::GetBestSize() const
+{
+ int xSize, ySize;
+ theApp->getMainFrame()->GetClientSize (&xSize, &ySize);
+ xSize = maxValue<int> (xSize, ySize);
+#ifdef CTSIM_MDI
+ ySize = xSize = (xSize / 4);
+#else
+ ySize = xSize;
+#endif
+ return wxSize (xSize, ySize);
+}