X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=blobdiff_plain;f=src%2Fctsim.cpp;h=b128641a90be1fa3bffc42bc206995b4af14ec2e;hp=cdb4cafb6e945a419749ddcf97a52e7876bb38a6;hb=c551b53b39a7571cf52831f5e117be1cca95c420;hpb=98f894fe74f1a532f5e6d69cca0404d9a58893e7 diff --git a/src/ctsim.cpp b/src/ctsim.cpp index cdb4caf..b128641 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.12 2000/09/07 01:28:33 kevin Exp $ +** $Id: ctsim.cpp,v 1.20 2000/12/22 04:18:00 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 @@ -24,36 +24,44 @@ ** along with this program; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ - -// For compilers that support precompilation, includes "wx/wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -#if !wxUSE_DOC_VIEW_ARCHITECTURE -#error You must set wxUSE_DOC_VIEW_ARCHITECTURE to 1 in setup.h! -#endif - -#include "wx/docview.h" + + +// For compilers that support precompilation, includes "wx/wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ +#pragma hdrstop +#endif + +#ifndef WX_PRECOMP +#include "wx/wx.h" +#endif + +#if !wxUSE_DOC_VIEW_ARCHITECTURE +#error You must set wxUSE_DOC_VIEW_ARCHITECTURE to 1 in setup.h! +#endif + +#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 +#endif + #if defined(HAVE_GETOPT_H) || defined(HAVE_GETOPT_LONG) -#include +#ifdef MSVC +#define __STDC__ 1 +#endif +#include "getopt.h" +#ifdef MSVC +#undef __STDC__ #endif - -static const char* rcsindent = "$Id: ctsim.cpp,v 1.12 2000/09/07 01:28:33 kevin Exp $"; +#endif + +static const char* rcsindent = "$Id: ctsim.cpp,v 1.20 2000/12/22 04:18:00 kevin Exp $"; class CTSimApp* theApp = NULL; @@ -95,7 +103,12 @@ CTSimApp::OnInit() switch (c) { case O_VERSION: - cout << rcsindent << endl; + std::cout << rcsindent << std::endl; +#ifdef CTSIMVERSION + std::cout << "Version: CTSIMVERSION" << std::endl; +#elif defined(VERSION) + std::cout << "Version: VERSION" << std::endl; +#endif exit(0); case O_HELP: case '?': @@ -115,6 +128,8 @@ CTSimApp::OnInit() new wxDocTemplate (m_docManager, "PhantomFile", "*.phm", "", "phm", "Phantom doc", "Phantom View", CLASSINFO(PhantomDocument), CLASSINFO(PhantomView)); + new wxDocTemplate (m_docManager, "PlotFile", "*.plt", "", "plt", "Plot doc", "Plot View", CLASSINFO(PlotFileDocument), CLASSINFO(PlotFileView)); + //// Create the main frame window m_pFrame = new MainFrame(m_docManager, (wxFrame *) NULL, -1, "CTSim", wxPoint(0, 0), wxSize(500, 400), wxDEFAULT_FRAME_STYLE); @@ -134,11 +149,11 @@ CTSimApp::OnInit() void CTSimApp::usage(const char* program) { - 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"; + std::cout << "usage: " << fileBasename(program) << " [files-to-open...] [OPTIONS]\n"; + std::cout << "Computed Tomography Simulator (Graphical Shell)\n"; + std::cout << "\n"; + std::cout << " --version Display version\n"; + std::cout << " --help Display this help message\n"; } int @@ -242,8 +257,18 @@ MainFrame::MainFrame(wxDocManager *manager, wxFrame *frame, wxWindowID id, const void MainFrame::OnAbout(wxCommandEvent& WXUNUSED(event) ) -{ - wxMessageBox("CTSim\nThe Open Source Computed Tomography Simulator\nAuthor: Kevin Rosenberg \nUsage: ctsim [files-to-open..] [--help]", "About CTSim", wxOK | wxICON_INFORMATION, this); +{ + wxString msg = "CTSim\nThe Open Source Computed Tomography Simulator\n"; +#ifdef CTSIMVERSION + msg += "Version "; + msg += CTSIMVERSION; + msg += "\n\n"; +#elif defined(VERSION) + msg << "Version: " << VERSION << "\n\n"; +#endif + msg += "Author: Kevin Rosenberg \nUsage: ctsim [files-to-open..] [--help]"; + + wxMessageBox(msg, "About CTSim", wxOK | wxICON_INFORMATION, this); } void @@ -260,6 +285,27 @@ MainFrame::OnCreatePhantom(wxCommandEvent& WXUNUSED(event)) } +void +CTSimApp::getCompatibleImages (const ImageFileDocument* pIFDoc, std::vector& vecIF) +{ + const ImageFile& rIF = pIFDoc->getImageFile(); + int nx = rIF.nx(); + int ny = rIF.ny(); + wxList& rListDocs = m_docManager->GetDocuments(); + std::vector vecFilename; + for (wxNode* pNode = rListDocs.GetFirst(); pNode != NULL; pNode = pNode->GetNext()) { + wxDocument* pDoc = reinterpret_cast(pNode->GetData()); + ImageFileDocument* pIFCompareDoc = dynamic_cast(pDoc); + if (pIFCompareDoc && (pIFDoc != pIFCompareDoc)) { + const ImageFile& rCompareIF = pIFCompareDoc->getImageFile(); + if (rCompareIF.nx() == nx && rCompareIF.ny() == ny) { + std::string strFilename = pDoc->GetFilename(); + vecIF.push_back (pIFCompareDoc); + } + } + } +} + void MainFrame::OnHelpContents(wxCommandEvent& WXUNUSED(event) ) { @@ -281,7 +327,7 @@ MainFrame::OnUpdateUI (wxUpdateUIEvent& rEvent) while (iPos < MAX_WINDOW_MENUITEMS && pNode != NULL) { wxDocument* pDoc = static_cast(pNode->GetData()); wxString strFilename = pDoc->GetFilename(); - m_apWindowMenuItems[iPos]->SetName (strFilename); + static_cast(m_apWindowMenuItems[iPos])->SetName (strFilename); m_apWindowMenuData[iPos] = pDoc; m_pWindowMenu->Enable (MAINMENU_WINDOW_BASE+iPos, true); iPos++; @@ -289,7 +335,7 @@ MainFrame::OnUpdateUI (wxUpdateUIEvent& rEvent) } for (int i = iPos; i < MAX_WINDOW_MENUITEMS; i++) { m_pWindowMenu->Enable (MAINMENU_WINDOW_BASE+i, false); - m_apWindowMenuItems[i]->SetName (wxString("")); + static_cast(m_apWindowMenuItems[i])->SetName (wxString("")); m_apWindowMenuData[i] = NULL; }