/*****************************************************************************
** FILE IDENTIFICATION
**
-** Name: ctsim.h
-** Purpose: Header file for top-level routines of CTSim program
+** Name: ctsim.cpp
+** Purpose: Top-level routines of CTSim program
** Programmer: Kevin Rosenberg
** Date Started: July 2000
**
** This is part of the CTSim program
** Copyright (C) 1983-2000 Kevin Rosenberg
**
-** $Id: ctsim.cpp,v 1.5 2000/07/15 08:36:13 kevin Exp $
+** $Id: ctsim.cpp,v 1.9 2000/07/23 01:49:03 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
#endif
#include "wx/docview.h"
-#include "ct.h"
#include "ctsim.h"
#include "docs.h"
#include "views.h"
+#include "dialogs.h"
+#include "ctsupport.h"
+#if defined(HAVE_CONFIG_H)
+#include "config.h"
+#endif
+#if defined(HAVE_GETOPT_H) || defined(HAVE_GETOPT_LONG)
+#include <getopt.h>
+#endif
+
+static const char* rcsindent = "$Id";
class CTSimApp* theApp = NULL;
struct option CTSimApp::ctsimOptions[] =
{
{"help", 0, 0, O_HELP},
+ {"version", 0, 0, O_VERSION},
{0, 0, 0, 0}
};
break;
switch (c) {
+ case O_VERSION:
+ cout << rcsindent << endl;
+ exit(0);
case O_HELP:
case '?':
usage (argv[0]);
//// Make a menubar
wxMenu *file_menu = new wxMenu;
- file_menu->Append(MAINMENU_FILE_CREATE_PHANTOM, "&Create Phantom...");
+ file_menu->Append(MAINMENU_FILE_CREATE_PHANTOM, "Cr&eate Phantom...");
file_menu->Append(wxID_OPEN, "&Open...");
file_menu->AppendSeparator();
cout << "usage: " << fileBasename(program) << " [files-to-open...] [OPTIONS]\n";
cout << "Computed Tomography Simulator (Graphical Shell)\n";
cout << "\n";
+ cout << " --version Display version\n";
cout << " --help Display this help message\n";
}
CTSimApp::OnExit(void)
{
delete m_docManager;
+#ifdef HAVE_DMALLOC
+ dmalloc_shutdown();
+#endif
return 0;
}
void
MainFrame::OnCreatePhantom(wxCommandEvent& WXUNUSED(event))
{
- wxString choiceStringList [5];
- choiceStringList[0] = Phantom::PHM_HERMAN_STR;
- choiceStringList[1] = Phantom::PHM_BHERMAN_STR;
- choiceStringList[2] = Phantom::PHM_ROWLAND_STR;;
- choiceStringList[3] = Phantom::PHM_BROWLAND_STR;
- choiceStringList[4] = Phantom::PHM_UNITPULSE_STR;
- wxString choiceTitleList [5];
- choiceTitleList[0] = "Herman Head";
- choiceTitleList[1] = "Herman Head Bordered";
- choiceTitleList[2] = "Rowland Head";
- choiceTitleList[3] = "Rowland Head Bordered";
- choiceTitleList[4] = "Unit Pulse";
- wxSingleChoiceDialog dialog (this, "Select phantom", "Phantom Selection", 5, choiceTitleList, NULL, wxOK|wxCANCEL|wxCENTRE);
-
- int dialogReturn = dialog.ShowModal();
+ DialogGetPhantom dialogPhantom (this, Phantom::PHM_HERMAN);
+ int dialogReturn = dialogPhantom.ShowModal();
if (dialogReturn == wxID_OK) {
- int selection = dialog.GetSelection();
- *theApp->getLog() << "Selected phantom " << selection << "\n";
- wxString filename = choiceStringList[selection] + ".phm";
- theApp->getDocManager()->CreateDocument(filename, wxDOC_SILENT);
+ wxString selection (dialogPhantom.getPhantom());
+ *theApp->getLog() << "Selected phantom " << selection.c_str() << "\n";
+ wxString filename = selection + ".phm";
+ theApp->getDocManager()->CreateDocument(filename, wxDOC_SILENT);
}
}