X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=blobdiff_plain;f=src%2Fdocs.cpp;h=034cfe710041604be7815baf7575c92feb095ee6;hp=d5abb54835690538544dfd7febb600eebb8ca799;hb=dc034c9d0b7d9c3874a324a4c2c189a02945adc8;hpb=1fd4f7cc977b9f1499716de10d15656bd50f4816 diff --git a/src/docs.cpp b/src/docs.cpp index d5abb54..034cfe7 100644 --- a/src/docs.cpp +++ b/src/docs.cpp @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: docs.cpp,v 1.1 2000/07/13 07:01:59 kevin Exp $ +** $Id: docs.cpp,v 1.4 2000/12/16 06:12:47 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 @@ -40,37 +40,48 @@ #include "wx/wx.h" #endif #include "wx/txtstrm.h" +#include "wx/file.h" #if !wxUSE_DOC_VIEW_ARCHITECTURE #error You must set wxUSE_DOC_VIEW_ARCHITECTURE to 1 in setup.h! #endif +#include "ct.h" +#include "ctsim.h" #include "docs.h" #include "views.h" - - // ImageFileDocument IMPLEMENT_DYNAMIC_CLASS(ImageFileDocument, wxDocument) bool ImageFileDocument::OnSaveDocument(const wxString& filename) { - if (!m_imageFile.fileWrite (filename)) - return false; - Modify(false); - return true; + if (! m_imageFile.fileWrite (filename)) { + *theApp->getLog() << "Unable to write image file " << filename << "\n"; + return false; + } + *theApp->getLog() << "Wrote image file " << filename << "\n"; + Modify(false); + return true; } bool ImageFileDocument::OnOpenDocument(const wxString& filename) { - if (! m_imageFile.fileRead (filename)) - return false; - + if (filename == "untitled.if") { + wxString untitledFilename = theApp->getUntitledFilename(); + SetFilename (untitledFilename, true); + } else { + if (! m_imageFile.fileRead (filename)) { + *theApp->getLog() << "Unable to read image file " << filename << "\n"; + return false; + } + *theApp->getLog() << "Read image file " << filename << "\n"; SetFilename(filename, true); - Modify(false); - UpdateAllViews(); - return true; + } + Modify(false); + UpdateAllViews(); + return true; } bool ImageFileDocument::IsModified(void) const @@ -83,27 +94,43 @@ void ImageFileDocument::Modify(bool mod) wxDocument::Modify(mod); } +bool ImageFileDocument::OnCloseDocument () +{ + bool bReturn = wxDocument::OnCloseDocument(); + return bReturn; +} + // ProjectionFileDocument IMPLEMENT_DYNAMIC_CLASS(ProjectionFileDocument, wxDocument) bool ProjectionFileDocument::OnSaveDocument(const wxString& filename) { - if (!m_projectionFile.write (filename)) - return false; - Modify(false); - return true; + if (! m_projectionFile.write (filename)) { + *theApp->getLog() << "Unable to write projection file " << filename << "\n"; + return false; + } + *theApp->getLog() << "Wrote projection file " << filename << "\n"; + Modify(false); + return true; } bool ProjectionFileDocument::OnOpenDocument(const wxString& filename) { - if (! m_projectionFile.read (filename)) - return false; - + if (filename == "untitled.pj") { + wxString untitledFilename = theApp->getUntitledFilename(); + SetFilename (untitledFilename, true); + } else { + if (! m_projectionFile.read (filename)) { + *theApp->getLog() << "Unable to read projection file " << filename << "\n"; + return false; + } + *theApp->getLog() << "Read projection file " << filename << "\n"; SetFilename(filename, true); - Modify(false); - UpdateAllViews(); - return true; + } + Modify(false); + UpdateAllViews(); + return true; } bool ProjectionFileDocument::IsModified(void) const @@ -115,3 +142,53 @@ void ProjectionFileDocument::Modify(bool mod) { wxDocument::Modify(mod); } + + +bool ProjectionFileDocument::OnCloseDocument () +{ + bool bReturn = wxDocument::OnCloseDocument(); + return bReturn; +} + +// PhantomDocument + +IMPLEMENT_DYNAMIC_CLASS(PhantomDocument, wxDocument) + +bool PhantomDocument::OnOpenDocument(const wxString& filename) +{ + wxString myFilename = filename; + if (wxFile::Exists (myFilename)) { + m_phantom.createFromFile (myFilename); + *theApp->getLog() << "Read phantom file " << filename << "\n"; + } else { + myFilename.Replace (".phm", ""); + m_phantom.createFromPhantom (myFilename); + } + m_namePhantom = myFilename; + SetFilename (myFilename, true); + if (m_phantom.fail()) { + *theApp->getLog() << "Failure creating phantom " << myFilename << "\n"; + return false; + } + m_idPhantom = m_phantom.id(); + Modify(false); + UpdateAllViews(); + return true; +} + +bool PhantomDocument::OnCloseDocument () +{ + bool bReturn = wxDocument::OnCloseDocument(); + return bReturn; +} + +bool PhantomDocument::IsModified(void) const +{ + return wxDocument::IsModified(); +} + +void PhantomDocument::Modify(bool mod) +{ + wxDocument::Modify(mod); +} +