** This is part of the CTSim program
** Copyright (c) 1983-2001 Kevin Rosenberg
**
-** $Id: views.cpp,v 1.87 2001/01/28 22:45:54 kevin Exp $
+** $Id: views.cpp,v 1.90 2001/01/30 02:20:50 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
BEGIN_EVENT_TABLE(ImageFileCanvas, wxScrolledWindow)
EVT_MOUSE_EVENTS(ImageFileCanvas::OnMouseEvent)
+EVT_CHAR(ImageFileCanvas::OnChar)
END_EVENT_TABLE()
}
}
+void
+ImageFileCanvas::OnChar (wxKeyEvent& event)
+{
+ if (event.GetKeyCode() == WXK_ESCAPE) {
+ m_xCursor = -1;
+ m_yCursor = -1;
+ if (m_pView)
+ m_pView->OnUpdate (NULL);
+ } else
+ wxScrolledWindow::OnChar (event);
+}
+
wxSize
ImageFileCanvas::GetBestSize() const
{
<< " and " << pCompareDoc->GetFirstView()->GetFrame()->GetTitle().c_str() << ": "
<< os.str().c_str();
differenceImage.labelAdd (os.str().c_str());
- if (theApp->getSetModifyNewDocs())
- pDifferenceDoc->Modify (true);
+ pDifferenceDoc->Modify (true);
pDifferenceDoc->UpdateAllViews (this);
pDifferenceDoc->getView()->OnUpdate (this, NULL);
pDifferenceDoc->getView()->getFrame()->Show(true);
ImageFile& rIF = GetDocument()->getImageFile();
rIF.invertPixelValues (rIF);
rIF.labelAdd ("Invert Pixel Values");
- if (theApp->getSetModifyNewDocs())
- GetDocument()->Modify(TRUE);
+ GetDocument()->Modify (true);
GetDocument()->UpdateAllViews (this);
}
ImageFile& rIF = GetDocument()->getImageFile();
rIF.square (rIF);
rIF.labelAdd ("Square Pixel Values");
- if (theApp->getSetModifyNewDocs())
- GetDocument()->Modify(TRUE);
+ GetDocument()->Modify (true);
GetDocument()->UpdateAllViews (this);
}
ImageFile& rIF = GetDocument()->getImageFile();
rIF.sqrt (rIF);
rIF.labelAdd ("Square-root Pixel Values");
- if (theApp->getSetModifyNewDocs())
- GetDocument()->Modify(TRUE);
+ GetDocument()->Modify (true);
GetDocument()->UpdateAllViews (this);
}
ImageFile& rIF = GetDocument()->getImageFile();
rIF.log (rIF);
rIF.labelAdd ("Logrithm base-e Pixel Values");
- if (theApp->getSetModifyNewDocs())
- GetDocument()->Modify(TRUE);
+ GetDocument()->Modify (true);
GetDocument()->UpdateAllViews (this);
}
ImageFile& rIF = GetDocument()->getImageFile();
rIF.exp (rIF);
rIF.labelAdd ("Exponent base-e Pixel Values");
- if (theApp->getSetModifyNewDocs())
- GetDocument()->Modify(TRUE);
+ GetDocument()->Modify (true);
GetDocument()->UpdateAllViews (this);
}
newImage.labelsCopy (rRHSIF, s.c_str());
newImage.labelAdd (os.str().c_str());
*theApp->getLog() << os.str().c_str() << "\n";
- if (theApp->getSetModifyNewDocs())
- pNewDoc->Modify(TRUE);
+ pNewDoc->Modify (true);
pNewDoc->UpdateAllViews (this);
pNewDoc->getView()->OnUpdate (this, NULL);
pNewDoc->getView()->getFrame()->Show(true);
newImage.labelsCopy (rRHSIF, s.c_str());
newImage.labelAdd (os.str().c_str());
*theApp->getLog() << os.str().c_str() << "\n";
- if (theApp->getSetModifyNewDocs())
- pNewDoc->Modify(TRUE);
+ pNewDoc->Modify (true);
pNewDoc->UpdateAllViews (this);
pNewDoc->getView()->OnUpdate (this, NULL);
pNewDoc->getView()->getFrame()->Show(true);
newImage.labelsCopy (rRHSIF, s.c_str());
newImage.labelAdd (os.str().c_str());
*theApp->getLog() << os.str().c_str() << "\n";
- if (theApp->getSetModifyNewDocs())
- pNewDoc->Modify(TRUE);
+ pNewDoc->Modify (true);
pNewDoc->UpdateAllViews (this);
pNewDoc->getView()->OnUpdate (this, NULL);
pNewDoc->getView()->getFrame()->Show(true);
newImage.labelsCopy (rRHSIF, s.c_str());
newImage.labelAdd (os.str().c_str());
*theApp->getLog() << os.str().c_str() << "\n";
- if (theApp->getSetModifyNewDocs())
- pNewDoc->Modify(TRUE);
+ pNewDoc->Modify (true);
pNewDoc->UpdateAllViews (this);
pNewDoc->getView()->OnUpdate (this, NULL);
pNewDoc->getView()->getFrame()->Show(true);
rIF.labelAdd ("FFT Image");
m_bMinSpecified = false;
m_bMaxSpecified = false;
- if (theApp->getSetModifyNewDocs())
- GetDocument()->Modify(TRUE);
+ GetDocument()->Modify (true);
GetDocument()->UpdateAllViews (this);
}
rIF.labelAdd ("IFFT Image");
m_bMinSpecified = false;
m_bMaxSpecified = false;
- if (theApp->getSetModifyNewDocs())
- GetDocument()->Modify(TRUE);
+ GetDocument()->Modify (true);
GetDocument()->UpdateAllViews (this);
}
rIF.labelAdd ("FFT Rows");
m_bMinSpecified = false;
m_bMaxSpecified = false;
- if (theApp->getSetModifyNewDocs())
- GetDocument()->Modify(TRUE);
+ GetDocument()->Modify (true);
GetDocument()->UpdateAllViews (this);
}
rIF.labelAdd ("IFFT Rows");
m_bMinSpecified = false;
m_bMaxSpecified = false;
- if (theApp->getSetModifyNewDocs())
- GetDocument()->Modify(TRUE);
+ GetDocument()->Modify (true);
GetDocument()->UpdateAllViews (this);
}
rIF.labelAdd ("FFT Columns");
m_bMinSpecified = false;
m_bMaxSpecified = false;
- if (theApp->getSetModifyNewDocs())
- GetDocument()->Modify(TRUE);
+ GetDocument()->Modify (true);
GetDocument()->UpdateAllViews (this);
}
rIF.labelAdd ("IFFT Columns");
m_bMinSpecified = false;
m_bMaxSpecified = false;
- if (theApp->getSetModifyNewDocs())
- GetDocument()->Modify(TRUE);
+ GetDocument()->Modify (true);
GetDocument()->UpdateAllViews (this);
}
#endif
rIF.labelAdd ("Fourier Image");
m_bMinSpecified = false;
m_bMaxSpecified = false;
- if (theApp->getSetModifyNewDocs())
- GetDocument()->Modify(TRUE);
+ GetDocument()->Modify (true);
GetDocument()->UpdateAllViews (this);
}
rIF.labelAdd ("Inverse Fourier Image");
m_bMinSpecified = false;
m_bMaxSpecified = false;
- if (theApp->getSetModifyNewDocs())
- GetDocument()->Modify(TRUE);
+ GetDocument()->Modify (true);
GetDocument()->UpdateAllViews (this);
}
rIF.labelAdd ("Shuffle Natural To Fourier Order");
m_bMinSpecified = false;
m_bMaxSpecified = false;
- if (theApp->getSetModifyNewDocs())
- GetDocument()->Modify(TRUE);
+ GetDocument()->Modify (true);
GetDocument()->UpdateAllViews (this);
}
rIF.labelAdd ("Shuffle Fourier To Natural Order");
m_bMinSpecified = false;
m_bMaxSpecified = false;
- if (theApp->getSetModifyNewDocs())
- GetDocument()->Modify(TRUE);
+ GetDocument()->Modify (true);
GetDocument()->UpdateAllViews (this);
}
rIF.labelAdd ("Magnitude of complex-image");
m_bMinSpecified = false;
m_bMaxSpecified = false;
- if (theApp->getSetModifyNewDocs())
- GetDocument()->Modify(TRUE);
+ GetDocument()->Modify (true);
GetDocument()->UpdateAllViews (this);
}
}
rIF.labelAdd ("Phase of complex-image");
m_bMinSpecified = false;
m_bMaxSpecified = false;
- if (theApp->getSetModifyNewDocs())
- GetDocument()->Modify(TRUE);
+ GetDocument()->Modify (true);
GetDocument()->UpdateAllViews (this);
}
}
bool
ImageFileView::OnClose (bool deleteWindow)
{
+ //GetDocumentManager()->ActivateView (this, false, true);
if (! GetDocument() || ! GetDocument()->Close())
return false;
if (m_pCanvas) {
- m_pCanvas->Show(false);
m_pCanvas->setView(NULL);
m_pCanvas = NULL;
}
- m_pFrame->Show(false);
wxString s(theApp->GetAppName());
if (m_pFrame)
m_pFrame->SetTitle(s);
if (deleteWindow) {
m_pFrame->Destroy();
m_pFrame = NULL;
+ if (GetDocument() && GetDocument()->getBadFileOpen())
+ ::wxYield(); // wxWindows bug workaround
}
+
return true;
}
rScaledIF.labelAdd (os.str().c_str());
rIF.scaleImage (rScaledIF);
*theApp->getLog() << os.str().c_str() << "\n";
- if (theApp->getSetModifyNewDocs())
- pScaledDoc->Modify(TRUE);
+ pScaledDoc->Modify (true);
pScaledDoc->UpdateAllViews (this);
pScaledDoc->getView()->OnUpdate (this, NULL);
pScaledDoc->getView()->getFrame()->Show(true);
delete pYImag;
delete pYMag;
}
- if (theApp->getSetModifyNewDocs())
- pPlotDoc->Modify(true);
+ pPlotDoc->Modify (true);
pPlotDoc->UpdateAllViews ();
pPlotDoc->getView()->OnUpdate (this, NULL);
pPlotDoc->getView()->getFrame()->Show(true);
delete pYImag;
delete pYMag;
}
- if (theApp->getSetModifyNewDocs())
- pPlotDoc->Modify(true);
+ pPlotDoc->Modify (true);
pPlotDoc->UpdateAllViews ();
pPlotDoc->getView()->OnUpdate (this, NULL);
pPlotDoc->getView()->getFrame()->Show(true);
delete pYMag;
delete [] pcIn;
- if (theApp->getSetModifyNewDocs())
- pPlotDoc->Modify(true);
+ pPlotDoc->Modify (true);
pPlotDoc->UpdateAllViews ();
pPlotDoc->getView()->OnUpdate (this, NULL);
pPlotDoc->getView()->getFrame()->Show(true);
delete pdTemp;
delete [] pcIn;
- if (theApp->getSetModifyNewDocs())
- pPlotDoc->Modify(true);
+ pPlotDoc->Modify (true);
pPlotDoc->UpdateAllViews ();
pPlotDoc->getView()->OnUpdate (this, NULL);
pPlotDoc->getView()->getFrame()->Show(true);
delete pX;
delete pY1;
delete pY2;
- if (theApp->getSetModifyNewDocs())
- pPlotDoc->Modify(true);
+ pPlotDoc->Modify (true);
pPlotDoc->UpdateAllViews ();
pPlotDoc->getView()->OnUpdate (this, NULL);
pPlotDoc->getView()->getFrame()->Show(true);
delete pX;
delete pY1;
delete pY2;
- if (theApp->getSetModifyNewDocs())
- pPlotDoc->Modify(true);
+ pPlotDoc->Modify (true);
pPlotDoc->UpdateAllViews ();
pPlotDoc->getView()->OnUpdate (this, NULL);
pPlotDoc->getView()->getFrame()->Show(true);
rPlotFile.addDescription (os.str().c_str());
delete pX;
delete pY;
- if (theApp->getSetModifyNewDocs())
- pPlotDoc->Modify(true);
+ pPlotDoc->Modify (true);
pPlotDoc->UpdateAllViews ();
pPlotDoc->getView()->OnUpdate (this, NULL);
pPlotDoc->getView()->getFrame()->Show(true);
GetDocumentManager()->ActivateView (projView, true, false);
}
::wxYield();
- if (theApp->getSetModifyNewDocs())
- pProjectionDoc->Modify(true);
+ pProjectionDoc-> Modify(true);
pProjectionDoc->UpdateAllViews (this);
}
}
return;
}
}
- if (theApp->getSetModifyNewDocs())
- pRasterDoc->Modify(true);
+ pRasterDoc->Modify (true);
pRasterDoc->UpdateAllViews (this);
pRasterDoc->getView()->getFrame()->Show(true);
std::ostringstream os;
bool
PhantomFileView::OnClose (bool deleteWindow)
{
+ //GetDocumentManager()->ActivateView (this, false, true);
if (! GetDocument() || ! GetDocument()->Close())
return false;
if (m_pCanvas) {
- m_pCanvas->Show(false);
m_pCanvas->setView(NULL);
m_pCanvas = NULL;
}
- m_pFrame->Show(false);
wxString s(wxTheApp->GetAppName());
if (m_pFrame)
m_pFrame->SetTitle(s);
if (deleteWindow) {
m_pFrame->Destroy();
m_pFrame = NULL;
+ if (GetDocument() && GetDocument()->getBadFileOpen())
+ ::wxYield(); // wxWindows bug workaround
}
return true;
<< strInterpolation.c_str();
*theApp->getLog() << os.str().c_str() << "\n";
rIF.labelAdd (os.str().c_str());
- if (theApp->getSetModifyNewDocs())
- pPolarDoc->Modify(true);
+ pPolarDoc->Modify (true);
pPolarDoc->UpdateAllViews ();
pPolarDoc->getView()->OnUpdate (this, NULL);
pPolarDoc->getView()->getFrame()->Show(true);
<< strInterpolation.c_str() << ", zeropad=" << m_iDefaultPolarZeropad;
*theApp->getLog() << os.str().c_str() << "\n";
rIF.labelAdd (os.str().c_str());
- if (theApp->getSetModifyNewDocs())
- pPolarDoc->Modify(true);
+ pPolarDoc->Modify (true);
pPolarDoc->UpdateAllViews ();
pPolarDoc->getView()->OnUpdate (this, NULL);
pPolarDoc->getView()->getFrame()->Show(true);
}
}
delete pReconstruct;
- if (theApp->getSetModifyNewDocs())
- pReconDoc->Modify(true);
+ pReconDoc->Modify (true);
pReconDoc->UpdateAllViews (this);
if (ImageFileView* rasterView = pReconDoc->getView()) {
rasterView->OnUpdate (rasterView, NULL);
bool
ProjectionFileView::OnClose (bool deleteWindow)
{
+ //GetDocumentManager()->ActivateView (this, false, true);
if (! GetDocument() || ! GetDocument()->Close())
return false;
if (m_pCanvas) {
- m_pCanvas->Show(false);
- m_pCanvas->setView(NULL);
+ m_pCanvas->setView(NULL);
m_pCanvas = NULL;
}
- m_pFrame->Show(false);
wxString s(wxTheApp->GetAppName());
if (m_pFrame)
m_pFrame->SetTitle(s);
if (deleteWindow) {
m_pFrame->Destroy();
m_pFrame = NULL;
+ if (GetDocument() && GetDocument()->getBadFileOpen())
+ ::wxYield(); // wxWindows bug workaround
}
+
return true;
}
bool
PlotFileView::OnClose (bool deleteWindow)
{
+ //GetDocumentManager()->ActivateView (this, false, true);
if (! GetDocument() || ! GetDocument()->Close())
return false;
if (m_pCanvas) {
- m_pCanvas->Show(false);
m_pCanvas->setView (NULL);
m_pCanvas = NULL;
}
- m_pFrame->Show(false);
wxString s(wxTheApp->GetAppName());
if (m_pFrame)
m_pFrame->SetTitle(s);
Activate(false);
- m_pFrame->SetView(NULL);
SetFrame(NULL);
if (deleteWindow) {
m_pFrame->Destroy();
m_pFrame = NULL;
- }
+ if (GetDocument() && GetDocument()->getBadFileOpen())
+ ::wxYield(); // wxWindows bug workaround
+ }
+
return true;
}
// if (m_pFrame && m_pFrame->GetTitle() == "Log")
return false;
+ //GetDocumentManager()->ActivateView (this, false, true);
if (! GetDocument() || ! GetDocument()->Close())
return false;
- m_pCanvas->Show(false);
- m_pFrame->Show(false);
Activate(false);
SetFrame(NULL);
- m_pFrame->SetView(NULL);
if (deleteWindow) {
m_pFrame->Destroy();
m_pFrame = NULL;
-
+ if (GetDocument() && GetDocument()->getBadFileOpen())
+ ::wxYield(); // wxWindows bug workaround
}
+
return TRUE;
}