X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=src%2Fctsim.cpp;h=5297830900e048ac32a77fe7f50de50ab50441b9;hb=6bcab27e89795df59defa160aff6b9831468c4d9;hp=9d7e87052cd0b9ab9fc7adb10525ee52f7eaff22;hpb=3ea498d51ce4597e9649cd21f155b51175ea0bea;p=ctsim.git diff --git a/src/ctsim.cpp b/src/ctsim.cpp index 9d7e870..5297830 100644 --- a/src/ctsim.cpp +++ b/src/ctsim.cpp @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (c) 1983-2001 Kevin Rosenberg ** -** $Id: ctsim.cpp,v 1.99 2001/03/21 21:45:31 kevin Exp $ +** $Id: ctsim.cpp,v 1.117 2002/06/20 08:22:48 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.99 2001/03/21 21:45:31 kevin Exp $"; +static const char* rcsindent = "$Id: ctsim.cpp,v 1.117 2002/06/20 08:22:48 kevin Exp $"; struct option CTSimApp::ctsimOptions[] = { @@ -119,9 +119,9 @@ CTSimApp::OnInit() case O_VERSION: std::cout << rcsindent << std::endl; #ifdef CTSIMVERSION - std::cout << "Version: CTSIMVERSION" << std::endl; + std::cout << "Version: " << CTSIMVERSION << std::endl; #elif defined(VERSION) - std::cout << "Version: VERSION" << std::endl; + std::cout << "Version: " << VERSION << std::endl; #endif exit(0); case O_HELP: @@ -159,8 +159,14 @@ CTSimApp::OnInit() // Create the main frame window int xDisplay, yDisplay; ::wxDisplaySize (&xDisplay, &yDisplay); + m_pFrame = new MainFrame(m_docManager, (wxFrame *) NULL, -1, "CTSim", wxPoint(0, 0), - wxSize(nearest(xDisplay * .75), nearest(yDisplay * .755)), wxDEFAULT_FRAME_STYLE); +#ifdef CTSIM_MDI + wxSize(nearest(xDisplay * .75), nearest(yDisplay * .75)), +#else + wxSize(nearest(xDisplay * .6), nearest(yDisplay * .4)), +#endif + wxDEFAULT_FRAME_STYLE); setIconForFrame (m_pFrame); m_pFrame->Centre(wxBOTH); @@ -195,8 +201,10 @@ CTSimApp::OnInit() if (! m_pFrame->getWinHelpController().Initialize(helpDir + "/ctsim")) *m_pLog << "Cannot initialize the Windows Help system" << "\n"; #else - if (! m_pFrame->getHtmlHelpController().Initialize(helpDir + "/ctsim") && - ! m_pFrame->getHtmlHelpController().Initialize("/usr/local/man/ctsim")) + wxString docDir (DATADIR); + wxString docFile = docDir + "ctsim.htb"; + if (! m_pFrame->getHtmlHelpController().AddBook(docFile) && + ! m_pFrame->getHtmlHelpController().Initialize("/usr/share/ctsim/ctsim.htb")) *m_pLog << "Cannot initialize the HTML Help system" << "\n"; else { if (::wxDirExists ("/tmp")) @@ -518,8 +526,8 @@ MainFrame::OnSize (wxSizeEvent& event) int xSize, ySize; GetClientSize(&xSize, &ySize); int yLogSize = ySize / 4; - theApp->getLogDoc()->getView()->getFrame()->SetSize (0, ySize - yLogSize, xSize, yLogSize); - theApp->getLogDoc()->getView()->getFrame()->Show (true); + theApp->getLogDoc()->getView()->getFrame()->SetSize (0, ySize - yLogSize, xSize, yLogSize); + theApp->getLogDoc()->getView()->getFrame()->Show (true); } #endif @@ -618,15 +626,8 @@ MainFrame::OnNewImageFile (wxCommandEvent& event) return; } pImageDoc->setImageFile (pImageFile); - pImageDoc->UpdateAllViews (NULL); - if (ImageFileView* imageView = pImageDoc->getView()) { - imageView->OnUpdate (imageView, NULL); - imageView->getFrame()->SetFocus(); - imageView->getFrame()->Show(true); - } if (theApp->getAskDeleteNewDocs()) pImageDoc->Modify (true); - } void @@ -639,13 +640,6 @@ MainFrame::OnNewProjectionFile (wxCommandEvent& event) return; } pProjDoc->setProjections (pProjections); - pProjDoc->UpdateAllViews (NULL); - if (ProjectionFileView* projView = pProjDoc->getView()) { - projView->OnUpdate (projView, NULL); - projView->getFrame()->SetFocus(); - projView->getFrame()->Show(true); - } - if (theApp->getAskDeleteNewDocs()) pProjDoc->Modify (true); } @@ -678,7 +672,7 @@ MainFrame::OnHelpButton (wxCommandEvent& event) void MainFrame::OnHelpSecondary (wxCommandEvent& event) { - m_htmlHelp.DisplayContents(); + m_htmlHelp.Display ("Contents"); } #endif @@ -691,7 +685,7 @@ MainFrame::showHelp (int commandID) #ifdef CTSIM_WINHELP m_winHelp.DisplayContents (); #else - m_htmlHelp.DisplayContents (); + m_htmlHelp.Display ("Contents"); #endif break; @@ -740,15 +734,6 @@ MainFrame::OnUpdateUI (wxUpdateUIEvent& rEvent) #endif } -#ifdef CTSIM_CUSTOM_MRU -void -MainFrame::OnMRUFile (wxCommandEvent& event) -{ - wxString fileName (theApp->getDocManager()->GetHistoryFile(event.GetId() - wxID_FILE1)); - if (fileName != "") - theApp->getDocManager()->CreateDocument(fileName, wxDOC_SILENT); -} -#endif void MainFrame::DoWindowMenu (int iMenuPosition, wxCommandEvent& event) @@ -997,15 +982,14 @@ MainFrame::OnImport (wxCommandEvent& WXUNUSED(event) ) ImageFileDocument* pIFDoc = theApp->newImageDoc(); ImageFile* pIF = dicomImport.getImageFile(); pIFDoc->setImageFile (pIF); - pIFDoc->getView()->getFrame()->Show(true); std::ostringstream os; os << "Import file " << strFilename.c_str() << " (type " << strFormatName.c_str() << ")"; pIF->labelAdd (os.str().c_str()); if (theApp->getAskDeleteNewDocs()) pIFDoc->Modify (true); pIFDoc->UpdateAllViews(); - pIFDoc->GetFirstView()->OnUpdate (NULL, NULL); - pIFDoc->getView()->getFrame()->Show(true); + pIFDoc->getView()->setInitialClientSize(); + pIFDoc->Activate(); } else if (dicomImport.testProjections()) { ProjectionFileDocument* pProjDoc = theApp->newProjectionDoc(); Projections* pProj = dicomImport.getProjections(); @@ -1017,8 +1001,8 @@ MainFrame::OnImport (wxCommandEvent& WXUNUSED(event) ) if (theApp->getAskDeleteNewDocs()) pProjDoc->Modify (true); pProjDoc->UpdateAllViews(); - pProjDoc->GetFirstView()->OnUpdate (NULL, NULL); - pProjDoc->getView()->getFrame()->Show(true); + pProjDoc->getView()->setInitialClientSize(); + pProjDoc->Activate(); } else ::wxMessageBox ("Unrecognized DICOM file contents", "Import Error"); } @@ -1034,9 +1018,24 @@ MainFrame::OnAbout(wxCommandEvent& WXUNUSED(event) ) { long lFreeMem = ::wxGetFreeMemory() / (1024L * 1024L); wxString strOSDesc = ::wxGetOsDescription(); - *theApp->getLog() << "Operation System: " << strOSDesc; + *theApp->getLog() << "Operating System: " << strOSDesc; if (lFreeMem > 0) *theApp->getLog() << ", Free Memory: " << lFreeMem << " MB"; + *theApp->getLog() << ", wxWindows: " << wxVERSION_STRING; +#ifdef __TIMESTAMP__ + *theApp->getLog() << ", Build Date: " << __TIMESTAMP__; +#endif +#if defined(DEBUG) + *theApp->getLog() << ", CTSim Debug version" << "\n"; +#else + *theApp->getLog() << ", CTSim Release version" << "\n"; +#endif +#ifdef CTSIMVERSION + *theApp->getLog() << "Version "; + *theApp->getLog() << CTSIMVERSION; +#elif defined(VERSION) + *theApp->getLog() << "Version: " << VERSION; +#endif *theApp->getLog() << "\n"; wxBitmap bmp (splash); @@ -1055,28 +1054,36 @@ MainFrame::OnAbout(wxCommandEvent& WXUNUSED(event) ) msg += "Author: Kevin Rosenberg \nUsage: ctsim [files-to-open..] [--help]"; wxMessageBox(msg, "About CTSim", wxOK | wxICON_INFORMATION, this); + *theApp->getLog() << msg << "\n"; } } +#if 0 +ProjectionFileDocument* +CTSimApp::newProjectionDoc() +{ + ProjectionFileDocument* newDoc = dynamic_cast + (m_pDocTemplProjection->CreateDocument ("")); + if (newDoc) { + newDoc->SetDocumentName (m_pDocTemplProjection->GetDocumentName()); + newDoc->SetDocumentTemplate (m_pDocTemplProjection); + newDoc->OnNewDocument(); + } + + return newDoc; +} +#endif ProjectionFileDocument* CTSimApp::newProjectionDoc() { ProjectionFileDocument* newDoc = dynamic_cast(m_pDocTemplProjection->CreateDocument ("")); if (newDoc) { - ProjectionFileView* pView = newDoc->getView(); - if (pView) { - wxFrame* pFrame = pView->getFrame(); - if (pFrame) { - pFrame->SetSize (0,0); - pFrame->Show (false); - } - } newDoc->SetDocumentName (m_pDocTemplProjection->GetDocumentName()); newDoc->SetDocumentTemplate (m_pDocTemplProjection); newDoc->OnNewDocument(); } - + return newDoc; } @@ -1085,19 +1092,11 @@ CTSimApp::newImageDoc() { ImageFileDocument* newDoc = dynamic_cast(m_pDocTemplImage->CreateDocument ("")); if (newDoc) { - ImageFileView* pView = newDoc->getView(); - if (pView) { - wxFrame* pFrame = pView->getFrame(); - if (pFrame) { - pFrame->SetSize (0,0); - pFrame->Show (false); - } - } newDoc->SetDocumentName (m_pDocTemplImage->GetDocumentName()); newDoc->SetDocumentTemplate (m_pDocTemplImage); newDoc->OnNewDocument(); } - + return newDoc; } @@ -1106,16 +1105,6 @@ CTSimApp::newPlotDoc() { PlotFileDocument* newDoc = dynamic_cast(m_pDocTemplPlot->CreateDocument ("")); if (newDoc) { - PlotFileView* pView = newDoc->getView(); - if (pView) { - wxFrame* pFrame = pView->getFrame(); - if (pFrame) { - wxSize size; - m_pFrame->GetClientSize (&size.x, &size.y); - pFrame->SetSize (size.x / 2, size.y / 2); - pFrame->Show (false); - } - } newDoc->SetDocumentName (m_pDocTemplPlot->GetDocumentName()); newDoc->SetDocumentTemplate (m_pDocTemplPlot); newDoc->OnNewDocument(); @@ -1133,16 +1122,6 @@ CTSimApp::newTextDoc() TextFileDocument* newDoc = dynamic_cast(m_pDocTemplText->CreateDocument ("")); if (newDoc) { - TextFileView* pView = newDoc->getView(); - if (pView) { - wxFrame* pFrame = pView->getFrame(); - if (pFrame) { - wxSize size; - m_pFrame->GetClientSize (&size.x, &size.y);; - pFrame->SetSize (size.x / 2, size.y / 2); - pFrame->Show (false); - } - } newDoc->SetDocumentName (m_pDocTemplText->GetDocumentName()); newDoc->SetDocumentTemplate (m_pDocTemplText); newDoc->OnNewDocument(); @@ -1157,12 +1136,6 @@ CTSimApp::newPhantomDoc() { PhantomFileDocument* newDoc = dynamic_cast(m_pDocTemplPhantom->CreateDocument ("")); if (newDoc) { - PhantomFileView* pView = newDoc->getView(); - if (pView) { - wxFrame* pFrame = pView->getFrame(); - if (pFrame) - pFrame->SetSize (0,0); - } newDoc->SetDocumentName (m_pDocTemplPhantom->GetDocumentName()); newDoc->SetDocumentTemplate (m_pDocTemplPhantom); newDoc->OnNewDocument(); @@ -1171,19 +1144,13 @@ CTSimApp::newPhantomDoc() return newDoc; } -#if wxUSE_GLCANVAS +#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();