r481: no message
[ctsim.git] / src / ctsim.cpp
index 6a1e1117abff5458f4284552796b6ce0e3c86f68..d9e3171485af6d47eb45613db6c6cf5cdda06a29 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2000 Kevin Rosenberg
 **
-**  $Id: ctsim.cpp,v 1.64 2001/01/31 01:01:22 kevin Exp $
+**  $Id: ctsim.cpp,v 1.65 2001/02/02 21:50:18 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
@@ -70,7 +70,7 @@
 #endif
 #endif
 
-static const char* rcsindent = "$Id: ctsim.cpp,v 1.64 2001/01/31 01:01:22 kevin Exp $";
+static const char* rcsindent = "$Id: ctsim.cpp,v 1.65 2001/02/02 21:50:18 kevin Exp $";
 
 struct option CTSimApp::ctsimOptions[] = 
 {
@@ -385,10 +385,21 @@ MainFrame::MainFrame(wxDocManager *manager, wxFrame *frame, wxWindowID id, const
 MainFrame::~MainFrame()
 {
   m_bShuttingDown = true; // Currently used so that Log Window will close
+
+  // delete all non-modified documents
+       wxList& rListDocs = theApp->getDocManager()->GetDocuments();
+       for (wxNode* pNode = rListDocs.GetFirst(); pNode != NULL; pNode = pNode->GetNext()) {
+               wxDocument* pDoc = static_cast<wxDocument*>(pNode->GetData());
+    if (! pDoc->IsModified()) {
+      GetDocumentManager()->RemoveDocument(pDoc);
+      delete pDoc;
+    }
+       }
+  ::wxYield();
        if (theApp->getConfig())
-               theApp->getDocManager()->FileHistorySave (*theApp->getConfig());
-       delete theApp->getDocManager();
-       
+               GetDocumentManager()->FileHistorySave (*theApp->getConfig());
+  ::wxYield();
+       delete theApp->getDocManager(); 
 }
 
 void