r438: no message
[ctsim.git] / src / views.cpp
index 65ab9f6d744797083b2121f84652ebaf1708f546..62a15395e2cba28502e528d6399d5cf111d821da 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2000 Kevin Rosenberg
 **
-**  $Id: views.cpp,v 1.70 2001/01/26 00:45:24 kevin Exp $
+**  $Id: views.cpp,v 1.71 2001/01/26 05:37:24 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
@@ -356,7 +356,7 @@ ImageFileView::OnCompare (wxCommandEvent& event)
       os << "Comparative Statistics: d=" << d << ", r=" << r << ", e=" << e << "\n";
       *theApp->getLog() << os.str().c_str();
       if (dialogGetCompare.getMakeDifferenceImage()) {
-        ImageFileDocument* pDifferenceDoc = dynamic_cast<ImageFileDocument*>(theApp->getDocManager()->CreateDocument("untitled.if", wxDOC_SILENT));
+        ImageFileDocument* pDifferenceDoc = theApp->newImageDoc();
         if (! pDifferenceDoc) {
           sys_error (ERR_SEVERE, "Unable to create image file");
           return;
@@ -458,7 +458,7 @@ ImageFileView::OnAdd (wxCommandEvent& event)
       ImageFile& rIF = GetDocument()->getImageFile();
       ImageFileDocument* pRHSDoc = dialogGetCompare.getImageFileDocument();
       const ImageFile& rRHSIF = pRHSDoc->getImageFile();
-      ImageFileDocument* pNewDoc = dynamic_cast<ImageFileDocument*>(theApp->getDocManager()->CreateDocument("untitled.if", wxDOC_SILENT));
+      ImageFileDocument* pNewDoc = theApp->newImageDoc();
       if (! pNewDoc) {
         sys_error (ERR_SEVERE, "Unable to create image file");
         return;
@@ -498,7 +498,7 @@ ImageFileView::OnSubtract (wxCommandEvent& event)
       ImageFile& rIF = GetDocument()->getImageFile();
       ImageFileDocument* pRHSDoc = dialogGetCompare.getImageFileDocument();
       const ImageFile& rRHSIF = pRHSDoc->getImageFile();
-      ImageFileDocument* pNewDoc = dynamic_cast<ImageFileDocument*>(theApp->getDocManager()->CreateDocument("untitled.if", wxDOC_SILENT));
+      ImageFileDocument* pNewDoc = theApp->newImageDoc();
       if (! pNewDoc) {
         sys_error (ERR_SEVERE, "Unable to create image file");
         return;
@@ -538,7 +538,7 @@ ImageFileView::OnMultiply (wxCommandEvent& event)
       ImageFile& rIF = GetDocument()->getImageFile();
       ImageFileDocument* pRHSDoc = dialogGetCompare.getImageFileDocument();
       const ImageFile& rRHSIF = pRHSDoc->getImageFile();
-      ImageFileDocument* pNewDoc = dynamic_cast<ImageFileDocument*>(theApp->getDocManager()->CreateDocument("untitled.if", wxDOC_SILENT));
+      ImageFileDocument* pNewDoc = theApp->newImageDoc();
       if (! pNewDoc) {
         sys_error (ERR_SEVERE, "Unable to create image file");
         return;
@@ -578,7 +578,7 @@ ImageFileView::OnDivide (wxCommandEvent& event)
       ImageFile& rIF = GetDocument()->getImageFile();
       ImageFileDocument* pRHSDoc = dialogGetCompare.getImageFileDocument();
       const ImageFile& rRHSIF = pRHSDoc->getImageFile();
-      ImageFileDocument* pNewDoc = dynamic_cast<ImageFileDocument*>(theApp->getDocManager()->CreateDocument("untitled.if", wxDOC_SILENT));
+      ImageFileDocument* pNewDoc = theApp->newImageDoc();
       if (! pNewDoc) {
         sys_error (ERR_SEVERE, "Unable to create image file");
         return;
@@ -1071,7 +1071,7 @@ ImageFileView::OnScaleSize (wxCommandEvent& event)
     unsigned int iNewNY = dialogGetXYSize.getYSize();
     std::ostringstream os;
     os << "Scale Size from (" << iOldNX << "," << iOldNY << ") to (" << iNewNX << "," << iNewNY << ")";
-    ImageFileDocument* pScaledDoc = dynamic_cast<ImageFileDocument*>(theApp->getDocManager()->CreateDocument("untitled.if", wxDOC_SILENT));
+    ImageFileDocument* pScaledDoc = theApp->newImageDoc();
     if (! pScaledDoc) {
       sys_error (ERR_SEVERE, "Unable to create image file");
       return;
@@ -1121,7 +1121,7 @@ ImageFileView::OnPlotRow (wxCommandEvent& event)
         pYMag[i] = ::sqrt (v[i][yCursor] * v[i][yCursor] + vImag[i][yCursor] * vImag[i][yCursor]);
       }
     }
-    PlotFileDocument* pPlotDoc = dynamic_cast<PlotFileDocument*>(theApp->getDocManager()->CreateDocument("untitled.plt", wxDOC_SILENT));
+    PlotFileDocument* pPlotDoc = theApp->newPlotDoc();
     if (! pPlotDoc) {
       sys_error (ERR_SEVERE, "Internal error: unable to create Plot file");
     } else {
@@ -1205,7 +1205,7 @@ ImageFileView::OnPlotCol (wxCommandEvent& event)
         pYMag[i] = ::sqrt (v[xCursor][i] * v[xCursor][i] + vImag[xCursor][i] * vImag[xCursor][i]);
       }
     }
-    PlotFileDocument* pPlotDoc = dynamic_cast<PlotFileDocument*>(theApp->getDocManager()->CreateDocument("untitled.plt", wxDOC_SILENT));
+    PlotFileDocument* pPlotDoc = theApp->newPlotDoc();
     if (! pPlotDoc) {
       sys_error (ERR_SEVERE, "Internal error: unable to create Plot file");
     } else {
@@ -1303,7 +1303,7 @@ ImageFileView::OnPlotFFTRow (wxCommandEvent& event)
     Fourier::shuffleFourierToNaturalOrder (pYImag, nx);
     Fourier::shuffleFourierToNaturalOrder (pYMag, nx);
     
-    PlotFileDocument* pPlotDoc = dynamic_cast<PlotFileDocument*>(theApp->getDocManager()->CreateDocument("untitled.plt", wxDOC_SILENT));
+    PlotFileDocument* pPlotDoc = theApp->newPlotDoc();
     if (! pPlotDoc) {
       sys_error (ERR_SEVERE, "Internal error: unable to create Plot file");
     } else {
@@ -1401,7 +1401,7 @@ ImageFileView::OnPlotFFTCol (wxCommandEvent& event)
       pYMag[i] = ::sqrt (pcIn[i].re * pcIn[i].re + pcIn[i].im * pcIn[i].im);
     }
     
-    PlotFileDocument* pPlotDoc = dynamic_cast<PlotFileDocument*>(theApp->getDocManager()->CreateDocument("untitled.plt", wxDOC_SILENT));
+    PlotFileDocument* pPlotDoc = theApp->newPlotDoc();
     if (! pPlotDoc) {
       sys_error (ERR_SEVERE, "Internal error: unable to create Plot file");
     } else {
@@ -1486,7 +1486,7 @@ ImageFileView::OnCompareCol (wxCommandEvent& event)
         pY1[i] = v1[xCursor][i];
         pY2[i] = v2[xCursor][i];
       }
-      PlotFileDocument* pPlotDoc = dynamic_cast<PlotFileDocument*>(theApp->getDocManager()->CreateDocument("untitled.plt", wxDOC_SILENT));
+      PlotFileDocument* pPlotDoc = theApp->newPlotDoc();
       if (! pPlotDoc) {
         sys_error (ERR_SEVERE, "Internal error: unable to create Plot file");
       } else {
@@ -1577,7 +1577,7 @@ ImageFileView::OnCompareRow (wxCommandEvent& event)
         pY1[i] = v1[i][yCursor];
         pY2[i] = v2[i][yCursor];
       }
-      PlotFileDocument* pPlotDoc = dynamic_cast<PlotFileDocument*>(theApp->getDocManager()->CreateDocument("untitled.plt", wxDOC_SILENT));
+      PlotFileDocument* pPlotDoc = theApp->newPlotDoc();
       if (! pPlotDoc) {
         sys_error (ERR_SEVERE, "Internal error: unable to create Plot file");
       } else {
@@ -1640,7 +1640,7 @@ ImageFileView::OnPlotHistogram (wxCommandEvent& event)
   int ny = rIF.ny();
   
   if (v != NULL && nx > 0 && ny > 0) {
-    PlotFileDocument* pPlotDoc = dynamic_cast<PlotFileDocument*>(theApp->getDocManager()->CreateDocument("untitled.plt", wxDOC_SILENT));
+    PlotFileDocument* pPlotDoc = theApp->newPlotDoc();
     if (! pPlotDoc) {
       sys_error (ERR_SEVERE, "Internal error: unable to create Plot file");
       return;
@@ -1696,7 +1696,7 @@ ImageFileView::OnPlotHistogram (wxCommandEvent& event)
 
 // PhantomCanvas
 
-PhantomCanvas::PhantomCanvas (PhantomView* v, wxFrame *frame, const wxPoint& pos, const wxSize& size, const long style)
+PhantomCanvas::PhantomCanvas (PhantomFileView* v, wxFrame *frame, const wxPoint& pos, const wxSize& size, const long style)
 : wxScrolledWindow(frame, -1, pos, size, style)
 {
   m_pView = v;
@@ -1720,17 +1720,17 @@ PhantomCanvas::OnDraw (wxDC& dc)
 }
 
 
-// PhantomView
+// PhantomFileView
 
-IMPLEMENT_DYNAMIC_CLASS(PhantomView, wxView)
+IMPLEMENT_DYNAMIC_CLASS(PhantomFileView, wxView)
 
-BEGIN_EVENT_TABLE(PhantomView, wxView)
-EVT_MENU(PHMMENU_FILE_PROPERTIES, PhantomView::OnProperties)
-EVT_MENU(PHMMENU_PROCESS_RASTERIZE, PhantomView::OnRasterize)
-EVT_MENU(PHMMENU_PROCESS_PROJECTIONS, PhantomView::OnProjections)
+BEGIN_EVENT_TABLE(PhantomFileView, wxView)
+EVT_MENU(PHMMENU_FILE_PROPERTIES, PhantomFileView::OnProperties)
+EVT_MENU(PHMMENU_PROCESS_RASTERIZE, PhantomFileView::OnRasterize)
+EVT_MENU(PHMMENU_PROCESS_PROJECTIONS, PhantomFileView::OnProjections)
 END_EVENT_TABLE()
 
-PhantomView::PhantomView(void) 
+PhantomFileView::PhantomFileView(void) 
 : wxView(), m_canvas(NULL), m_frame(NULL), m_pFileMenu(0)
 {
   m_iDefaultNDet = 367;
@@ -1747,12 +1747,12 @@ PhantomView::PhantomView(void)
   m_iDefaultRasterNSamples = 2;
 }
 
-PhantomView::~PhantomView()
+PhantomFileView::~PhantomFileView()
 {
 }
 
 void
-PhantomView::OnProperties (wxCommandEvent& event)
+PhantomFileView::OnProperties (wxCommandEvent& event)
 {
   const int idPhantom = GetDocument()->getPhantomID();
   const wxString& namePhantom = GetDocument()->getPhantomName();
@@ -1769,7 +1769,7 @@ PhantomView::OnProperties (wxCommandEvent& event)
 
 
 void
-PhantomView::OnProjections (wxCommandEvent& event)
+PhantomFileView::OnProjections (wxCommandEvent& event)
 {
   DialogGetProjectionParameters dialogProjection (getFrameForChild(), m_iDefaultNDet, m_iDefaultNView, m_iDefaultNSample, m_dDefaultRotation, m_dDefaultFocalLength, m_dDefaultFieldOfView, m_iDefaultGeometry, m_iDefaultTrace);
   int retVal = dialogProjection.ShowModal();
@@ -1786,7 +1786,7 @@ PhantomView::OnProjections (wxCommandEvent& event)
     
     if (m_iDefaultNDet > 0 && m_iDefaultNView > 0 && sGeometry != "") {
       const Phantom& rPhantom = GetDocument()->getPhantom();
-      ProjectionFileDocument* pProjectionDoc = dynamic_cast<ProjectionFileDocument*>(theApp->getDocManager()->CreateDocument("untitled.pj", wxDOC_SILENT));
+      ProjectionFileDocument* pProjectionDoc = theApp->newProjectionDoc();
       if (! pProjectionDoc) {
         sys_error (ERR_SEVERE, "Unable to create projection document");
         return;
@@ -1858,7 +1858,7 @@ PhantomView::OnProjections (wxCommandEvent& event)
 
 
 void
-PhantomView::OnRasterize (wxCommandEvent& event)
+PhantomFileView::OnRasterize (wxCommandEvent& event)
 {
   DialogGetRasterParameters dialogRaster (getFrameForChild(), m_iDefaultRasterNX, m_iDefaultRasterNY, m_iDefaultRasterNSamples);
   int retVal = dialogRaster.ShowModal();
@@ -1870,7 +1870,7 @@ PhantomView::OnRasterize (wxCommandEvent& event)
       m_iDefaultRasterNSamples = 1;
     if (m_iDefaultRasterNX > 0 && m_iDefaultRasterNY > 0) {
       const Phantom& rPhantom = GetDocument()->getPhantom();
-      ImageFileDocument* pRasterDoc = dynamic_cast<ImageFileDocument*>(theApp->getDocManager()->CreateDocument("untitled.if", wxDOC_SILENT));
+      ImageFileDocument* pRasterDoc = theApp->newImageDoc();
       if (! pRasterDoc) {
         sys_error (ERR_SEVERE, "Unable to create image file");
         return;
@@ -1907,13 +1907,13 @@ PhantomView::OnRasterize (wxCommandEvent& event)
 
 
 PhantomCanvas* 
-PhantomView::CreateCanvas (wxView *view, wxFrame *parent)
+PhantomFileView::CreateCanvas (wxView *view, wxFrame *parent)
 {
   PhantomCanvas* pCanvas;
   int width, height;
   parent->GetClientSize(&width, &height);
   
-  pCanvas = new PhantomCanvas (dynamic_cast<PhantomView*>(view), parent, wxPoint(0, 0), wxSize(width, height), 0);
+  pCanvas = new PhantomCanvas (dynamic_cast<PhantomFileView*>(view), parent, wxPoint(0, 0), wxSize(width, height), 0);
   
   pCanvas->SetBackgroundColour(*wxWHITE);
   pCanvas->Clear();
@@ -1922,7 +1922,7 @@ PhantomView::CreateCanvas (wxView *view, wxFrame *parent)
 }
 
 wxFrame*
-PhantomView::CreateChildFrame(wxDocument *doc, wxView *view)
+PhantomFileView::CreateChildFrame(wxDocument *doc, wxView *view)
 {
 #if CTSIM_MDI
   wxDocMDIChildFrame *subframe = new wxDocMDIChildFrame (doc, view, theApp->getMainFrame(), -1, "Phantom Frame", wxPoint(10, 10), wxSize(256, 256), wxDEFAULT_FRAME_STYLE);
@@ -1988,14 +1988,14 @@ PhantomView::CreateChildFrame(wxDocument *doc, wxView *view)
 
 
 bool 
-PhantomView::OnCreate(wxDocument *doc, long WXUNUSED(flags) )
+PhantomFileView::OnCreate(wxDocument *doc, long WXUNUSED(flags) )
 {
   m_frame = CreateChildFrame(doc, this);
   SetFrame(m_frame);
   
   int width, height;
   m_frame->GetClientSize(&width, &height);
-  m_frame->SetTitle("PhantomView");
+  m_frame->SetTitle("PhantomFileView");
   m_canvas = CreateCanvas (this, m_frame);
   
 #ifdef __X__
@@ -2011,14 +2011,14 @@ PhantomView::OnCreate(wxDocument *doc, long WXUNUSED(flags) )
 }
 
 void 
-PhantomView::OnUpdate(wxView *WXUNUSED(sender), wxObject *WXUNUSED(hint) )
+PhantomFileView::OnUpdate(wxView *WXUNUSED(sender), wxObject *WXUNUSED(hint) )
 {
   if (m_canvas)
     m_canvas->Refresh();
 }
 
 bool 
-PhantomView::OnClose (bool deleteWindow)
+PhantomFileView::OnClose (bool deleteWindow)
 {
   if (!GetDocument()->Close())
     return false;
@@ -2042,7 +2042,7 @@ PhantomView::OnClose (bool deleteWindow)
 }
 
 void
-PhantomView::OnDraw (wxDC* dc)
+PhantomFileView::OnDraw (wxDC* dc)
 {
   int xsize, ysize;
   m_canvas->GetClientSize (&xsize, &ysize);
@@ -2154,7 +2154,7 @@ ProjectionFileView::OnConvertPolar (wxCommandEvent& event)
     wxString strInterpolation (dialogPolar.getInterpolationName());
     m_iDefaultPolarNX = dialogPolar.getXSize();
     m_iDefaultPolarNY = dialogPolar.getYSize();
-    ImageFileDocument* pPolarDoc = dynamic_cast<ImageFileDocument*>(theApp->getDocManager()->CreateDocument("untitled.if", wxDOC_SILENT));
+    ImageFileDocument* pPolarDoc = theApp->newImageDoc();
     ImageFile& rIF = pPolarDoc->getImageFile();
     if (! pPolarDoc) {
       sys_error (ERR_SEVERE, "Unable to create image file");
@@ -2188,7 +2188,7 @@ ProjectionFileView::OnConvertFFTPolar (wxCommandEvent& event)
     m_iDefaultPolarNX = dialogPolar.getXSize();
     m_iDefaultPolarNY = dialogPolar.getYSize();
     m_iDefaultPolarZeropad = dialogPolar.getZeropad();
-    ImageFileDocument* pPolarDoc = dynamic_cast<ImageFileDocument*>(theApp->getDocManager()->CreateDocument("untitled.if", wxDOC_SILENT));
+    ImageFileDocument* pPolarDoc = theApp->newImageDoc();
     ImageFile& rIF = pPolarDoc->getImageFile();
     if (! pPolarDoc) {
       sys_error (ERR_SEVERE, "Unable to create image file");
@@ -2240,7 +2240,7 @@ ProjectionFileView::OnReconstructFBP (wxCommandEvent& event)
     m_iDefaultBackprojector = Backprojector::convertBackprojectNameToID (optBackprojectName.c_str());
     m_iDefaultTrace = dialogReconstruction.getTrace();
     if (m_iDefaultNX > 0 && m_iDefaultNY > 0) {
-      ImageFileDocument* pReconDoc = dynamic_cast<ImageFileDocument*>(theApp->getDocManager()->CreateDocument("untitled.if", wxDOC_SILENT));
+      ImageFileDocument* pReconDoc = theApp->newImageDoc();
       if (! pReconDoc) {
         sys_error (ERR_SEVERE, "Unable to create image file");
         return;
@@ -2831,21 +2831,21 @@ PlotFileView::OnClose (bool deleteWindow)
 ////////////////////////////////////////////////////////////////
 
 
-IMPLEMENT_DYNAMIC_CLASS(TextEditView, wxView)
+IMPLEMENT_DYNAMIC_CLASS(TextFileView, wxView)
 
-TextEditView::~TextEditView() 
+TextFileView::~TextFileView() 
 {
 }
 
-bool TextEditView::OnCreate(wxDocument *doc, long WXUNUSED(flags) )
+bool TextFileView::OnCreate(wxDocument *doc, long WXUNUSED(flags) )
 {
   m_pFrame = CreateChildFrame(doc, this);
   SetFrame (m_pFrame);
   
   int width, height;
   m_pFrame->GetClientSize(&width, &height);
-  m_pFrame->SetTitle("TextEdit");
-  m_pCanvas = new TextEditCanvas (this, m_pFrame, wxPoint(0, 0), wxSize(width, height), wxTE_MULTILINE | wxTE_READONLY);
+  m_pFrame->SetTitle("TextFile");
+  m_pCanvas = new TextFileCanvas (this, m_pFrame, wxPoint(0, 0), wxSize(width, height), wxTE_MULTILINE | wxTE_READONLY);
   m_pFrame->SetTitle("Log");
   
 #ifdef __X__
@@ -2862,16 +2862,16 @@ bool TextEditView::OnCreate(wxDocument *doc, long WXUNUSED(flags) )
 }
 
 // Handled by wxTextWindow
-void TextEditView::OnDraw(wxDC *WXUNUSED(dc) )
+void TextFileView::OnDraw(wxDC *WXUNUSED(dc) )
 {
 }
 
-void TextEditView::OnUpdate(wxView *WXUNUSED(sender), wxObject *WXUNUSED(hint) )
+void TextFileView::OnUpdate(wxView *WXUNUSED(sender), wxObject *WXUNUSED(hint) )
 {
 }
 
 bool 
-TextEditView::OnClose (bool deleteWindow)
+TextFileView::OnClose (bool deleteWindow)
 {
   return false;
   
@@ -2889,12 +2889,12 @@ TextEditView::OnClose (bool deleteWindow)
 }
 
 wxFrame*
-TextEditView::CreateChildFrame (wxDocument *doc, wxView *view)
+TextFileView::CreateChildFrame (wxDocument *doc, wxView *view)
 {
 #if CTSIM_MDI
-  wxDocMDIChildFrame* subframe = new wxDocMDIChildFrame (doc, view, theApp->getMainFrame(), -1, "TextEdit Frame", wxPoint(-1, -1), wxSize(300, 150), wxDEFAULT_FRAME_STYLE);
+  wxDocMDIChildFrame* subframe = new wxDocMDIChildFrame (doc, view, theApp->getMainFrame(), -1, "TextFile Frame", wxPoint(-1, -1), wxSize(300, 150), wxDEFAULT_FRAME_STYLE);
 #else
-  wxDocChildFrame* subframe = new wxDocChildFrame (doc, view, theApp->getMainFrame(), -1, "TextEdit Frame", wxPoint(-1, -1), wxSize(300, 150), wxDEFAULT_FRAME_STYLE);
+  wxDocChildFrame* subframe = new wxDocChildFrame (doc, view, theApp->getMainFrame(), -1, "TextFile Frame", wxPoint(-1, -1), wxSize(300, 150), wxDEFAULT_FRAME_STYLE);
 #endif
   theApp->setIconForFrame (subframe);
   
@@ -2945,12 +2945,12 @@ TextEditView::CreateChildFrame (wxDocument *doc, wxView *view)
 
 
 // Define a constructor for my text subwindow
-TextEditCanvas::TextEditCanvas (TextEditView* v, wxFrame* frame, const wxPoint& pos, const wxSize& size, long style)
+TextFileCanvas::TextFileCanvas (TextFileView* v, wxFrame* frame, const wxPoint& pos, const wxSize& size, long style)
   : wxTextCtrl (frame, -1, "", pos, size, style), m_pView(v)
 {
 }
 
-TextEditCanvas::~TextEditCanvas ()
+TextFileCanvas::~TextFileCanvas ()
 {
   if (m_pView) {
     wxMenu* pMenu = m_pView->getFileMenu();