r438: no message
authorKevin M. Rosenberg <kevin@rosenberg.net>
Fri, 26 Jan 2001 05:37:24 +0000 (05:37 +0000)
committerKevin M. Rosenberg <kevin@rosenberg.net>
Fri, 26 Jan 2001 05:37:24 +0000 (05:37 +0000)
msvc/ctsim/ctsim.plg
src/ctsim.cpp
src/ctsim.h
src/docs.cpp
src/docs.h
src/views.cpp
src/views.h

index 5a310baec728bf38b83f7cc93f497fe015fc6638..650a691ea3bf0d1e6864bd3eec4ae81062982ec4 100644 (file)
@@ -6,13 +6,13 @@
 --------------------Configuration: ctsim - Win32 Debug--------------------
 </h3>
 <h3>Command Lines</h3>
 --------------------Configuration: ctsim - Win32 Debug--------------------
 </h3>
 <h3>Command Lines</h3>
-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP90.tmp" with contents
+Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP118.tmp" with contents
 [
 /nologo /G6 /MTd /W3 /Gm /GR /GX /Zi /Od /I "\wx2\include" /I "." /I "..\..\include" /I "..\..\getopt" /I "..\..\..\lpng108" /I "..\..\..\zlib" /I "..\..\..\fftw-2.1.3\fftw" /I "..\..\..\fftw-2.1.3\rfftw" /D VERSION=\"2.5.0\" /D "_DEBUG" /D "__WXMSW__" /D "HAVE_SGP" /D "HAVE_PNG" /D "HAVE_WXWINDOWS" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "HAVE_STRING_H" /D "HAVE_FFTW" /D "HAVE_RFFTW" /D "HAVE_GETOPT_H" /D "MSVC" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /D CTSIMVERSION=\"3.0.0alpha5\" /FR"Debug/" /Fp"Debug/ctsim.pch" /YX /Fo"Debug/" /Fd"Debug/" /FD /GZ /c 
 [
 /nologo /G6 /MTd /W3 /Gm /GR /GX /Zi /Od /I "\wx2\include" /I "." /I "..\..\include" /I "..\..\getopt" /I "..\..\..\lpng108" /I "..\..\..\zlib" /I "..\..\..\fftw-2.1.3\fftw" /I "..\..\..\fftw-2.1.3\rfftw" /D VERSION=\"2.5.0\" /D "_DEBUG" /D "__WXMSW__" /D "HAVE_SGP" /D "HAVE_PNG" /D "HAVE_WXWINDOWS" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "HAVE_STRING_H" /D "HAVE_FFTW" /D "HAVE_RFFTW" /D "HAVE_GETOPT_H" /D "MSVC" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /D CTSIMVERSION=\"3.0.0alpha5\" /FR"Debug/" /Fp"Debug/ctsim.pch" /YX /Fo"Debug/" /Fd"Debug/" /FD /GZ /c 
-"C:\ctsim\src\views.cpp"
+"C:\ctsim\src\ctsim.cpp"
 ]
 ]
-Creating command line "cl.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP90.tmp" 
-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP91.tmp" with contents
+Creating command line "cl.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP118.tmp" 
+Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP119.tmp" with contents
 [
 comctl32.lib winmm.lib rpcrt4.lib ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ../libctsim/Debug/libctsim.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ..\..\..\lpng108\msvc\win32\libpng\lib_dbg\libpng.lib ..\..\..\lpng108\msvc\win32\zlib\lib_dbg\zlib.lib libcmtd.lib ..\..\..\fftw-2.1.3\Win32\FFTW2st\Debug\FFTW2st.lib ..\..\..\fftw-2.1.3\Win32\RFFTW2st\Debug\RFFTW2st.lib ../../../wx2/lib/wxd.lib xpmd.lib /nologo /subsystem:windows /incremental:yes /pdb:"Debug/ctsim.pdb" /debug /machine:I386 /out:"Debug/ctsim.exe" /pdbtype:sept /libpath:"..\..\..\lpng108\msvc\win32\libpng\lib" /libpath:"..\..\..\lpng108\msvc\win32\zlib\lib" /libpath:"..\..\..\wx2\lib" 
 .\Debug\ctsim.obj
 [
 comctl32.lib winmm.lib rpcrt4.lib ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ../libctsim/Debug/libctsim.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ..\..\..\lpng108\msvc\win32\libpng\lib_dbg\libpng.lib ..\..\..\lpng108\msvc\win32\zlib\lib_dbg\zlib.lib libcmtd.lib ..\..\..\fftw-2.1.3\Win32\FFTW2st\Debug\FFTW2st.lib ..\..\..\fftw-2.1.3\Win32\RFFTW2st\Debug\RFFTW2st.lib ../../../wx2/lib/wxd.lib xpmd.lib /nologo /subsystem:windows /incremental:yes /pdb:"Debug/ctsim.pdb" /debug /machine:I386 /out:"Debug/ctsim.exe" /pdbtype:sept /libpath:"..\..\..\lpng108\msvc\win32\libpng\lib" /libpath:"..\..\..\lpng108\msvc\win32\zlib\lib" /libpath:"..\..\..\wx2\lib" 
 .\Debug\ctsim.obj
@@ -28,10 +28,10 @@ comctl32.lib winmm.lib rpcrt4.lib ws2_32.lib kernel32.lib user32.lib gdi32.lib w
 \wx2\lib\wxd.lib
 \wx2\lib\xpmd.lib
 ]
 \wx2\lib\wxd.lib
 \wx2\lib\xpmd.lib
 ]
-Creating command line "link.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP91.tmp"
+Creating command line "link.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP119.tmp"
 <h3>Output Window</h3>
 Compiling...
 <h3>Output Window</h3>
 Compiling...
-views.cpp
+ctsim.cpp
 Linking...
 
 
 Linking...
 
 
index d0cc8c686c28072b085a780b62a4c5d216163ef0..a5a889aad72aeef87a22a338a8844e3babbe26ac 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2000 Kevin Rosenberg
 **
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2000 Kevin Rosenberg
 **
-**  $Id: ctsim.cpp,v 1.41 2001/01/26 00:45:24 kevin Exp $
+**  $Id: ctsim.cpp,v 1.42 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
 **
 **  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
@@ -70,7 +70,7 @@
 #endif
 #endif
 
 #endif
 #endif
 
