X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=src%2Fdocs.cpp;h=8bdb8d017925ec936583ec51403c3e78c00f4007;hb=a5d437cb4228b07f8c005eaca497c317b8c19d14;hp=69b59544fc448f6afafff26201f94d69f5248170;hpb=9b2bb510160bdb56f04847f5b55ab61dd8a47976;p=ctsim.git diff --git a/src/docs.cpp b/src/docs.cpp index 69b5954..8bdb8d0 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.10 2001/01/02 05:34:57 kevin Exp $ +** $Id: docs.cpp,v 1.14 2001/01/20 17:43:41 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 @@ -80,8 +80,8 @@ bool ImageFileDocument::OnOpenDocument(const wxString& filename) SetFilename(filename, true); } Modify(false); - UpdateAllViews(); - GetFirstView()->OnUpdate (GetFirstView(), NULL); + UpdateAllViews(); + GetFirstView()->OnUpdate (GetFirstView(), NULL); return true; } @@ -96,11 +96,6 @@ void ImageFileDocument::Modify(bool mod) wxDocument::Modify(mod); } -bool ImageFileDocument::OnCloseDocument () -{ - bool bReturn = wxDocument::OnCloseDocument(); - return bReturn; -} // ProjectionFileDocument @@ -131,7 +126,8 @@ bool ProjectionFileDocument::OnOpenDocument(const wxString& filename) SetFilename(filename, true); } Modify(false); - UpdateAllViews(); + UpdateAllViews(); + GetFirstView()->OnUpdate (GetFirstView(), NULL); return true; } @@ -147,11 +143,6 @@ void ProjectionFileDocument::Modify(bool mod) } -bool ProjectionFileDocument::OnCloseDocument () -{ - bool bReturn = wxDocument::OnCloseDocument(); - return bReturn; -} // PhantomDocument @@ -175,31 +166,26 @@ bool PhantomDocument::OnOpenDocument(const wxString& filename) } m_idPhantom = m_phantom.id(); Modify(false); - UpdateAllViews(); + UpdateAllViews(); + GetFirstView()->OnUpdate (GetFirstView(), NULL); return true; } -bool PhantomDocument::OnSaveDocument(const wxString& filename) -{ - if (! m_phantom.fileWrite (filename.c_str())) { - *theApp->getLog() << "Unable to write phantom file " << filename << "\n"; - return false; - } - *theApp->getLog() << "Wrote phantom file " << filename << "\n"; - Modify(false); - return true; -} - -bool PhantomDocument::OnCloseDocument () +bool PhantomDocument::OnSaveDocument(const wxString& filename) { - bool bReturn = wxDocument::OnCloseDocument(); - return bReturn; + if (! m_phantom.fileWrite (filename.c_str())) { + *theApp->getLog() << "Unable to write phantom file " << filename << "\n"; + return false; + } + *theApp->getLog() << "Wrote phantom file " << filename << "\n"; + Modify(false); + return true; } bool PhantomDocument::IsModified(void) const { - return wxDocument::IsModified(); + return false; } void PhantomDocument::Modify(bool mod) @@ -212,18 +198,18 @@ void PhantomDocument::Modify(bool mod) IMPLEMENT_DYNAMIC_CLASS(PlotFileDocument, wxDocument) -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"; - return false; - } - *theApp->getLog() << "Wrote plot file " << filename << "\n"; - Modify(false); - return true; -} - +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"; + return false; + } + *theApp->getLog() << "Wrote plot file " << filename << "\n"; + Modify(false); + return true; +} + bool PlotFileDocument::OnOpenDocument(const wxString& filename) { if (filename == "untitled.plt") { @@ -235,21 +221,16 @@ bool PlotFileDocument::OnOpenDocument(const wxString& filename) return false; } *theApp->getLog() << "Read plot file " << filename << "\n"; - SetFilename (filename, true); + SetFilename (filename, true); m_namePlot = filename.c_str(); } Modify (false); - UpdateAllViews(); - GetFirstView()->OnUpdate (NULL, NULL); + UpdateAllViews(); + GetFirstView()->OnUpdate (NULL, NULL); return true; } -bool PlotFileDocument::OnCloseDocument () -{ - bool bReturn = wxDocument::OnCloseDocument(); - return bReturn; -} bool PlotFileDocument::IsModified(void) const { @@ -261,3 +242,47 @@ void PlotFileDocument::Modify(bool mod) wxDocument::Modify(mod); } + +////////////////////////////////////////////////////////////////////////// +// +// TextEditDocument +// +////////////////////////////////////////////////////////////////////////// + +IMPLEMENT_DYNAMIC_CLASS(TextEditDocument, wxDocument) + +// 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) +{ + TextEditView *view = dynamic_cast(GetFirstView()); + if (! view->getTextCtrl()->SaveFile(filename)) + return false; + Modify(false); + return true; +} + +bool TextEditDocument::OnOpenDocument(const wxString& filename) +{ + TextEditView *view = dynamic_cast(GetFirstView()); + + if (filename != "Log.txt" && ! view->getTextCtrl()->LoadFile(filename)) + return false; + + SetFilename (filename, true); + Modify (false); + UpdateAllViews(); + return true; +} + +bool TextEditDocument::IsModified(void) const +{ + return false; + + TextEditView *view = dynamic_cast(GetFirstView()); + if (view) + return (wxDocument::IsModified() || view->getTextCtrl()->IsModified()); + else + return wxDocument::IsModified(); +} +