r472: Initial import of Graph3d Doc/View
[ctsim.git] / src / ctsim.cpp
index a55ba8e3d0e38cc953e05f906a3cb5ba81a23a1e..b6c19bac9106f74df8485eee4128890610d50a7d 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2000 Kevin Rosenberg
 **
-**  $Id: ctsim.cpp,v 1.58 2001/01/29 23:11:32 kevin Exp $
+**  $Id: ctsim.cpp,v 1.61 2001/01/30 07:32:13 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.58 2001/01/29 23:11:32 kevin Exp $";
+static const char* rcsindent = "$Id: ctsim.cpp,v 1.61 2001/01/30 07:32:13 kevin Exp $";
 
 struct option CTSimApp::ctsimOptions[] = 
 {
@@ -138,6 +138,7 @@ CTSimApp::OnInit()
        m_pDocTemplPhantom = new wxDocTemplate (m_docManager, "PhantomFile", "*.phm", "", "phm", "PhantomFile", "PhantomView", CLASSINFO(PhantomFileDocument), CLASSINFO(PhantomFileView));
        m_pDocTemplPlot = new wxDocTemplate (m_docManager, "PlotFile", "*.plt", "", "plt", "PlotFile", "PlotView", CLASSINFO(PlotFileDocument), CLASSINFO(PlotFileView));
        m_pDocTemplText = new wxDocTemplate (m_docManager, "TextFile", "*.txt", "", "txt", "TextFile", "TextView", CLASSINFO(TextFileDocument), CLASSINFO(TextFileView), wxTEMPLATE_INVISIBLE);
+       m_pDocTemplGraph3d = new wxDocTemplate (m_docManager, "Graph3dFile", "*.g3d", "", "g3d", "Graph3dFile", "Graph3dView", CLASSINFO(Graph3dFileDocument), CLASSINFO(Graph3dFileView), wxTEMPLATE_INVISIBLE);
        
 #if wxUSE_GIF
        wxImage::AddHandler(new wxGIFHandler);     // Required for images in the online documentation
@@ -167,6 +168,7 @@ CTSimApp::OnInit()
                m_docManager->FileHistoryLoad(*m_pConfig);
        
 #ifdef CTSIM_MDI
+#if 1
        m_pLogDoc = newTextDoc();
        if (m_pLogDoc) {
                m_pLog = m_pLogDoc->getTextCtrl();
@@ -175,10 +177,20 @@ CTSimApp::OnInit()
                m_pLogDoc->getView()->getFrame()->SetTitle("Log");
                int xSize, ySize;
                m_pFrame->GetClientSize(&xSize, &ySize);
-               int yLogSize = ySize / 3;
+               int yLogSize = ySize / 4;
                m_pLogDoc->getView()->getFrame()->SetSize (0, ySize - yLogSize, xSize, yLogSize);
                m_pLogDoc->getView()->getFrame()->Show (true);
        } else
+#else
+//    wxMDIChildFrame *pLogFrame = new wxMDIChildFrame (m_pFrame, -1, "Log", wxDefaultPosition, wxSize(0,0), wxTHICK_FRAME, "Log");
+    m_pLog = new wxTextCtrl(m_pFrame->GetClientWindow(), -1, "", wxPoint(0,0), wxSize(0,0), wxTE_MULTILINE | wxTE_READONLY);
+               int xSize, ySize;
+               m_pFrame->GetClientSize(&xSize, &ySize);
+               int yLogSize = ySize / 5;
+               m_pLog->SetSize (0, ySize - yLogSize, xSize, yLogSize);
+               m_pLog->Show (true);
+    m_pLog->Enable (true);
+#endif
 #else
                m_pLog = new wxTextCtrl (m_pFrame, -1, "Log Window\n", wxPoint(0, 0), wxSize(0,0), wxTE_MULTILINE | wxTE_READONLY);
 #endif
@@ -293,6 +305,8 @@ MainFrame::MainFrame(wxDocManager *manager, wxFrame *frame, wxWindowID id, const
 : wxDocParentFrame(manager, frame, id, title, pos, size, type, "MainFrame")
 #endif
 {
+  m_bShuttingDown = false;
+
        //// Make a menubar
        wxMenu *file_menu = new wxMenu;
        
@@ -368,6 +382,7 @@ MainFrame::MainFrame(wxDocManager *manager, wxFrame *frame, wxWindowID id, const
 
 MainFrame::~MainFrame()
 {
+  m_bShuttingDown = true; // Currently used so that Log Window will close
        if (theApp->getConfig())
                theApp->getDocManager()->FileHistorySave (*theApp->getConfig());
        delete theApp->getDocManager();
@@ -378,17 +393,13 @@ void
 MainFrame::OnSize (wxSizeEvent& event)
 {
 #ifdef CTSIM_MDI
-       int xSize, ySize;
-       wxMDIParentFrame::GetClientSize(&xSize, &ySize);
-       
-       if (theApp->getLogDoc()) {
+    if (theApp->getLogDoc()) {
+       int xSize, ySize;       
                GetClientSize(&xSize, &ySize);
-               int yLogSize = ySize / 3;
-               theApp->getLogDoc()->getView()->getFrame()->SetSize (0, ySize - yLogSize, xSize, yLogSize);
-               theApp->getLogDoc()->getView()->getFrame()->Show (true);
-       }
-       //GetClientWindow()->SetSize (0, 0, sizeClient.x, sizeClient.y);
-       //GetClientWindow()->Refresh();
+               int yLogSize = ySize / 4;
+                 theApp->getLogDoc()->getView()->getFrame()->SetSize (0, ySize - yLogSize, xSize, yLogSize);
+                 theApp->getLogDoc()->getView()->getFrame()->Show (true);
+    }
 #endif
        
 #if CTSIM_MDI
@@ -776,7 +787,9 @@ CTSimApp::newProjectionDoc()
                                pFrame->Show (false);
                        }
                }
-//             newDoc->OnNewDocument();
+    newDoc->SetDocumentName (m_pDocTemplProjection->GetDocumentName());
+    newDoc->SetDocumentTemplate (m_pDocTemplProjection);
+    newDoc->OnNewDocument();
        }
        
        return newDoc;
@@ -795,7 +808,9 @@ CTSimApp::newImageDoc()
                                pFrame->Show (false);
                        }
                }
-//             newDoc->OnNewDocument();
+    newDoc->SetDocumentName (m_pDocTemplImage->GetDocumentName());
+    newDoc->SetDocumentTemplate (m_pDocTemplImage);
+    newDoc->OnNewDocument();
        }
        
        return newDoc;
@@ -816,7 +831,9 @@ CTSimApp::newPlotDoc()
                                pFrame->Show (false);
                        }
                }
-//             newDoc->OnNewDocument();
+    newDoc->SetDocumentName (m_pDocTemplPlot->GetDocumentName());
+    newDoc->SetDocumentTemplate (m_pDocTemplPlot);
+    newDoc->OnNewDocument();
        }
        
        return newDoc;
@@ -841,7 +858,9 @@ CTSimApp::newTextDoc()
                                pFrame->Show (false);
                        }
                }
-//             newDoc->OnNewDocument();
+    newDoc->SetDocumentName (m_pDocTemplText->GetDocumentName());
+    newDoc->SetDocumentTemplate (m_pDocTemplText);
+    newDoc->OnNewDocument();
        }
        
        return newDoc;
@@ -859,7 +878,9 @@ CTSimApp::newPhantomDoc()
                        if (pFrame)
                                pFrame->SetSize (0,0);
                }
-//             newDoc->OnNewDocument();
+    newDoc->SetDocumentName (m_pDocTemplPhantom->GetDocumentName());
+    newDoc->SetDocumentTemplate (m_pDocTemplPhantom);
+    newDoc->OnNewDocument();
        }
        
        return newDoc;