-static const char* rcsindent = "$Id: ctsim.cpp,v 1.41 2001/01/26 00:45:24 kevin Exp $";
+static const char* rcsindent = "$Id: ctsim.cpp,v 1.42 2001/01/26 05:37:24 kevin Exp $";
 
 struct option CTSimApp::ctsimOptions[] = 
 {
 
 struct option CTSimApp::ctsimOptions[] = 
 {
@@ -133,11 +133,11 @@ CTSimApp::OnInit()
   
   m_docManager = new wxDocManager (wxDEFAULT_DOCMAN_FLAGS, true);
   
   
   m_docManager = new wxDocManager (wxDEFAULT_DOCMAN_FLAGS, true);
   
-  new wxDocTemplate (m_docManager, "ImageFile", "*.if", "", "if", "ImageFile", "ImageView", CLASSINFO(ImageFileDocument), CLASSINFO(ImageFileView));
-  new wxDocTemplate (m_docManager, "ProjectionFile", "*.pj", "", "pj", "ProjectionFile", "ProjectionView", CLASSINFO(ProjectionFileDocument), CLASSINFO(ProjectionFileView));
-  new wxDocTemplate (m_docManager, "PhantomFile", "*.phm", "", "phm", "PhantomFile", "PhantomView", CLASSINFO(PhantomDocument), CLASSINFO(PhantomView));
-  new wxDocTemplate (m_docManager, "PlotFile", "*.plt", "", "plt", "PlotFile", "PlotView", CLASSINFO(PlotFileDocument), CLASSINFO(PlotFileView));
-  new wxDocTemplate (m_docManager, "TextEdit", "*.txt", "", "txt", "TextFile", "TextView", CLASSINFO(TextEditDocument), CLASSINFO(TextEditView), wxTEMPLATE_INVISIBLE);
+  m_pDocTemplImage = new wxDocTemplate (m_docManager, "ImageFile", "*.if", "", "if", "ImageFile", "ImageView", CLASSINFO(ImageFileDocument), CLASSINFO(ImageFileView));
+  m_pDocTemplProjection = new wxDocTemplate (m_docManager, "ProjectionFile", "*.pj", "", "pj", "ProjectionFile", "ProjectionView", CLASSINFO(ProjectionFileDocument), CLASSINFO(ProjectionFileView));
+  m_pDocTemplPhantom = new wxDocTemplate (m_docManager, "PhantomFile", "*.phm", "", "phm", "PhantomFile", "PhantomView", CLASSINFO(PhantomFileDocument), CLASSINFO(PhantomFileView));
+  m_pDocTemplPlot = new wxDocTemplate (m_docManager, "PlotFile", "*.plt", "", "plt", "PlotFile", "PlotView", CLASSINFO(PlotFileDocument), CLASSINFO(PlotFileView));
+  m_pDocTemplText = new wxDocTemplate (m_docManager, "TextFile", "*.txt", "", "txt", "TextFile", "TextView", CLASSINFO(TextFileDocument), CLASSINFO(TextFileView), wxTEMPLATE_INVISIBLE);
   
 #if wxUSE_GIF
   wxImage::AddHandler(new wxGIFHandler);     // Required for images in the online documentation
   
 #if wxUSE_GIF
   wxImage::AddHandler(new wxGIFHandler);     // Required for images in the online documentation
@@ -171,9 +171,16 @@ CTSimApp::OnInit()
     ::wxMessageBox ("Cannot initialize the help system", "Error");
 
 #ifdef CTSIM_MDI
     ::wxMessageBox ("Cannot initialize the help system", "Error");
 
 #ifdef CTSIM_MDI
-  TextEditDocument* pLogDoc = dynamic_cast<TextEditDocument*>(m_docManager->CreateDocument("Log.txt", wxDOC_SILENT));
+  TextFileDocument* pLogDoc = newTextDoc();
   if (pLogDoc) {
     m_pLog = pLogDoc->getTextCtrl();
   if (pLogDoc) {
     m_pLog = pLogDoc->getTextCtrl();
+    pLogDoc->SetDocumentName("Log.txt");
+    pLogDoc->SetFilename("Log.txt");
+    pLogDoc->getView()->getFrame()->SetTitle("Log");
+    int xSize, ySize;
+    m_pFrame->GetSize(&xSize, &ySize);
+    int yLogSize = ySize / 4;
+    pLogDoc->getView()->getFrame()->SetSize (0, 0, xSize, yLogSize);
   } else
 #else
     m_pLog = new wxTextCtrl (m_pFrame, -1, "Log Window\n", wxPoint(0, 0), wxSize(0,0), wxTE_MULTILINE | wxTE_READONLY);
   } else
 #else
     m_pLog = new wxTextCtrl (m_pFrame, -1, "Log Window\n", wxPoint(0, 0), wxSize(0,0), wxTE_MULTILINE | wxTE_READONLY);
@@ -749,3 +756,125 @@ MainFrame::OnAbout(wxCommandEvent& WXUNUSED(event) )
   }
 }
 
   }
 }
 
