r442: Fixes to application shutdown
[ctsim.git] / src / ctsim.cpp
index a5a889aad72aeef87a22a338a8844e3babbe26ac..3736f8d9164589f91ec1599632e40df311b75497 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2000 Kevin Rosenberg
 **
-**  $Id: ctsim.cpp,v 1.42 2001/01/26 05:37:24 kevin Exp $
+**  $Id: ctsim.cpp,v 1.45 2001/01/26 23:23:00 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.42 2001/01/26 05:37:24 kevin Exp $";
+static const char* rcsindent = "$Id: ctsim.cpp,v 1.45 2001/01/26 23:23:00 kevin Exp $";
 
 struct option CTSimApp::ctsimOptions[] = 
 {
@@ -148,7 +148,9 @@ CTSimApp::OnInit()
 #endif
   
   // Create the main frame window
-  m_pFrame = new MainFrame(m_docManager, (wxFrame *) NULL, -1, "CTSim", wxPoint(0, 0), wxSize(500, 400), wxDEFAULT_FRAME_STYLE);
+  int xDisplay, yDisplay;
+  ::wxDisplaySize (&xDisplay, &yDisplay);
+  m_pFrame = new MainFrame(m_docManager, (wxFrame *) NULL, -1, "CTSim", wxPoint(0, 0), wxSize(xDisplay * .75, yDisplay * .755), wxDEFAULT_FRAME_STYLE);
   
   setIconForFrame (m_pFrame);
   m_pFrame->Centre(wxBOTH);
@@ -178,9 +180,9 @@ CTSimApp::OnInit()
     pLogDoc->SetFilename("Log.txt");
     pLogDoc->getView()->getFrame()->SetTitle("Log");
     int xSize, ySize;
-    m_pFrame->GetSize(&xSize, &ySize);
-    int yLogSize = ySize / 4;
-    pLogDoc->getView()->getFrame()->SetSize (0, 0, xSize, yLogSize);
+    m_pFrame->GetClientSize(&xSize, &ySize);
+    int yLogSize = ySize / 3;
+    pLogDoc->getView()->getFrame()->SetSize (0, ySize - yLogSize, xSize, yLogSize);
   } else
 #else
     m_pLog = new wxTextCtrl (m_pFrame, -1, "Log Window\n", wxPoint(0, 0), wxSize(0,0), wxTE_MULTILINE | wxTE_READONLY);
@@ -214,11 +216,6 @@ CTSimApp::usage(const char* program)
 int
 CTSimApp::OnExit()
 {
-    if (theApp->getConfig())
-      theApp->getDocManager()->FileHistorySave (*theApp->getConfig());
-    delete theApp->getDocManager();
-  m_docManager = NULL;
-
 #ifdef HAVE_DMALLOC
   dmalloc_shutdown();
 #endif
@@ -332,7 +329,8 @@ MainFrame::MainFrame(wxDocManager *manager, wxFrame *frame, wxWindowID id, const
   SetMenuBar(menu_bar);
   
 #ifndef CTSIM_MDI
-  for (int i = 0; i < MAX_WINDOW_MENUITEMS; i++) {
+  int i;
+  for (i = 0; i < MAX_WINDOW_MENUITEMS; i++) {
     m_apWindowMenuItems[i] = new wxMenuItem (m_pWindowMenu, MAINMENU_WINDOW_BASE+i, wxString("[EMPTY]"));
     m_pWindowMenu->Append (m_apWindowMenuItems[i]);
     m_pWindowMenu->Enable (MAINMENU_WINDOW_BASE+i, false);
@@ -368,6 +366,9 @@ MainFrame::MainFrame(wxDocManager *manager, wxFrame *frame, wxWindowID id, const
 
 MainFrame::~MainFrame()
 {
+    if (theApp->getConfig())
+      theApp->getDocManager()->FileHistorySave (*theApp->getConfig());
+    delete theApp->getDocManager();
 }
 
 void
@@ -404,7 +405,7 @@ MainFrame::OnCreatePhantom(wxCommandEvent& event)
     *theApp->getLog() << "Selected phantom " << selection.c_str() << "\n";
     wxString filename = selection + ".phm";
     m_iDefaultPhantomID = Phantom::convertNameToPhantomID (selection.c_str());
-    theApp->getDocManager()->CreateDocument(filename, wxDOC_SILENT);
+    theApp->getDocManager()->CreateDocument (filename, wxDOC_SILENT);
   }
   
 }
@@ -771,11 +772,8 @@ CTSimApp::newProjectionDoc()
       if (pFrame)
         pFrame->SetSize(0,0);
     }
-    newDoc->SetDocumentName(strFilename);
-    newDoc->SetFilename(strFilename);
-    newDoc->SetDocumentTemplate(m_pDocTemplProjection);
-    newDoc->SetTitle(strFilename);
     newDoc->OnNewDocument();
+//    newDoc->SetFilename(strFilename, true);
   }
 
   return newDoc;
@@ -795,11 +793,8 @@ CTSimApp::newImageDoc()
       if (pFrame)
         pFrame->SetSize(0,0);
     }
-    newDoc->SetDocumentName(strFilename);
-    newDoc->SetFilename(strFilename);
-    newDoc->SetDocumentTemplate(m_pDocTemplImage);
-    newDoc->SetTitle(strFilename);
     newDoc->OnNewDocument();
+//    newDoc->SetFilename(strFilename, true);
   }
 
   return newDoc;
@@ -819,11 +814,8 @@ CTSimApp::newPlotDoc()
       if (pFrame)
         pFrame->SetSize(0,0);
     }
-    newDoc->SetDocumentName(strFilename);
-    newDoc->SetFilename(strFilename);
-    newDoc->SetDocumentTemplate(m_pDocTemplPlot);
-    newDoc->SetTitle(strFilename);
     newDoc->OnNewDocument();
+//    newDoc->SetFilename(strFilename, true);
   }
 
   return newDoc;
@@ -844,11 +836,8 @@ CTSimApp::newTextDoc()
       if (pFrame)
         pFrame->SetSize(0,0);
     }
-    newDoc->SetDocumentName(strFilename);
-    newDoc->SetFilename(strFilename);
-    newDoc->SetDocumentTemplate(m_pDocTemplText);
-    newDoc->SetTitle(strFilename);
     newDoc->OnNewDocument();
+//    newDoc->SetFilename(strFilename, true);
   }
 
   return newDoc;
@@ -869,11 +858,8 @@ CTSimApp::newPhantomDoc()
       if (pFrame)
         pFrame->SetSize(0,0);
     }
-    newDoc->SetDocumentName(strFilename);
-    newDoc->SetFilename(strFilename);
-    newDoc->SetDocumentTemplate(m_pDocTemplPhantom);
-    newDoc->SetTitle(strFilename);
     newDoc->OnNewDocument();
+//    newDoc->SetFilename(strFilename, true);
   }
 
   return newDoc;