** This is part of the CTSim program
** Copyright (c) 1983-2001 Kevin Rosenberg
**
-** $Id: ctsim.cpp,v 1.109 2002/05/05 09:51:23 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
#error You must set wxUSE_DOC_VIEW_ARCHITECTURE to 1 in setup.h!
#endif
-
#include "ct.h"
#include "ctndicom.h"
#include "ctsim.h"
#endif
#endif
-static const char* rcsindent = "$Id: ctsim.cpp,v 1.109 2002/05/05 09:51:23 kevin Exp $";
+static const char* rcsindent = "$Id$";
struct option CTSimApp::ctsimOptions[] =
{
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:
#ifdef CTSIM_MDI
wxSize(nearest<int>(xDisplay * .75), nearest<int>(yDisplay * .75)),
#else
- wxSize(nearest<int>(xDisplay * .25), nearest<int>(yDisplay * .25)),
+ wxSize(nearest<int>(xDisplay * .6), nearest<int>(yDisplay * .4)),
#endif
wxDEFAULT_FRAME_STYLE);
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
if (! m_pFrame->getWinHelpController().Initialize(helpDir + "/ctsim"))
*m_pLog << "Cannot initialize the Windows Help system" << "\n";
#else
+#ifdef DATADIR
wxString docDir (DATADIR);
+#else
+ wxString docDir (::wxGetCwd());
+#endif
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";
+ ! 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"));
m_htmlHelp.Display ("Contents");
#endif
break;
-
-
+
default:
#ifdef CTSIM_WINHELP
m_winHelp.DisplaySection (commandID);
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();
}
}
}
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();
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");
}
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);
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 <kevin@rosenberg.net>\nUsage: ctsim [files-to-open..] [--help]";
}
+// Create new documents
+
ProjectionFileDocument*
CTSimApp::newProjectionDoc()
{
newDoc->SetDocumentTemplate (m_pDocTemplProjection);
newDoc->OnNewDocument();
}
-
+
return newDoc;
}
newDoc->SetDocumentTemplate (m_pDocTemplImage);
newDoc->OnNewDocument();
}
-
+
return newDoc;
}
return newDoc;
}
-#if wxUSE_GLCANVAS
+#if wxUSE_GLCANVAS
Graph3dFileDocument*
CTSimApp::newGraph3dDoc()
{