+
+ProjectionFileDocument*
+CTSimApp::newProjectionDoc()
+{
+  wxString strFilename (getUntitledFilename());
+  strFilename += ".pj";
+
+  ProjectionFileDocument* newDoc = dynamic_cast<ProjectionFileDocument*>(m_pDocTemplProjection->CreateDocument (strFilename));
+  if (newDoc) {
+    ProjectionFileView* pView = newDoc->getView();
+    if (pView) {
+      wxFrame* pFrame = pView->getFrame();
+      if (pFrame)
+        pFrame->SetSize(0,0);
+    }
+    newDoc->SetDocumentName(strFilename);
+    newDoc->SetFilename(strFilename);
+    newDoc->SetDocumentTemplate(m_pDocTemplProjection);
+    newDoc->SetTitle(strFilename);
+    newDoc->OnNewDocument();
+  }
+
+  return newDoc;
+}
+
+ImageFileDocument*
+CTSimApp::newImageDoc()
+{
+  wxString strFilename (getUntitledFilename());
+  strFilename += ".pj";
+
+  ImageFileDocument* newDoc = dynamic_cast<ImageFileDocument*>(m_pDocTemplImage->CreateDocument (strFilename));
+  if (newDoc) {
+    ImageFileView* pView = newDoc->getView();
+    if (pView) {
+      wxFrame* pFrame = pView->getFrame();
+      if (pFrame)
+        pFrame->SetSize(0,0);
+    }
+    newDoc->SetDocumentName(strFilename);
+    newDoc->SetFilename(strFilename);
+    newDoc->SetDocumentTemplate(m_pDocTemplImage);
+    newDoc->SetTitle(strFilename);
+    newDoc->OnNewDocument();
+  }
+
+  return newDoc;
+}
+
+PlotFileDocument*
+CTSimApp::newPlotDoc()
+{
+  wxString strFilename (getUntitledFilename());
+  strFilename += ".plt";
+
+  PlotFileDocument* newDoc = dynamic_cast<PlotFileDocument*>(m_pDocTemplPlot->CreateDocument (strFilename));
+  if (newDoc) {
+    PlotFileView* pView = newDoc->getView();
+    if (pView) {
+      wxFrame* pFrame = pView->getFrame();
+      if (pFrame)
+        pFrame->SetSize(0,0);
+    }
+    newDoc->SetDocumentName(strFilename);
+    newDoc->SetFilename(strFilename);
+    newDoc->SetDocumentTemplate(m_pDocTemplPlot);
+    newDoc->SetTitle(strFilename);
+    newDoc->OnNewDocument();
+  }
+
+  return newDoc;
+}
+
+
+TextFileDocument*
+CTSimApp::newTextDoc()
+{
+  wxString strFilename (getUntitledFilename());
+  strFilename += ".txt";
+
+  TextFileDocument* newDoc = dynamic_cast<TextFileDocument*>(m_pDocTemplText->CreateDocument (strFilename));
+  if (newDoc) {
+    TextFileView* pView = newDoc->getView();
+    if (pView) {
+      wxFrame* pFrame = pView->getFrame();
+      if (pFrame)
+        pFrame->SetSize(0,0);
+    }
+    newDoc->SetDocumentName(strFilename);
+    newDoc->SetFilename(strFilename);
+    newDoc->SetDocumentTemplate(m_pDocTemplText);
+    newDoc->SetTitle(strFilename);
+    newDoc->OnNewDocument();
+  }
+
+  return newDoc;
+}
+
+
+PhantomFileDocument*
+CTSimApp::newPhantomDoc()
+{
+  wxString strFilename (getUntitledFilename());
+  strFilename += ".phm";
+
+  PhantomFileDocument* newDoc = dynamic_cast<PhantomFileDocument*>(m_pDocTemplPhantom->CreateDocument (strFilename));
+  if (newDoc) {
+    PhantomFileView* pView = newDoc->getView();
+    if (pView) {
+      wxFrame* pFrame = pView->getFrame();
+      if (pFrame)
+        pFrame->SetSize(0,0);
+    }
+    newDoc->SetDocumentName(strFilename);
+    newDoc->SetFilename(strFilename);
+    newDoc->SetDocumentTemplate(m_pDocTemplPhantom);
+    newDoc->SetTitle(strFilename);
+    newDoc->OnNewDocument();
+  }
+
+  return newDoc;
+}
index a242109fa1a0ac05bdbae41d5af66dddc241d16b..b7954f5fc8c7fce33603bfa2182f1912ae53804c 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2000 Kevin Rosenberg
 **
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2000 Kevin Rosenberg
 **
-**  $Id: ctsim.h,v 1.30 2001/01/20 17:43:41 kevin Exp $
+**  $Id: ctsim.h,v 1.31 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
 **
 **  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
 
 class wxMenu;
 class wxDocument;
 
 class wxMenu;
 class wxDocument;
-
 class ImageFileDocument;
 class ImageFileDocument;
+class ProjectionFileDocument;
+class PhantomFileDocument;
+class PlotFileDocument;
+class TextFileDocument;
 
 #include <vector>
 
 #include <vector>
-
 #include "wx/docview.h"
 #include "wx/textctrl.h"
 #include "wx/menu.h"
 #include "wx/docview.h"
 #include "wx/textctrl.h"
 #include "wx/menu.h"
@@ -78,8 +80,10 @@ class MainFrame: public wxDocMDIParentFrame
 class MainFrame: public wxDocParentFrame
 #endif
 {
 class MainFrame: public wxDocParentFrame
 #endif
 {
-  DECLARE_CLASS(MainFrame)
 private:
 private:
+  DECLARE_CLASS(MainFrame)
+  DECLARE_EVENT_TABLE()
+
   wxMenu* m_pWindowMenu;
   
   enum { MAX_WINDOW_MENUITEMS = 20 };
   wxMenu* m_pWindowMenu;
   
   enum { MAX_WINDOW_MENUITEMS = 20 };
@@ -95,7 +99,7 @@ private:
   double m_dDefaultFilterBandwidth;
   double m_dDefaultFilterInputScale;
   double m_dDefaultFilterOutputScale;
   double m_dDefaultFilterBandwidth;
   double m_dDefaultFilterInputScale;
   double m_dDefaultFilterOutputScale;
-  
+
 #if CTSIM_WINHELP
   wxWinHelpController      m_winHelp;
 #endif
 #if CTSIM_WINHELP
   wxWinHelpController      m_winHelp;
 #endif
@@ -155,8 +159,6 @@ public:
   void OnWindowMenu19 (wxCommandEvent& event);
   
   void DoWindowMenu (int iMenuPosition, wxCommandEvent& event);
   void OnWindowMenu19 (wxCommandEvent& event);
   
   void DoWindowMenu (int iMenuPosition, wxCommandEvent& event);
-  
-  DECLARE_EVENT_TABLE()
 };
 
 
 };
 
 
