X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=blobdiff_plain;f=src%2Fdocs.cpp;h=028c8214fe24841e2700209bbd4c6f670620d534;hp=bd4e404416579ccc1cf924b4d3150ca16b8f6979;hb=f7ee98f7d964ed361068179f0e7ea4475ed1abdf;hpb=d77c9d135405e077047ef3426a54470c144cdd34 diff --git a/src/docs.cpp b/src/docs.cpp index bd4e404..028c821 100644 --- a/src/docs.cpp +++ b/src/docs.cpp @@ -1,7 +1,7 @@ /***************************************************************************** ** FILE IDENTIFICATION ** -** Name: doc.cpp +** Name: docs.cpp ** Purpose: Document routines for CTSim program ** Programmer: Kevin Rosenberg ** Date Started: July 2000 @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (c) 1983-2001 Kevin Rosenberg ** -** $Id: docs.cpp,v 1.33 2001/03/05 17:26:46 kevin Exp $ +** $Id$ ** ** 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 @@ -25,10 +25,6 @@ ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ -#ifdef __GNUG__ -// #pragma implementation -#endif - #include "wx/wxprec.h" #ifndef WX_PRECOMP @@ -55,12 +51,12 @@ IMPLEMENT_DYNAMIC_CLASS(ImageFileDocument, wxDocument) bool ImageFileDocument::OnSaveDocument(const wxString& filename) { - if (! m_pImageFile->fileWrite (filename)) { - *theApp->getLog() << "Unable to write image file " << filename << "\n"; + if (! m_pImageFile->fileWrite (filename.mb_str(wxConvUTF8))) { + *theApp->getLog() << _T("Unable to write image file ") << filename << _T("\n"); return false; } if (theApp->getVerboseLogging()) - *theApp->getLog() << "Wrote image file " << filename << "\n"; + *theApp->getLog() << _T("Wrote image file ") << filename << _T("\n"); Modify(false); return true; } @@ -70,62 +66,70 @@ bool ImageFileDocument::OnOpenDocument(const wxString& filename) if (! OnSaveModified()) return false; - if (! m_pImageFile->fileRead (filename.c_str())) { - *theApp->getLog() << "Unable to read image file " << filename << "\n"; + if (! m_pImageFile->fileRead (filename.mb_str(wxConvUTF8))) { + *theApp->getLog() << _T("Unable to read image file ") << filename << _T("\n"); m_bBadFileOpen = true; return false; } - if (theApp->getVerboseLogging()) - *theApp->getLog() << "Read image file " << filename << "\n"; - SetFilename(filename, true); + + if (theApp->getVerboseLogging() && filename != _T("")) + *theApp->getLog() << _T("Read image file ") << filename << _T("\n"); + + SetFilename(filename, true); Modify(false); + getView()->setInitialClientSize(); UpdateAllViews(); - getView()->OnUpdate (getView(), NULL); m_bBadFileOpen = false; return true; } -bool +bool ImageFileDocument::IsModified(void) const { return wxDocument::IsModified(); } -void +void ImageFileDocument::Modify(bool mod) { wxDocument::Modify(mod); } -ImageFileView* +ImageFileView* ImageFileDocument::getView() const -{ - return dynamic_cast(GetFirstView()); +{ + return dynamic_cast(GetFirstView()); } - bool ImageFileDocument::Revert () { if (IsModified()) { - wxString msg ("Revert to saved "); + wxString msg (_T("Revert to saved ")); msg += GetFilename(); - msg += "?"; - wxMessageDialog dialog (getView()->getFrame(), msg, "Are you sure?", wxYES_NO | wxNO_DEFAULT); + msg += _T("?"); + wxMessageDialog dialog (getView()->getFrame(), msg, _T("Are you sure?"), wxYES_NO | wxNO_DEFAULT); if (dialog.ShowModal() == wxID_YES) { if (theApp->getVerboseLogging()) - *theApp->getLog() << "Reverting to saved " << GetFilename() << "\n"; + *theApp->getLog() << _T("Reverting to saved ") << GetFilename() << _T("\n"); Modify (false); OnOpenDocument (GetFilename()); } } - getView()->OnUpdate (getView(), NULL); UpdateAllViews(); return true; } +void +ImageFileDocument::Activate() +{ +#if CTSIM_MDI + getView()->getFrame()->Activate(); +#endif +}; + // BackgroundProcessingDocument - Base Class IMPLEMENT_DYNAMIC_CLASS(BackgroundProcessingDocument, wxDocument) @@ -146,9 +150,9 @@ BackgroundProcessingDocument::removeBackgroundSupervisor (BackgroundSupervisor* { m_criticalSection.Enter(); bool bFound = false; - for (BackgroundContainer::iterator i = m_vecpBackgroundSupervisors.begin(); - i != m_vecpBackgroundSupervisors.end(); - i++) + for (BackgroundContainer::iterator i = m_vecpBackgroundSupervisors.begin(); + i != m_vecpBackgroundSupervisors.end(); + i++) if (*i == pSupervisor) { m_vecpBackgroundSupervisors.erase(i); bFound = true; @@ -156,7 +160,7 @@ BackgroundProcessingDocument::removeBackgroundSupervisor (BackgroundSupervisor* } m_criticalSection.Leave(); - if (! bFound) + if (! bFound) sys_error (ERR_SEVERE, "Could not find background task [OnRemoveBackground]"); } #endif @@ -166,14 +170,14 @@ BackgroundProcessingDocument::cancelRunningTasks() { #ifdef HAVE_WXTHREADS m_criticalSection.Enter(); - for (BackgroundContainer::iterator i = m_vecpBackgroundSupervisors.begin(); + for (BackgroundContainer::iterator i = m_vecpBackgroundSupervisors.begin(); i != m_vecpBackgroundSupervisors.end(); i++) (*i)->onCancel(); m_criticalSection.Leave(); while (m_vecpBackgroundSupervisors.size() > 0) { ::wxYield(); - ::wxUsleep(50); + ::wxMilliSleep(50); } #endif } @@ -181,17 +185,17 @@ BackgroundProcessingDocument::cancelRunningTasks() // ProjectionFileDocument -IMPLEMENT_DYNAMIC_CLASS(ProjectionFileDocument, BackgroundProcessingTask) +IMPLEMENT_DYNAMIC_CLASS(ProjectionFileDocument, BackgroundProcessingDocument) -bool +bool ProjectionFileDocument::OnSaveDocument(const wxString& filename) { - if (! m_pProjectionFile->write (filename.c_str())) { - *theApp->getLog() << "Unable to write projection file " << filename << "\n"; + if (! m_pProjectionFile->write (filename.mb_str(wxConvUTF8))) { + *theApp->getLog() << _T("Unable to write projection file ") << filename << _T("\n"); return false; } if (theApp->getVerboseLogging()) - *theApp->getLog() << "Wrote projection file " << filename << "\n"; + *theApp->getLog() << _T("Wrote projection file ") << filename << _T("\n"); Modify(false); return true; } @@ -203,179 +207,207 @@ ProjectionFileDocument::~ProjectionFileDocument() delete m_pProjectionFile; } -bool +bool ProjectionFileDocument::OnOpenDocument(const wxString& filename) { if (! OnSaveModified()) return false; - if (! m_pProjectionFile->read (filename.c_str())) { - *theApp->getLog() << "Unable to read projection file " << filename << "\n"; + if (! m_pProjectionFile->read (filename.mb_str(wxConvUTF8))) { + *theApp->getLog() << _T("Unable to read projection file ") << filename << _T("\n"); m_bBadFileOpen = true; return false; } - if (theApp->getVerboseLogging()) - *theApp->getLog() << "Read projection file " << filename << "\n"; + m_bBadFileOpen = false; + + if (theApp->getVerboseLogging() && filename != _T("")) + *theApp->getLog() << _T("Read projection file ") << filename << _T("\n"); + SetFilename(filename, true); Modify(false); + getView()->setInitialClientSize(); UpdateAllViews(); - GetFirstView()->OnUpdate (GetFirstView(), NULL); - m_bBadFileOpen = false; - + return true; } -bool +bool ProjectionFileDocument::IsModified(void) const { return wxDocument::IsModified(); } -void +void ProjectionFileDocument::Modify(bool mod) { wxDocument::Modify(mod); } -ProjectionFileView* +ProjectionFileView* ProjectionFileDocument::getView() const -{ - return dynamic_cast(GetFirstView()); +{ + return dynamic_cast(GetFirstView()); } +void +ProjectionFileDocument::Activate() +{ +#if CTSIM_MDI + getView()->getFrame()->Activate(); +#endif +}; + // PhantomFileDocument -IMPLEMENT_DYNAMIC_CLASS(PhantomFileDocument, BackgroundProcessingTask) +IMPLEMENT_DYNAMIC_CLASS(PhantomFileDocument, BackgroundProcessingDocument) PhantomFileDocument::~PhantomFileDocument() { cancelRunningTasks(); } -bool -PhantomFileDocument::OnOpenDocument(const wxString& filename) +bool +PhantomFileDocument::OnOpenDocument(const wxString& constFilename) { if (! OnSaveModified()) return false; - wxString myFilename = filename; - if (wxFile::Exists (myFilename)) { - m_phantom.createFromFile (myFilename); + wxString filename (constFilename); + + if (wxFile::Exists (filename)) { + m_phantom.createFromFile (filename.mb_str(wxConvUTF8)); if (theApp->getVerboseLogging()) - *theApp->getLog() << "Read phantom file " << filename << "\n"; + *theApp->getLog() << _T("Read phantom file ") << filename << _T("\n"); } else { - myFilename.Replace (".phm", ""); - m_phantom.createFromPhantom (myFilename); + filename.Replace (_T(".phm"), _T("")); + m_phantom.createFromPhantom (filename.mb_str(wxConvUTF8)); } - m_namePhantom = myFilename; - SetFilename (myFilename, true); + m_namePhantom = filename; + SetFilename (filename, true); if (m_phantom.fail()) { - *theApp->getLog() << "Failure creating phantom " << myFilename << "\n"; + *theApp->getLog() << _T("Failure creating phantom ") << filename << _T("\n"); m_bBadFileOpen = true; return false; } m_idPhantom = m_phantom.id(); Modify(false); UpdateAllViews(); - GetFirstView()->OnUpdate (GetFirstView(), NULL); m_bBadFileOpen = false; - + return true; } -bool +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.mb_str(wxConvUTF8))) { + *theApp->getLog() << _T("Unable to write phantom file ") << filename << _T("\n"); return false; } if (theApp->getVerboseLogging()) - *theApp->getLog() << "Wrote phantom file " << filename << "\n"; + *theApp->getLog() << _T("Wrote phantom file ") << filename << _T("\n"); Modify(false); return true; } -bool +bool PhantomFileDocument::IsModified(void) const { return false; } -void +void PhantomFileDocument::Modify(bool mod) { wxDocument::Modify(mod); } -PhantomFileView* +PhantomFileView* PhantomFileDocument::getView() const -{ - return dynamic_cast(GetFirstView()); +{ + return dynamic_cast(GetFirstView()); } +void +PhantomFileDocument::Activate() +{ +#if CTSIM_MDI + getView()->getFrame()->Activate(); +#endif +}; + // PlotFileDocument IMPLEMENT_DYNAMIC_CLASS(PlotFileDocument, wxDocument) -bool +bool PlotFileDocument::OnSaveDocument(const wxString& filename) { m_namePlot = filename.c_str(); - if (! m_plot.fileWrite (filename)) { - *theApp->getLog() << "Unable to write plot file " << filename << "\n"; + if (! m_plot.fileWrite (filename.mb_str(wxConvUTF8))) { + *theApp->getLog() << _T("Unable to write plot file ") << filename << _T("\n"); return false; } if (theApp->getVerboseLogging()) - *theApp->getLog() << "Wrote plot file " << filename << "\n"; + *theApp->getLog() << _T("Wrote plot file ") << filename << _T("\n"); Modify(false); return true; } -bool +bool PlotFileDocument::OnOpenDocument(const wxString& filename) { if (! OnSaveModified()) return false; - if (! m_plot.fileRead (filename.c_str())) { - *theApp->getLog() << "Unable to read plot file " << filename << "\n"; + if (! m_plot.fileRead (filename.mb_str(wxConvUTF8))) { + *theApp->getLog() << _T("Unable to read plot file ") << filename << _T("\n"); m_bBadFileOpen = true; return false; } - if (theApp->getVerboseLogging()) - *theApp->getLog() << "Read plot file " << filename << "\n"; + m_bBadFileOpen = false; + + if (theApp->getVerboseLogging() && filename != _T("")) + *theApp->getLog() << _T("Read plot file ") << filename << _T("\n"); + SetFilename (filename, true); m_namePlot = filename.c_str(); Modify (false); + getView()->setInitialClientSize(); UpdateAllViews(); - GetFirstView()->OnUpdate (NULL, NULL); - m_bBadFileOpen = false; - + return true; } -bool +bool PlotFileDocument::IsModified(void) const { return wxDocument::IsModified(); } -void +void PlotFileDocument::Modify (bool mod) { wxDocument::Modify(mod); } -PlotFileView* +PlotFileView* PlotFileDocument::getView() const -{ - return dynamic_cast(GetFirstView()); +{ + return dynamic_cast(GetFirstView()); } +void +PlotFileDocument::Activate() +{ +#if CTSIM_MDI + getView()->getFrame()->Activate(); +#endif +}; + ////////////////////////////////////////////////////////////////////////// // // TextFileDocument @@ -384,7 +416,7 @@ PlotFileDocument::getView() const IMPLEMENT_DYNAMIC_CLASS(TextFileDocument, wxDocument) -bool +bool TextFileDocument::OnSaveDocument(const wxString& filename) { TextFileView *view = getView(); @@ -394,16 +426,16 @@ TextFileDocument::OnSaveDocument(const wxString& filename) return true; } -bool +bool TextFileDocument::OnOpenDocument(const wxString& filename) { TextFileView *view = getView(); - + if (! view->getTextCtrl()->LoadFile(filename)) { m_bBadFileOpen = true; return false; } - + SetFilename (filename, true); Modify (false); UpdateAllViews(); @@ -411,13 +443,13 @@ TextFileDocument::OnOpenDocument(const wxString& filename) return true; } -bool +bool TextFileDocument::IsModified(void) const { return false; - + TextFileView *view = getView(); - + if (view) return (wxDocument::IsModified() || view->getTextCtrl()->IsModified()); else @@ -425,16 +457,16 @@ TextFileDocument::IsModified(void) const } -TextFileView* +TextFileView* TextFileDocument::getView() const -{ - return dynamic_cast(GetFirstView()); +{ + return dynamic_cast(GetFirstView()); } -wxTextCtrl* +wxTextCtrl* TextFileDocument::getTextCtrl() -{ - return dynamic_cast(GetFirstView())->getTextCtrl(); +{ + return dynamic_cast(GetFirstView())->getTextCtrl(); } ////////////////////////////////////////////////////////////////////////// @@ -447,54 +479,49 @@ TextFileDocument::getTextCtrl() IMPLEMENT_DYNAMIC_CLASS(Graph3dFileDocument, wxDocument) -Graph3dFileDocument::Graph3dFileDocument(void) +Graph3dFileDocument::Graph3dFileDocument(void) : m_bBadFileOpen(false), m_nVertices(0), m_pVertices(0), m_pNormals(0),m_nx(0),m_ny(0),m_array(0) { } -Graph3dFileDocument::~Graph3dFileDocument() +Graph3dFileDocument::~Graph3dFileDocument() { -// delete [] m_pVertices; -// delete [] m_pNormals; } -bool +bool Graph3dFileDocument::OnSaveDocument(const wxString& filename) { Modify(false); return true; } -bool +bool Graph3dFileDocument::OnOpenDocument(const wxString& filename) { SetFilename (filename, true); Modify (false); + getView()->setInitialClientSize(); UpdateAllViews(); m_bBadFileOpen = false; return true; } -bool +bool Graph3dFileDocument::IsModified(void) const { return wxDocument::IsModified(); } -Graph3dFileView* +Graph3dFileView* Graph3dFileDocument::getView() const -{ - return dynamic_cast(GetFirstView()); +{ + return dynamic_cast(GetFirstView()); } bool Graph3dFileDocument::createFromImageFile (const ImageFile& rImageFile) { -// delete [] m_pVertices; -// delete [] m_pNormals; - - m_nx = rImageFile.nx(); m_ny = rImageFile.ny(); m_array = rImageFile.getArray(); @@ -502,4 +529,13 @@ Graph3dFileDocument::createFromImageFile (const ImageFile& rImageFile) return true; } +void +Graph3dFileDocument::Activate() +{ +#if CTSIM_MDI + getView()->getFrame()->Activate(); +#endif +}; + + #endif // wxUSE_GLCANVAS