X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=src%2Fdocs.cpp;h=88ad50fa14cccdde293a007812b7c1273c6df246;hb=3f6c94c6bd432ad7b7a55ad991d3b8223fb44f18;hp=88e6ba59222e8f2f8c5dda1b7e6649bf73ace788;hpb=cbcb02ba9b76a82c9a09ce1c7712431bb215575a;p=ctsim.git diff --git a/src/docs.cpp b/src/docs.cpp index 88e6ba5..88ad50f 100644 --- a/src/docs.cpp +++ b/src/docs.cpp @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (c) 1983-2001 Kevin Rosenberg ** -** $Id: docs.cpp,v 1.17 2001/01/30 02:20:50 kevin Exp $ +** $Id: docs.cpp,v 1.23 2001/02/03 18:42:21 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 @@ -57,7 +57,7 @@ IMPLEMENT_DYNAMIC_CLASS(ImageFileDocument, wxDocument) bool ImageFileDocument::OnSaveDocument(const wxString& filename) { - if (! m_imageFile.fileWrite (filename)) { + if (! m_pImageFile->fileWrite (filename)) { *theApp->getLog() << "Unable to write image file " << filename << "\n"; return false; } @@ -71,7 +71,7 @@ bool ImageFileDocument::OnOpenDocument(const wxString& filename) if (! OnSaveModified()) return false; - if (! m_imageFile.fileRead (filename.c_str())) { + if (! m_pImageFile->fileRead (filename.c_str())) { *theApp->getLog() << "Unable to read image file " << filename << "\n"; m_bBadFileOpen = true; return false; @@ -80,18 +80,20 @@ bool ImageFileDocument::OnOpenDocument(const wxString& filename) SetFilename(filename, true); Modify(false); UpdateAllViews(); - GetFirstView()->OnUpdate (GetFirstView(), NULL); + getView()->OnUpdate (getView(), NULL); m_bBadFileOpen = false; return true; } -bool ImageFileDocument::IsModified(void) const +bool +ImageFileDocument::IsModified(void) const { return wxDocument::IsModified(); } -void ImageFileDocument::Modify(bool mod) +void +ImageFileDocument::Modify(bool mod) { wxDocument::Modify(mod); } @@ -102,13 +104,35 @@ ImageFileDocument::getView() const return dynamic_cast(GetFirstView()); } + +bool +ImageFileDocument::Revert () +{ + if (IsModified()) { + wxString msg ("Revert to saved "); + msg += GetFilename(); + msg += "?"; + wxMessageDialog dialog (getView()->getFrame(), msg, "Are you sure?", wxYES_NO | wxNO_DEFAULT); + if (dialog.ShowModal() == wxID_YES) { + *theApp->getLog() << "Reverting to saved " << GetFilename() << "\n"; + Modify (false); + OnOpenDocument (GetFilename()); + } + } + getView()->OnUpdate (getView(), NULL); + UpdateAllViews(); + + return true; +} + // ProjectionFileDocument IMPLEMENT_DYNAMIC_CLASS(ProjectionFileDocument, wxDocument) -bool ProjectionFileDocument::OnSaveDocument(const wxString& filename) +bool +ProjectionFileDocument::OnSaveDocument(const wxString& filename) { - if (! m_projectionFile.write (filename.c_str())) { + if (! m_pProjectionFile->write (filename.c_str())) { *theApp->getLog() << "Unable to write projection file " << filename << "\n"; return false; } @@ -117,12 +141,13 @@ bool ProjectionFileDocument::OnSaveDocument(const wxString& filename) return true; } -bool ProjectionFileDocument::OnOpenDocument(const wxString& filename) +bool +ProjectionFileDocument::OnOpenDocument(const wxString& filename) { if (! OnSaveModified()) return false; - if (! m_projectionFile.read (filename.c_str())) { + if (! m_pProjectionFile->read (filename.c_str())) { *theApp->getLog() << "Unable to read projection file " << filename << "\n"; m_bBadFileOpen = true; return false; @@ -137,12 +162,14 @@ bool ProjectionFileDocument::OnOpenDocument(const wxString& filename) return true; } -bool ProjectionFileDocument::IsModified(void) const +bool +ProjectionFileDocument::IsModified(void) const { return wxDocument::IsModified(); } -void ProjectionFileDocument::Modify(bool mod) +void +ProjectionFileDocument::Modify(bool mod) { wxDocument::Modify(mod); } @@ -158,7 +185,8 @@ ProjectionFileDocument::getView() const IMPLEMENT_DYNAMIC_CLASS(PhantomFileDocument, wxDocument) -bool PhantomFileDocument::OnOpenDocument(const wxString& filename) +bool +PhantomFileDocument::OnOpenDocument(const wxString& filename) { if (! OnSaveModified()) return false; @@ -187,7 +215,8 @@ bool PhantomFileDocument::OnOpenDocument(const wxString& filename) return true; } -bool PhantomFileDocument::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"; @@ -198,12 +227,14 @@ bool PhantomFileDocument::OnSaveDocument(const wxString& filename) return true; } -bool PhantomFileDocument::IsModified(void) const +bool +PhantomFileDocument::IsModified(void) const { return false; } -void PhantomFileDocument::Modify(bool mod) +void +PhantomFileDocument::Modify(bool mod) { wxDocument::Modify(mod); } @@ -219,7 +250,8 @@ PhantomFileDocument::getView() const IMPLEMENT_DYNAMIC_CLASS(PlotFileDocument, wxDocument) -bool PlotFileDocument::OnSaveDocument(const wxString& filename) +bool +PlotFileDocument::OnSaveDocument(const wxString& filename) { m_namePlot = filename.c_str(); if (! m_plot.fileWrite (filename)) { @@ -231,7 +263,8 @@ bool PlotFileDocument::OnSaveDocument(const wxString& filename) return true; } -bool PlotFileDocument::OnOpenDocument(const wxString& filename) +bool +PlotFileDocument::OnOpenDocument(const wxString& filename) { if (! OnSaveModified()) return false; @@ -253,12 +286,14 @@ bool PlotFileDocument::OnOpenDocument(const wxString& filename) } -bool PlotFileDocument::IsModified(void) const +bool +PlotFileDocument::IsModified(void) const { return wxDocument::IsModified(); } -void PlotFileDocument::Modify(bool mod) +void +PlotFileDocument::Modify (bool mod) { wxDocument::Modify(mod); } @@ -277,9 +312,8 @@ PlotFileDocument::getView() const 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 -bool TextFileDocument::OnSaveDocument(const wxString& filename) +bool +TextFileDocument::OnSaveDocument(const wxString& filename) { TextFileView *view = getView(); if (! view->getTextCtrl()->SaveFile(filename)) @@ -288,7 +322,8 @@ bool TextFileDocument::OnSaveDocument(const wxString& filename) return true; } -bool TextFileDocument::OnOpenDocument(const wxString& filename) +bool +TextFileDocument::OnOpenDocument(const wxString& filename) { TextFileView *view = getView(); @@ -304,7 +339,8 @@ bool TextFileDocument::OnOpenDocument(const wxString& filename) return true; } -bool TextFileDocument::IsModified(void) const +bool +TextFileDocument::IsModified(void) const { return false; @@ -329,3 +365,69 @@ TextFileDocument::getTextCtrl() return dynamic_cast(GetFirstView())->getTextCtrl(); } +////////////////////////////////////////////////////////////////////////// +// +// Graph3dFileDocument +// +////////////////////////////////////////////////////////////////////////// + +#if wxUSE_GLCANVAS + +IMPLEMENT_DYNAMIC_CLASS(Graph3dFileDocument, wxDocument) + +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() +{ +// delete [] m_pVertices; +// delete [] m_pNormals; +} + +bool +Graph3dFileDocument::OnSaveDocument(const wxString& filename) +{ + Modify(false); + return true; +} + +bool +Graph3dFileDocument::OnOpenDocument(const wxString& filename) +{ + SetFilename (filename, true); + Modify (false); + UpdateAllViews(); + m_bBadFileOpen = false; + return true; +} + +bool +Graph3dFileDocument::IsModified(void) const +{ + return wxDocument::IsModified(); +} + + +Graph3dFileView* +Graph3dFileDocument::getView() const +{ + 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(); + + return true; +} + +#endif // wxUSE_GLCANVAS