@@ -164,17 +166,21 @@ class wxDocManager;
 class CTSimApp: public wxApp
 {
 private:
 class CTSimApp: public wxApp
 {
 private:
+  enum { O_HELP, O_VERSION };
+  static struct option ctsimOptions[];
+  
   wxDocManager* m_docManager;
   MainFrame* m_pFrame;
   wxConfig* m_pConfig;
   wxDocManager* m_docManager;
   MainFrame* m_pFrame;
   wxConfig* m_pConfig;
-  
-  void usage (const char* program);
-  
-  static struct option ctsimOptions[];
-  
-  enum { O_HELP, O_VERSION };
   wxTextCtrl* m_pLog;
   wxTextCtrl* m_pLog;
+  wxDocTemplate* m_pDocTemplImage;
+  wxDocTemplate* m_pDocTemplProjection;
+  wxDocTemplate* m_pDocTemplPhantom;
+  wxDocTemplate* m_pDocTemplPlot;
+  wxDocTemplate* m_pDocTemplText;
 
 
+  void usage (const char* program);
+  
 public:
   CTSimApp();
   bool OnInit();
 public:
   CTSimApp();
   bool OnInit();
@@ -201,6 +207,19 @@ public:
   void setIconForFrame (wxFrame* pFrame);
   wxConfig* getConfig()
   { return m_pConfig; }
   void setIconForFrame (wxFrame* pFrame);
   wxConfig* getConfig()
   { return m_pConfig; }
+
+  wxDocTemplate* getDocTemplImage() { return m_pDocTemplImage; }
+  wxDocTemplate* getDocTemplProjection() { return m_pDocTemplProjection; }
+  wxDocTemplate* getDocTemplPhantom() { return m_pDocTemplPhantom; }
+  wxDocTemplate* getDocTemplPlot() { return m_pDocTemplPlot; }
+  wxDocTemplate* getDocTemplText() { return m_pDocTemplText; }
+
+  ProjectionFileDocument* newProjectionDoc();
+  ImageFileDocument* newImageDoc();
+  PhantomFileDocument* newPhantomDoc();
+  PlotFileDocument* newPlotDoc();
+  TextFileDocument* newTextDoc();
+
 };
 
 DECLARE_APP(CTSimApp)
 };
 
 DECLARE_APP(CTSimApp)
index 8bdb8d017925ec936583ec51403c3e78c00f4007..cf20b310993aaa9c02d3cc6b856b58852c4d0571 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2000 Kevin Rosenberg
 **
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2000 Kevin Rosenberg
 **
-**  $Id: docs.cpp,v 1.14 2001/01/20 17:43:41 kevin Exp $
+**  $Id: docs.cpp,v 1.15 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
 **
 **  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
@@ -68,21 +68,17 @@ bool ImageFileDocument::OnSaveDocument(const wxString& filename)
 
 bool ImageFileDocument::OnOpenDocument(const wxString& filename)
 {
 
 bool ImageFileDocument::OnOpenDocument(const wxString& filename)
 {
-  if (filename == "untitled.if") {
-    wxString untitledFilename = theApp->getUntitledFilename();
-    SetFilename (untitledFilename, true);
-  } else {
-    if (! m_imageFile.fileRead (filename.c_str())) {
-      *theApp->getLog() << "Unable to read image file " << filename << "\n";
-      return false;
-    }
-    *theApp->getLog() << "Read image file " << filename << "\n";
-    SetFilename(filename, true);
+  if (! m_imageFile.fileRead (filename.c_str())) {
+    *theApp->getLog() << "Unable to read image file " << filename << "\n";
+    return false;
   }
   }
+  *theApp->getLog() << "Read image file " << filename << "\n";
+  SetFilename(filename, true);
+  
   Modify(false);
   UpdateAllViews();
   GetFirstView()->OnUpdate (GetFirstView(), NULL);
   Modify(false);
   UpdateAllViews();
   GetFirstView()->OnUpdate (GetFirstView(), NULL);
-
+  
   return true;
 }
 
   return true;
 }
 
@@ -93,9 +89,14 @@ bool ImageFileDocument::IsModified(void) const
 
 void ImageFileDocument::Modify(bool mod)
 {
 
 void ImageFileDocument::Modify(bool mod)
 {
-    wxDocument::Modify(mod);
+  wxDocument::Modify(mod);
 }
 
 }
 
+ImageFileView* 
+ImageFileDocument::getView() const
+{ 
+  return dynamic_cast<ImageFileView*>(GetFirstView()); 
+}
 
 // ProjectionFileDocument
 
 
 // ProjectionFileDocument
 
@@ -114,21 +115,16 @@ bool ProjectionFileDocument::OnSaveDocument(const wxString& filename)
 
 bool ProjectionFileDocument::OnOpenDocument(const wxString& filename)
 {
 
 bool ProjectionFileDocument::OnOpenDocument(const wxString& filename)
 {
-  if (filename == "untitled.pj") {
-    wxString untitledFilename = theApp->getUntitledFilename();
-    SetFilename (untitledFilename, true);
-  } else {
-    if (! m_projectionFile.read (filename.c_str())) {
-      *theApp->getLog() << "Unable to read projection file " << filename << "\n";
-      return false;
-    }
-    *theApp->getLog() << "Read projection file " << filename << "\n";
-    SetFilename(filename, true);
+  if (! m_projectionFile.read (filename.c_str())) {
+    *theApp->getLog() << "Unable to read projection file " << filename << "\n";
+    return false;
   }
   }
+  *theApp->getLog() << "Read projection file " << filename << "\n";
+  SetFilename(filename, true);
   Modify(false);
   UpdateAllViews();
   GetFirstView()->OnUpdate (GetFirstView(), NULL);
   Modify(false);
   UpdateAllViews();
   GetFirstView()->OnUpdate (GetFirstView(), NULL);
-
+  
   return true;
 }
 
   return true;
 }
 
@@ -139,16 +135,21 @@ bool ProjectionFileDocument::IsModified(void) const
 
 void ProjectionFileDocument::Modify(bool mod)
 {
 
 void ProjectionFileDocument::Modify(bool mod)
 {
-    wxDocument::Modify(mod);
+  wxDocument::Modify(mod);
 }
 
 
 }
 
 
