X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=src%2Fctsim.cpp;h=c024c6ed8706b9833e7de4b74151a07899613091;hb=c6f2bb52c598291d61d31a3eba54b84ebb338580;hp=38c939c66e47bd26adfb1acf0e065692eee12c77;hpb=d3a6bf4aa2ccd32ed7671d1d97777dfc414df51d;p=ctsim.git diff --git a/src/ctsim.cpp b/src/ctsim.cpp index 38c939c..c024c6e 100644 --- a/src/ctsim.cpp +++ b/src/ctsim.cpp @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: ctsim.cpp,v 1.60 2001/01/30 05:05:41 kevin Exp $ +** $Id: ctsim.cpp,v 1.66 2001/02/02 23:04:06 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.60 2001/01/30 05:05:41 kevin Exp $"; +static const char* rcsindent = "$Id: ctsim.cpp,v 1.66 2001/02/02 23:04:06 kevin Exp $"; struct option CTSimApp::ctsimOptions[] = { @@ -138,7 +138,10 @@ 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); - +#if wxUSE_GLCANVAS + m_pDocTemplGraph3d = new wxDocTemplate (m_docManager, "Graph3dFile", "*.g3d", "", "g3d", "Graph3dFile", "Graph3dView", CLASSINFO(Graph3dFileDocument), CLASSINFO(Graph3dFileView), wxTEMPLATE_INVISIBLE); +#endif + #if wxUSE_GIF wxImage::AddHandler(new wxGIFHandler); // Required for images in the online documentation #endif @@ -382,10 +385,23 @@ MainFrame::MainFrame(wxDocManager *manager, wxFrame *frame, wxWindowID id, const MainFrame::~MainFrame() { m_bShuttingDown = true; // Currently used so that Log Window will close +#if 0 + // delete all non-modified documents + wxList& rListDocs = theApp->getDocManager()->GetDocuments(); + for (wxNode* pNode = rListDocs.GetFirst(); pNode != NULL; pNode = pNode->GetNext()) { + wxDocument* pDoc = dynamic_cast(pNode->GetData()); + if (pDoc && ! pDoc->IsModified()) { + theApp->getDocManager()->RemoveDocument(pDoc); + delete pDoc; + } + } +#endif + ::wxYield(); if (theApp->getConfig()) theApp->getDocManager()->FileHistorySave (*theApp->getConfig()); - delete theApp->getDocManager(); - + ::wxYield(); + delete theApp->getDocManager(); + } void @@ -447,6 +463,7 @@ MainFrame::OnCreateFilter (wxCommandEvent& WXUNUSED(event)) *theApp->getLog() << os.str().c_str() << "\n"; wxString filename = "untitled.if"; ImageFileDocument* pFilterDoc = theApp->newImageDoc(); + pFilterDoc->setBadFileOpen(); if (! pFilterDoc) { sys_error (ERR_SEVERE, "Unable to create filter image"); return; @@ -884,3 +901,25 @@ CTSimApp::newPhantomDoc() return newDoc; } + +#if wxUSE_GLCANVAS + +Graph3dFileDocument* +CTSimApp::newGraph3dDoc() +{ + Graph3dFileDocument* newDoc = dynamic_cast(m_pDocTemplGraph3d->CreateDocument ("")); + if (newDoc) { + Graph3dFileView* pView = newDoc->getView(); + if (pView) { + wxFrame* pFrame = pView->getFrame(); + if (pFrame) + pFrame->SetSize (0,0); + } + newDoc->SetDocumentName (m_pDocTemplGraph3d->GetDocumentName()); + newDoc->SetDocumentTemplate (m_pDocTemplGraph3d); + newDoc->OnNewDocument(); + } + + return newDoc; +} +#endif