X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=blobdiff_plain;f=src%2Fctsim.cpp;h=b3ce9e2d745c53d42af262b9233746f5eba1a8e5;hp=7f5193b520dfb931e643a4832a3895a21d24b9b9;hb=8a7697ce57b56cdc43698cd1241ad98d49f9b5ac;hpb=21a3eb69ff13b601703cfdcca278a3f60e949737 diff --git a/src/ctsim.cpp b/src/ctsim.cpp index 7f5193b..b3ce9e2 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.107 2002/05/03 09:57:41 kevin Exp $ +** $Id$ ** ** 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 @@ -46,7 +46,6 @@ #error You must set wxUSE_DOC_VIEW_ARCHITECTURE to 1 in setup.h! #endif - #include "ct.h" #include "ctndicom.h" #include "ctsim.h" @@ -70,7 +69,7 @@ #endif #endif -static const char* rcsindent = "$Id: ctsim.cpp,v 1.107 2002/05/03 09:57:41 kevin Exp $"; +static const char* rcsindent = "$Id$"; struct option CTSimApp::ctsimOptions[] = { @@ -111,17 +110,21 @@ CTSimApp::OnInit() bool bPrintFiles = false; // process options while (1) { +#ifdef __WXMAC__ + int c = -1; +#else int c = getopt_long (argc, argv, "", ctsimOptions, NULL); +#endif if (c == -1) break; switch (c) { case O_VERSION: std::cout << rcsindent << std::endl; -#ifdef CTSIMVERSION - std::cout << "Version: CTSIMVERSION" << std::endl; -#elif defined(VERSION) - std::cout << "Version: VERSION" << std::endl; +#ifdef VERSION + std::cout << "Version: " << VERSION << std::endl; +#elif defined(CTSIMVERSION) + std::cout << "Version: " << CTSIMVERSION << std::endl; #endif exit(0); case O_HELP: @@ -164,7 +167,7 @@ CTSimApp::OnInit() #ifdef CTSIM_MDI wxSize(nearest(xDisplay * .75), nearest(yDisplay * .75)), #else - wxSize(nearest(xDisplay * .25), nearest(yDisplay * .25)), + wxSize(nearest(xDisplay * .6), nearest(yDisplay * .4)), #endif wxDEFAULT_FRAME_STYLE); @@ -186,7 +189,7 @@ CTSimApp::OnInit() int xSize, ySize; m_pFrame->GetClientSize(&xSize, &ySize); int yLogSize = ySize / 4; - m_pLogDoc->getView()->getFrame()->SetClientSize (0, ySize - yLogSize, xSize, yLogSize); + m_pLogDoc->getView()->getFrame()->SetSize (0, ySize - yLogSize, xSize, yLogSize); m_pLogDoc->getView()->getFrame()->Show (true); } else #else @@ -201,9 +204,16 @@ CTSimApp::OnInit() if (! m_pFrame->getWinHelpController().Initialize(helpDir + "/ctsim")) *m_pLog << "Cannot initialize the Windows Help system" << "\n"; #else - if (! m_pFrame->getHtmlHelpController().Initialize("/usr/share/ctsim/ctsim") && - ! m_pFrame->getHtmlHelpController().Initialize("/usr/local/share/ctsim/ctsim")) - *m_pLog << "Cannot initialize the HTML Help system" << "\n"; +#ifdef DATADIR + wxString docDir (DATADIR); +#else + wxString docDir (::wxGetCwd()); +#endif + wxString docFile = docDir + "ctsim.htb"; + if (! m_pFrame->getHtmlHelpController().AddBook(docFile) && + ! m_pFrame->getHtmlHelpController().AddBook("/usr/share/ctsim/ctsim.htb") && + ! m_pFrame->getHtmlHelpController().AddBook("/tmp/ctsim.htb")) + *m_pLog << "Cannot initialize the HTML Help system" << "\n"; else { if (::wxDirExists ("/tmp")) m_pFrame->getHtmlHelpController().SetTempDir(_T("/tmp")); @@ -670,7 +680,7 @@ MainFrame::OnHelpButton (wxCommandEvent& event) void MainFrame::OnHelpSecondary (wxCommandEvent& event) { - m_htmlHelp.DisplayContents(); + m_htmlHelp.Display ("Contents"); } #endif @@ -683,11 +693,10 @@ MainFrame::showHelp (int commandID) #ifdef CTSIM_WINHELP m_winHelp.DisplayContents (); #else - m_htmlHelp.DisplayContents (); + m_htmlHelp.Display ("Contents"); #endif break; - - + default: #ifdef CTSIM_WINHELP m_winHelp.DisplaySection (commandID); @@ -740,9 +749,9 @@ MainFrame::DoWindowMenu (int iMenuPosition, wxCommandEvent& event) wxString strFilename = pDoc->GetFilename(); const wxView* pView = pDoc->GetFirstView(); if (pView) { - wxFrame* pFrame = pView->GetFrame(); - pFrame->SetFocus(); - pFrame->Raise(); + wxWindow* pWindow = pView->GetFrame(); + pWindow->SetFocus(); + pWindow->Raise(); } } } @@ -980,15 +989,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(); @@ -1000,8 +1008,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"); } @@ -1015,21 +1023,22 @@ MainFrame::OnImport (wxCommandEvent& WXUNUSED(event) ) void MainFrame::OnAbout(wxCommandEvent& WXUNUSED(event) ) { - long lFreeMem = ::wxGetFreeMemory() / (1024L * 1024L); wxString strOSDesc = ::wxGetOsDescription(); *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"; + *theApp->getLog() << ", Debug version"; #else - *theApp->getLog() << ", CTSim Release version"; + *theApp->getLog() << ", Release version"; +#endif +#ifdef VERSION + *theApp->getLog() << " " << VERSION; +#elif defined(CTSIMVERSION) + *theApp->getLog() << " " << CTSIMVERSION; #endif - *theApp->getLog() << "\n"; wxBitmap bmp (splash); @@ -1038,12 +1047,10 @@ MainFrame::OnAbout(wxCommandEvent& WXUNUSED(event) ) dlg.ShowModal(); } else { wxString msg = "CTSim\nThe Open Source Computed Tomography Simulator\n"; -#ifdef CTSIMVERSION - msg += "Version "; - msg += CTSIMVERSION; - msg += "\n\n"; -#elif defined(VERSION) +#ifdef VERSION msg << "Version: " << VERSION << "\n\n"; +#elif defined(CTSIMVERSION) + msg << "Version: " << CTSIMVERSION << "\n\n"; #endif msg += "Author: Kevin Rosenberg \nUsage: ctsim [files-to-open..] [--help]"; @@ -1053,17 +1060,18 @@ MainFrame::OnAbout(wxCommandEvent& WXUNUSED(event) ) } +// Create new documents + ProjectionFileDocument* CTSimApp::newProjectionDoc() { ProjectionFileDocument* newDoc = dynamic_cast(m_pDocTemplProjection->CreateDocument ("")); if (newDoc) { - ProjectionFileView* pView = newDoc->getView(); newDoc->SetDocumentName (m_pDocTemplProjection->GetDocumentName()); newDoc->SetDocumentTemplate (m_pDocTemplProjection); newDoc->OnNewDocument(); } - + return newDoc; } @@ -1076,7 +1084,7 @@ CTSimApp::newImageDoc() newDoc->SetDocumentTemplate (m_pDocTemplImage); newDoc->OnNewDocument(); } - + return newDoc; } @@ -1124,8 +1132,8 @@ CTSimApp::newPhantomDoc() return newDoc; } -#if wxUSE_GLCANVAS +#if wxUSE_GLCANVAS Graph3dFileDocument* CTSimApp::newGraph3dDoc() {