+ProjectionFileView* 
+ProjectionFileDocument::getView() const
+{ 
+  return dynamic_cast<ProjectionFileView*>(GetFirstView()); 
+}
 
 
-// PhantomDocument
+// PhantomFileDocument
 
 
-IMPLEMENT_DYNAMIC_CLASS(PhantomDocument, wxDocument)
+IMPLEMENT_DYNAMIC_CLASS(PhantomFileDocument, wxDocument)
 
 
-bool PhantomDocument::OnOpenDocument(const wxString& filename)
+bool PhantomFileDocument::OnOpenDocument(const wxString& filename)
 {
   wxString myFilename = filename;
   if (wxFile::Exists (myFilename)) {
 {
   wxString myFilename = filename;
   if (wxFile::Exists (myFilename)) {
@@ -168,11 +169,11 @@ bool PhantomDocument::OnOpenDocument(const wxString& filename)
   Modify(false);
   UpdateAllViews();
   GetFirstView()->OnUpdate (GetFirstView(), NULL);
   Modify(false);
   UpdateAllViews();
   GetFirstView()->OnUpdate (GetFirstView(), NULL);
-
+  
   return true;
 }
 
   return true;
 }
 
-bool PhantomDocument::OnSaveDocument(const wxString& filename)
+bool PhantomFileDocument::OnSaveDocument(const wxString& filename)
 {
   if (! m_phantom.fileWrite (filename.c_str())) {
     *theApp->getLog() << "Unable to write phantom file " << filename << "\n";
 {
   if (! m_phantom.fileWrite (filename.c_str())) {
     *theApp->getLog() << "Unable to write phantom file " << filename << "\n";
@@ -183,17 +184,23 @@ bool PhantomDocument::OnSaveDocument(const wxString& filename)
   return true;
 }
 
   return true;
 }
 
-bool PhantomDocument::IsModified(void) const
+bool PhantomFileDocument::IsModified(void) const
 {
   return false;
 }
 
 {
   return false;
 }
 
-void PhantomDocument::Modify(bool mod)
+void PhantomFileDocument::Modify(bool mod)
 {
 {
-    wxDocument::Modify(mod);
+  wxDocument::Modify(mod);
 }
 
 
 }
 
 
+PhantomFileView* 
+PhantomFileDocument::getView() const
+{ 
+  return dynamic_cast<PhantomFileView*>(GetFirstView()); 
+}
+
 // PlotFileDocument
 
 IMPLEMENT_DYNAMIC_CLASS(PlotFileDocument, wxDocument)
 // PlotFileDocument
 
 IMPLEMENT_DYNAMIC_CLASS(PlotFileDocument, wxDocument)
@@ -212,22 +219,17 @@ bool PlotFileDocument::OnSaveDocument(const wxString& filename)
 
 bool PlotFileDocument::OnOpenDocument(const wxString& filename)
 {
 
 bool PlotFileDocument::OnOpenDocument(const wxString& filename)
 {
-  if (filename == "untitled.plt") {
-    wxString untitledFilename = theApp->getUntitledFilename();
-    SetFilename (untitledFilename, true);
-  } else {
-    if (! m_plot.fileRead (filename.c_str())) {
-      *theApp->getLog() << "Unable to read plot file " << filename << "\n";
-      return false;
-    }
-    *theApp->getLog() << "Read plot file " << filename << "\n";
-    SetFilename (filename, true);
-    m_namePlot = filename.c_str();
+  if (! m_plot.fileRead (filename.c_str())) {
+    *theApp->getLog() << "Unable to read plot file " << filename << "\n";
+    return false;
   }
   }
+  *theApp->getLog() << "Read plot file " << filename << "\n";
+  SetFilename (filename, true);
+  m_namePlot = filename.c_str();
   Modify (false);
   UpdateAllViews();
   GetFirstView()->OnUpdate (NULL, NULL);
   Modify (false);
   UpdateAllViews();
   GetFirstView()->OnUpdate (NULL, NULL);
-
+  
   return true;
 }
 
   return true;
 }
 
@@ -239,50 +241,62 @@ bool PlotFileDocument::IsModified(void) const
 
 void PlotFileDocument::Modify(bool mod)
 {
 
 void PlotFileDocument::Modify(bool mod)
 {
-    wxDocument::Modify(mod);
+  wxDocument::Modify(mod);
 }
 
 }
 
+PlotFileView* 
+PlotFileDocument::getView() const
+{ 
+  return dynamic_cast<PlotFileView*>(GetFirstView()); 
+}
 
 //////////////////////////////////////////////////////////////////////////
 //
 
 //////////////////////////////////////////////////////////////////////////
 //
-// TextEditDocument
+// TextFileDocument
 //
 //////////////////////////////////////////////////////////////////////////
 
 //
 //////////////////////////////////////////////////////////////////////////
 
-IMPLEMENT_DYNAMIC_CLASS(TextEditDocument, wxDocument)
+IMPLEMENT_DYNAMIC_CLASS(TextFileDocument, wxDocument)
 
 // Since text windows have their own method for saving to/loading from files,
 // we override OnSave/OpenDocument instead of Save/LoadObject
 
 // Since text windows have their own method for saving to/loading from files,
 // we override OnSave/OpenDocument instead of Save/LoadObject
-bool TextEditDocument::OnSaveDocument(const wxString& filename)
+bool TextFileDocument::OnSaveDocument(const wxString& filename)
 {
 {
-    TextEditView *view = dynamic_cast<TextEditView*>(GetFirstView());
-    if (! view->getTextCtrl()->SaveFile(filename))
-        return false;
-    Modify(false);
-    return true;
+  TextFileView *view = getView();
+  if (! view->getTextCtrl()->SaveFile(filename))
+    return false;
+  Modify(false);
+  return true;
 }
 
 }
 
-bool TextEditDocument::OnOpenDocument(const wxString& filename)
+bool TextFileDocument::OnOpenDocument(const wxString& filename)
 {
 {
-    TextEditView *view = dynamic_cast<TextEditView*>(GetFirstView());
-
-    if (filename != "Log.txt" && ! view->getTextCtrl()->LoadFile(filename))
-        return false;
-
-    SetFilename (filename, true);
-    Modify (false);
-    UpdateAllViews();
-    return true;
+  TextFileView *view = getView();
+  
+  if (! view->getTextCtrl()->LoadFile(filename))
+    return false;
+  
+  SetFilename (filename, true);
+  Modify (false);
+  UpdateAllViews();
+  return true;
 }
 
 }
 
-bool TextEditDocument::IsModified(void) const
+bool TextFileDocument::IsModified(void) const
 {
   return false;
 {
   return false;
-
-  TextEditView *view = dynamic_cast<TextEditView*>(GetFirstView());
+  
+  TextFileView *view = getView();
+  
   if (view)
     return (wxDocument::IsModified() || view->getTextCtrl()->IsModified());
   else
     return wxDocument::IsModified();
 }
 
   if (view)
     return (wxDocument::IsModified() || view->getTextCtrl()->IsModified());
   else
     return wxDocument::IsModified();
 }
 
+
+TextFileView* 
+TextFileDocument::getView() const
+{ 
+  return dynamic_cast<TextFileView*>(GetFirstView()); 
+}
index 06cddcc6632dce2512b305c750242d40b1f31d85..133a1ad69d6fa5d97637f9456a1c8405a5db7ef7 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2000 Kevin Rosenberg
 **
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2000 Kevin Rosenberg
 **
-**  $Id: docs.h,v 1.13 2001/01/20 17:43:41 kevin Exp $
+**  $Id: docs.h,v 1.14 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
 **
 **  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 "wx/docview.h"
 
 
 #include "wx/docview.h"
 
+// #include "views.h"
 #include "imagefile.h"
 #include "phantom.h"
 #include "projections.h"
 #include "plotfile.h"
 
 #include "imagefile.h"
 #include "phantom.h"
 #include "projections.h"
 #include "plotfile.h"
 
+class ProjectionFileView;
+class PhantomFileView;
+class ImageFileView;
+class PlotFileView;
+class TextFileView;
 
 class ImageFileDocument: public wxDocument
 {
 
 class ImageFileDocument: public wxDocument
 {
-    DECLARE_DYNAMIC_CLASS(ImageFileDocument)
 private:
 private:
+    DECLARE_DYNAMIC_CLASS(ImageFileDocument)
     ImageFile m_imageFile;
 
 public:
     ImageFile m_imageFile;
 
 public:
@@ -53,20 +59,19 @@ public:
     virtual void Modify (bool mod);
     
     ImageFileDocument () {}
     virtual void Modify (bool mod);
     
     ImageFileDocument () {}
-    ~ImageFileDocument () {}
+    virtual ~ImageFileDocument () {}
 
 
-    const ImageFile& getImageFile() const
-       { return m_imageFile; }
+    const ImageFile& getImageFile() const { return m_imageFile; }
 
 
-    ImageFile& getImageFile()
-       { return m_imageFile; }
+    ImageFile& getImageFile() { return m_imageFile; }
+    ImageFileView* getView() const;
 };
 
 
 class ProjectionFileDocument: public wxDocument
 {
 };
 
 
 class ProjectionFileDocument: public wxDocument
 {
-    DECLARE_DYNAMIC_CLASS(ProjectionFileDocument)
 private:
 private:
+    DECLARE_DYNAMIC_CLASS(ProjectionFileDocument)
     Projections m_projectionFile;
 
 public:
     Projections m_projectionFile;
 
 public:
@@ -76,57 +81,51 @@ public:
     virtual void Modify (bool mod);
     
     ProjectionFileDocument () {}
     virtual void Modify (bool mod);
     
     ProjectionFileDocument () {}
-    ~ProjectionFileDocument () {}
+    virtual ~ProjectionFileDocument () {}
 
 
-    const Projections& getProjections () const
-       { return m_projectionFile; }
+    const Projections& getProjections () const { return m_projectionFile; }
+    Projections& getProjections ()     { return m_projectionFile; }
 
 
-    Projections& getProjections ()
-       { return m_projectionFile; }
+    ProjectionFileView* getView() const;
 };
 
 
 };
 
 
-class PhantomDocument: public wxDocument
+class PhantomFileDocument: public wxDocument
 {
 {
-    DECLARE_DYNAMIC_CLASS(PhantomDocument)
-
 private:
 private:
+    DECLARE_DYNAMIC_CLASS(PhantomFileDocument)
     Phantom m_phantom;
     int m_idPhantom;
     wxString m_namePhantom;
 
 public:
     Phantom m_phantom;
     int m_idPhantom;
     wxString m_namePhantom;
 
 public:
-    PhantomDocument () 
+    PhantomFileDocument () 
        : m_idPhantom(Phantom::PHM_INVALID)
        : m_idPhantom(Phantom::PHM_INVALID)
-       {}
+    {}
 
 
-    ~PhantomDocument () 
-       {}
+    virtual ~PhantomFileDocument () 
+    {}
 
 
-    const int getPhantomID () const
-       { return m_idPhantom; }
+    const int getPhantomID () const { return m_idPhantom; }
 
 
-    const wxString& getPhantomName () const
-       { return m_namePhantom; }
+    const wxString& getPhantomName () const { return m_namePhantom; }
 
 
-    const Phantom& getPhantom () const
-       { return m_phantom; }
+    const Phantom& getPhantom () const         { return m_phantom; }
 
 
-    Phantom& getPhantom ()
-       { return m_phantom; }
+    Phantom& getPhantom ()     { return m_phantom; }
 
     virtual bool OnOpenDocument (const wxString& filename);
     virtual bool OnSaveDocument (const wxString& filename);
     virtual bool IsModified () const;
     virtual void Modify (bool mod);
 
     virtual bool OnOpenDocument (const wxString& filename);
     virtual bool OnSaveDocument (const wxString& filename);
     virtual bool IsModified () const;
     virtual void Modify (bool mod);
+    PhantomFileView* getView() const;
 };
 
 
 class PlotFileDocument: public wxDocument
 {
 };
 
 
 class PlotFileDocument: public wxDocument
 {
-    DECLARE_DYNAMIC_CLASS(PlotFileDocument)
-
 private:
 private:
+    DECLARE_DYNAMIC_CLASS(PlotFileDocument)
     PlotFile m_plot;
     wxString m_namePlot;
 
     PlotFile m_plot;
     wxString m_namePlot;
 
@@ -134,7 +133,7 @@ public:
     PlotFileDocument () 
        {}
 
     PlotFileDocument () 
        {}
 
-    ~PlotFileDocument () 
+    virtual ~PlotFileDocument () 
        {}
 
     const wxString& getPlotName () const
        {}
 
     const wxString& getPlotName () const
@@ -150,25 +149,28 @@ public:
     virtual bool OnSaveDocument (const wxString& filename);
     virtual bool IsModified () const;
     virtual void Modify (bool mod);
     virtual bool OnSaveDocument (const wxString& filename);
     virtual bool IsModified () const;
     virtual void Modify (bool mod);
+    PlotFileView* getView() const;
 };
 
 #include "views.h"
 
 };
 
 #include "views.h"
 
-class TextEditDocument: public wxDocument
+class TextFileDocument: public wxDocument
 {
  private:
 {
  private:
-  DECLARE_DYNAMIC_CLASS(TextEditDocument)
+  DECLARE_DYNAMIC_CLASS(TextFileDocument)
 
  public:
 
  public:
-  TextEditDocument(void) {}
-  ~TextEditDocument(void) {}
+  TextFileDocument(void) {}
+  virtual ~TextFileDocument(void) {}
 
   virtual bool OnSaveDocument(const wxString& filename);
   virtual bool OnOpenDocument(const wxString& filename);
   virtual bool IsModified(void) const;
 
   wxTextCtrl* getTextCtrl()
 
   virtual bool OnSaveDocument(const wxString& filename);
   virtual bool OnOpenDocument(const wxString& filename);
   virtual bool IsModified(void) const;
 
   wxTextCtrl* getTextCtrl()
-  { return dynamic_cast<TextEditView*>(GetFirstView())->getTextCtrl(); }
+  { return dynamic_cast<TextFileView*>(GetFirstView())->getTextCtrl(); }
+
+  TextFileView* getView() const;
 };
 
 
 };
 
 
index 65ab9f6d744797083b2121f84652ebaf1708f546..62a15395e2cba28502e528d6399d5cf111d821da 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2000 Kevin Rosenberg
 **
 **  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
 **
 **  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()) {
       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;
         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();
       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;
       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();
       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;
       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();
       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;
       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();
       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;
       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 << ")";
     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;
     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]);
       }
     }
         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 {
     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]);
       }
     }
         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 {
     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);
     
     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 {
     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);
     }
     
       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 {
     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];
       }
         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 {
       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];
       }
         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 {
       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) {
   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;
     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::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;
 : 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()
 
 END_EVENT_TABLE()
 
-PhantomView::PhantomView(void) 
+PhantomFileView::PhantomFileView(void) 
 : wxView(), m_canvas(NULL), m_frame(NULL), m_pFileMenu(0)
 {
   m_iDefaultNDet = 367;
 : wxView(), m_canvas(NULL), m_frame(NULL), m_pFileMenu(0)
 {
   m_iDefaultNDet = 367;
@@ -1747,12 +1747,12 @@ PhantomView::PhantomView(void)
   m_iDefaultRasterNSamples = 2;
 }
 
   m_iDefaultRasterNSamples = 2;
 }
 
-PhantomView::~PhantomView()
+PhantomFileView::~PhantomFileView()
 {
 }
 
 void
 {
 }
 
 void
-PhantomView::OnProperties (wxCommandEvent& event)
+PhantomFileView::OnProperties (wxCommandEvent& event)
 {
   const int idPhantom = GetDocument()->getPhantomID();
   const wxString& namePhantom = GetDocument()->getPhantomName();
 {
   const int idPhantom = GetDocument()->getPhantomID();
   const wxString& namePhantom = GetDocument()->getPhantomName();
@@ -1769,7 +1769,7 @@ PhantomView::OnProperties (wxCommandEvent& event)
 
 
 void
 
 
 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();
 {
   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();
     
     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;
       if (! pProjectionDoc) {
         sys_error (ERR_SEVERE, "Unable to create projection document");
         return;
@@ -1858,7 +1858,7 @@ PhantomView::OnProjections (wxCommandEvent& event)
 
 
 void
 
 
 void
-PhantomView::OnRasterize (wxCommandEvent& event)
+PhantomFileView::OnRasterize (wxCommandEvent& event)
 {
   DialogGetRasterParameters dialogRaster (getFrameForChild(), m_iDefaultRasterNX, m_iDefaultRasterNY, m_iDefaultRasterNSamples);
   int retVal = dialogRaster.ShowModal();
 {
   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();
       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;
       if (! pRasterDoc) {
         sys_error (ERR_SEVERE, "Unable to create image file");
         return;
@@ -1907,13 +1907,13 @@ PhantomView::OnRasterize (wxCommandEvent& event)
 
 
 PhantomCanvas* 
 
 
 PhantomCanvas* 
-PhantomView::CreateCanvas (wxView *view, wxFrame *parent)
+PhantomFileView::CreateCanvas (wxView *view, wxFrame *parent)
 {
   PhantomCanvas* pCanvas;
   int width, height;
   parent->GetClientSize(&width, &height);
   
 {
   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();
   
   pCanvas->SetBackgroundColour(*wxWHITE);
   pCanvas->Clear();
@@ -1922,7 +1922,7 @@ PhantomView::CreateCanvas (wxView *view, wxFrame *parent)
 }
 
 wxFrame*
 }
 
 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);
 {
 #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 
 
 
 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 = 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__
   m_canvas = CreateCanvas (this, m_frame);
   
 #ifdef __X__
@@ -2011,14 +2011,14 @@ PhantomView::OnCreate(wxDocument *doc, long WXUNUSED(flags) )
 }
 
 void 
 }
 
 void 
-PhantomView::OnUpdate(wxView *WXUNUSED(sender), wxObject *WXUNUSED(hint) )
+PhantomFileView::OnUpdate(wxView *WXUNUSED(sender), wxObject *WXUNUSED(hint) )
 {
   if (m_canvas)
     m_canvas->Refresh();
 }
 
 bool 
 {
   if (m_canvas)
     m_canvas->Refresh();
 }
 
 bool 
-PhantomView::OnClose (bool deleteWindow)
+PhantomFileView::OnClose (bool deleteWindow)
 {
   if (!GetDocument()->Close())
     return false;
 {
   if (!GetDocument()->Close())
     return false;
@@ -2042,7 +2042,7 @@ PhantomView::OnClose (bool deleteWindow)
 }
 
 void
 }
 
 void
-PhantomView::OnDraw (wxDC* dc)
+PhantomFileView::OnDraw (wxDC* dc)
 {
   int xsize, ysize;
   m_canvas->GetClientSize (&xsize, &ysize);
 {
   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();
     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");
     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();
     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");
     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) {
     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;
       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 = 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__
   m_pFrame->SetTitle("Log");
   
 #ifdef __X__
@@ -2862,16 +2862,16 @@ bool TextEditView::OnCreate(wxDocument *doc, long WXUNUSED(flags) )
 }
 
 // Handled by wxTextWindow
 }
 
 // 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 
 {
 }
 
 bool 
-TextEditView::OnClose (bool deleteWindow)
+TextFileView::OnClose (bool deleteWindow)
 {
   return false;
   
 {
   return false;
   
@@ -2889,12 +2889,12 @@ TextEditView::OnClose (bool deleteWindow)
 }
 
 wxFrame*
 }
 
 wxFrame*
-TextEditView::CreateChildFrame (wxDocument *doc, wxView *view)
+TextFileView::CreateChildFrame (wxDocument *doc, wxView *view)
 {
 #if CTSIM_MDI
 {
 #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
 #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);
   
 #endif
   theApp->setIconForFrame (subframe);
   
@@ -2945,12 +2945,12 @@ TextEditView::CreateChildFrame (wxDocument *doc, wxView *view)
 
 
 // Define a constructor for my text subwindow
 
 
 // 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)
 {
 }
 
   : wxTextCtrl (frame, -1, "", pos, size, style), m_pView(v)
 {
 }
 
-TextEditCanvas::~TextEditCanvas ()
+TextFileCanvas::~TextFileCanvas ()
 {
   if (m_pView) {
     wxMenu* pMenu = m_pView->getFileMenu();
 {
   if (m_pView) {
     wxMenu* pMenu = m_pView->getFileMenu();
index 9f57f5588ffa74bce8a213fd6814c1fcd9e18a2d..6cab7ab8e274d4f3790e0344f8ff27f281ca1592 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2000 Kevin Rosenberg
 **
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2000 Kevin Rosenberg
 **
-**  $Id: views.h,v 1.29 2001/01/26 00:45:24 kevin Exp $
+**  $Id: views.h,v 1.30 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
 **
 **  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
@@ -242,10 +242,10 @@ public:
 
 
 class PhantomCanvas;
 
 
 class PhantomCanvas;
-class PhantomView : public wxView
+class PhantomFileView : public wxView
 {
 private:
 {
 private:
-  DECLARE_DYNAMIC_CLASS(PhantomView)
+  DECLARE_DYNAMIC_CLASS(PhantomFileView)
   DECLARE_EVENT_TABLE()
     
   PhantomCanvas *CreateCanvas(wxView *view, wxFrame *parent);
   DECLARE_EVENT_TABLE()
     
   PhantomCanvas *CreateCanvas(wxView *view, wxFrame *parent);
@@ -276,8 +276,8 @@ private:
 #endif
 
 public:
 #endif
 
 public:
-  PhantomView(void);
-  virtual ~PhantomView(void);
+  PhantomFileView(void);
+  virtual ~PhantomFileView(void);
   void canvasClosed()
   { m_canvas = NULL; m_frame = NULL; }
   
   void canvasClosed()
   { m_canvas = NULL; m_frame = NULL; }
   
@@ -289,22 +289,23 @@ public:
   void OnRasterize (wxCommandEvent& event);
   void OnProjections (wxCommandEvent& event);
   
   void OnRasterize (wxCommandEvent& event);
   void OnProjections (wxCommandEvent& event);
   
-  PhantomDocument* GetDocument(void) 
-  { return dynamic_cast<PhantomDocument*>(wxView::GetDocument()); }
+  PhantomFileDocument* GetDocument(void) 
+  { return dynamic_cast<PhantomFileDocument*>(wxView::GetDocument()); }
   
   wxMenu* getFileMenu() { return m_pFileMenu; }
   
   wxMenu* getFileMenu() { return m_pFileMenu; }
+  wxFrame* getFrame() { return m_frame; }
 };
 
 class PhantomCanvas: public wxScrolledWindow
 {
 private:
 };
 
 class PhantomCanvas: public wxScrolledWindow
 {
 private:
-  PhantomView* m_pView;
+  PhantomFileView* m_pView;
 
 public:  
 
 public:  
-  PhantomCanvas (PhantomView* v, wxFrame *frame, const wxPoint& pos, const wxSize& size, const long style);
+  PhantomCanvas (PhantomFileView* v, wxFrame *frame, const wxPoint& pos, const wxSize& size, const long style);
   virtual ~PhantomCanvas();
 
   virtual ~PhantomCanvas();
 
-  void setView(PhantomView* pView)
+  void setView(PhantomFileView* pView)
   { m_pView = pView; }
   virtual void OnDraw(wxDC& dc);
 };
   { m_pView = pView; }
   virtual void OnDraw(wxDC& dc);
 };
@@ -378,43 +379,43 @@ public:
 };
 
 
 };
 
 
-class TextEditCanvas;
-class TextEditView: public wxView
+class TextFileCanvas;
+class TextFileView: public wxView
 {
 private:
 {
 private:
-  DECLARE_DYNAMIC_CLASS(TextEditView)
+  DECLARE_DYNAMIC_CLASS(TextFileView)
 
     wxFrame *m_pFrame;
     wxMenu* m_pFileMenu;
 
     wxFrame *m_pFrame;
     wxMenu* m_pFileMenu;
-    TextEditCanvas *m_pCanvas;
+    TextFileCanvas *m_pCanvas;
   
 public:
   
 public:
-    TextEditView() 
+    TextFileView() 
       : wxView() , m_pFrame(0), m_pCanvas(0)
     {}
       : wxView() , m_pFrame(0), m_pCanvas(0)
     {}
-    ~TextEditView();
+    ~TextFileView();
     void canvasClosed()
     { m_pFrame = NULL; }
 
     void canvasClosed()
     { m_pFrame = NULL; }
 
-   wxFrame *CreateChildFrame(wxDocument *doc, wxView *view);
+    wxFrame *CreateChildFrame(wxDocument *doc, wxView *view);
 
     bool OnCreate (wxDocument *doc, long flags);
     void OnDraw (wxDC *dc);
     void OnUpdate (wxView *sender, wxObject *hint = (wxObject *) NULL);
     bool OnClose (bool deleteWindow = TRUE);
 
 
     bool OnCreate (wxDocument *doc, long flags);
     void OnDraw (wxDC *dc);
     void OnUpdate (wxView *sender, wxObject *hint = (wxObject *) NULL);
     bool OnClose (bool deleteWindow = TRUE);
 
-    TextEditCanvas* getTextCtrl() { return m_pCanvas; }
-
-  wxMenu* getFileMenu() { return m_pFileMenu; }
+    TextFileCanvas* getTextCtrl() { return m_pCanvas; }
+    wxFrame* getFrame() { return m_pFrame; }
+    wxMenu* getFileMenu() { return m_pFileMenu; }
 };
 
 };
 
-class TextEditCanvas: public wxTextCtrl
+class TextFileCanvas: public wxTextCtrl
 {
 {
-    TextEditView *m_pView;
+    TextFileView *m_pView;
 
 public:    
 
 public:    
-    TextEditCanvas (TextEditView *v, wxFrame *frame, const wxPoint& pos, const wxSize& size, long style);
-    ~TextEditCanvas ();
+    TextFileCanvas (TextFileView *v, wxFrame *frame, const wxPoint& pos, const wxSize& size, long style);
+    ~TextFileCanvas ();
 };
 
 
 };