From 776659087144bc4d9b12ad8eda88cb2bd94d4d94 Mon Sep 17 00:00:00 2001 From: "Kevin M. Rosenberg" Date: Mon, 29 Jan 2001 00:42:26 +0000 Subject: [PATCH] r467: no message --- msvc/ctsim/ctsim.plg | 95 ++++- src/ctsim.cpp | 888 +++++++++++++++++++++---------------------- src/ctsim.h | 4 +- 3 files changed, 534 insertions(+), 453 deletions(-) diff --git a/msvc/ctsim/ctsim.plg b/msvc/ctsim/ctsim.plg index 498754a..7165ee2 100644 --- a/msvc/ctsim/ctsim.plg +++ b/msvc/ctsim/ctsim.plg @@ -3,16 +3,97 @@
 

Build Log

+--------------------Configuration: libctsim - Win32 Debug-------------------- +

+

Command Lines

+Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP14A2.tmp" with contents +[ +/nologo /G6 /MTd /W3 /Gm /GR /GX /Zi /Od /I "..\..\..\zlib" /I "..\..\INCLUDE" /I "..\..\getopt" /I "..\..\..\lpng108" /I "..\..\..\fftw-2.1.3\fftw" /I "..\..\..\fftw-2.1.3\rfftw" /I "..\..\..\wx2\include" /D "_DEBUG" /D "HAVE_WXWIN" /D "HAVE_STRING_H" /D "HAVE_GETOPT_H" /D "WIN32" /D "_MBCS" /D "_LIB" /D "MSVC" /D "HAVE_FFTW" /D "HAVE_PNG" /D "HAVE_SGP" /D "HAVE_WXWINDOWS" /D "__WXMSW__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /FR"Debug/" /Fp"Debug/libctsim.pch" /YX /Fo"Debug/" /Fd"Debug/" /FD /GZ /c +"D:\ctsim\libctgraphics\dlgezplot.cpp" +"D:\ctsim\libctsim\globalvars.cpp" +"D:\ctsim\libctsupport\syserror.cpp" +] +Creating command line "cl.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP14A2.tmp" +Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP14A3.tmp" with contents +[ +/nologo /out:"Debug\libctsim.lib" +.\Debug\array2dfile.obj +.\Debug\backprojectors.obj +.\Debug\clip.obj +.\Debug\consoleio.obj +.\Debug\dlgezplot.obj +.\Debug\ezplot.obj +.\Debug\ezset.obj +.\Debug\ezsupport.obj +.\Debug\filter.obj +.\Debug\fnetorderstream.obj +.\Debug\fourier.obj +.\Debug\getopt.obj +.\Debug\getopt1.obj +.\Debug\globalvars.obj +.\Debug\hashtable.obj +.\Debug\imagefile.obj +.\Debug\mathfuncs.obj +.\Debug\phantom.obj +.\Debug\plotfile.obj +.\Debug\pol.obj +.\Debug\procsignal.obj +.\Debug\projections.obj +.\Debug\reconstruct.obj +.\Debug\scanner.obj +.\Debug\sgp.obj +.\Debug\strfuncs.obj +.\Debug\syserror.obj +.\Debug\trace.obj +.\Debug\transformmatrix.obj +.\Debug\xform.obj +] +Creating command line "link.exe -lib @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP14A3.tmp" +

Output Window

+Compiling... +dlgezplot.cpp +Skipping... (no relevant changes detected) +globalvars.cpp +syserror.cpp +Creating library... +

+--------------------Configuration: FFTW2st - Win32 Debug-------------------- +

+

Command Lines

+

+--------------------Configuration: zlib - Win32 DLL-------------------- +

+

Command Lines

+

+--------------------Configuration: libpng - Win32 DLL-------------------- +

+

Command Lines

+

+--------------------Configuration: RFFTW2st - Win32 Debug-------------------- +

+

Command Lines

+

+--------------------Configuration: wxvc - Win32 Debug-------------------- +

+

Command Lines

+

+--------------------Configuration: xpm - Win32 Debug-------------------- +

+

Command Lines

+

--------------------Configuration: ctsim - Win32 Debug--------------------

Command Lines

-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP5F7.tmp" with contents +Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP14A4.tmp" with contents [ /nologo /G6 /MTd /W3 /Gm /GR /GX /Zi /Od /I "\wx2\include" /I "." /I "..\..\include" /I "..\..\getopt" /I "..\..\..\lpng108" /I "..\..\..\zlib" /I "..\..\..\fftw-2.1.3\fftw" /I "..\..\..\fftw-2.1.3\rfftw" /D VERSION=\"2.5.0\" /D "_DEBUG" /D "__WXMSW__" /D "HAVE_SGP" /D "HAVE_PNG" /D "HAVE_WXWINDOWS" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "HAVE_STRING_H" /D "HAVE_FFTW" /D "HAVE_RFFTW" /D "HAVE_GETOPT_H" /D "MSVC" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /D CTSIMVERSION=\"3.0.0alpha5\" /FR"Debug/" /Fp"Debug/ctsim.pch" /YX /Fo"Debug/" /Fd"Debug/" /FD /GZ /c -"C:\ctsim\src\views.cpp" +"D:\ctsim\src\ctsim.cpp" +"D:\ctsim\src\dialogs.cpp" +"D:\ctsim\src\docs.cpp" +"D:\ctsim\src\views.cpp" ] -Creating command line "cl.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP5F7.tmp" -Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP5F8.tmp" with contents +Creating command line "cl.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP14A4.tmp" +Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP14A5.tmp" with contents [ comctl32.lib winmm.lib rpcrt4.lib ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ../libctsim/Debug/libctsim.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ..\..\..\lpng108\msvc\win32\libpng\lib_dbg\libpng.lib ..\..\..\lpng108\msvc\win32\zlib\lib_dbg\zlib.lib libcmtd.lib ..\..\..\fftw-2.1.3\Win32\FFTW2st\Debug\FFTW2st.lib ..\..\..\fftw-2.1.3\Win32\RFFTW2st\Debug\RFFTW2st.lib ../../../wx2/lib/wxd.lib xpmd.lib /nologo /subsystem:windows /incremental:yes /pdb:"Debug/ctsim.pdb" /debug /machine:I386 /out:"Debug/ctsim.exe" /pdbtype:sept /libpath:"..\..\..\lpng108\msvc\win32\libpng\lib" /libpath:"..\..\..\lpng108\msvc\win32\zlib\lib" /libpath:"..\..\..\wx2\lib" .\Debug\ctsim.obj @@ -28,10 +109,14 @@ comctl32.lib winmm.lib rpcrt4.lib ws2_32.lib kernel32.lib user32.lib gdi32.lib w \wx2\lib\wxd.lib \wx2\lib\xpmd.lib ] -Creating command line "link.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP5F8.tmp" +Creating command line "link.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP14A5.tmp"

Output Window

Compiling... +ctsim.cpp views.cpp +Skipping... (no relevant changes detected) +dialogs.cpp +docs.cpp Linking... diff --git a/src/ctsim.cpp b/src/ctsim.cpp index d24d979..87aec7e 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.56 2001/01/28 22:45:54 kevin Exp $ +** $Id: ctsim.cpp,v 1.57 2001/01/29 00:42:26 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,21 +70,21 @@ #endif #endif -static const char* rcsindent = "$Id: ctsim.cpp,v 1.56 2001/01/28 22:45:54 kevin Exp $"; +static const char* rcsindent = "$Id: ctsim.cpp,v 1.57 2001/01/29 00:42:26 kevin Exp $"; struct option CTSimApp::ctsimOptions[] = { - {"help", 0, 0, O_HELP}, - {"version", 0, 0, O_VERSION}, - {0, 0, 0, 0} + {"help", 0, 0, O_HELP}, + {"version", 0, 0, O_VERSION}, + {0, 0, 0, 0} }; IMPLEMENT_APP(CTSimApp) CTSimApp::CTSimApp() -: m_docManager(NULL), m_pFrame(NULL), m_pLog(0) +: m_docManager(NULL), m_pFrame(NULL), m_pLog(0), m_pLogDoc(0) { - theApp = this; + theApp = this; } #ifdef HAVE_SYS_TIME_H @@ -99,99 +99,99 @@ bool CTSimApp::OnInit() { #ifdef HAVE_SETPRIORITY - setpriority (PRIO_PROCESS, 0, 15); // set to low scheduling priority -#endif - - m_pConfig = new wxConfig("ctsim"); - wxConfigBase::Set(m_pConfig); - - g_bRunningWXWindows = true; - // process options - while (1) { - int c = getopt_long (argc, argv, "", ctsimOptions, NULL); - if (c == -1) - break; - - switch (c) { - case O_VERSION: - std::cout << rcsindent << std::endl; + setpriority (PRIO_PROCESS, 0, 15); // set to low scheduling priority +#endif + + m_pConfig = new wxConfig("ctsim"); + wxConfigBase::Set(m_pConfig); + + g_bRunningWXWindows = true; + // process options + while (1) { + int c = getopt_long (argc, argv, "", ctsimOptions, NULL); + if (c == -1) + break; + + switch (c) { + 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; -#endif - exit(0); - case O_HELP: - case '?': - usage (argv[0]); - exit (0); - default: - usage (argv[0]); - exit (1); - } - } - - m_docManager = new wxDocManager (wxDEFAULT_DOCMAN_FLAGS, true); - - m_pDocTemplImage = new wxDocTemplate (m_docManager, "ImageFile", "*.if", "", "if", "ImageFile", "ImageView", CLASSINFO(ImageFileDocument), CLASSINFO(ImageFileView)); - m_pDocTemplProjection = new wxDocTemplate (m_docManager, "ProjectionFile", "*.pj", "", "pj", "ProjectionFile", "ProjectionView", CLASSINFO(ProjectionFileDocument), CLASSINFO(ProjectionFileView)); - m_pDocTemplPhantom = new wxDocTemplate (m_docManager, "PhantomFile", "*.phm", "", "phm", "PhantomFile", "PhantomView", CLASSINFO(PhantomFileDocument), CLASSINFO(PhantomFileView)); - m_pDocTemplPlot = new wxDocTemplate (m_docManager, "PlotFile", "*.plt", "", "plt", "PlotFile", "PlotView", CLASSINFO(PlotFileDocument), CLASSINFO(PlotFileView)); - m_pDocTemplText = new wxDocTemplate (m_docManager, "TextFile", "*.txt", "", "txt", "TextFile", "TextView", CLASSINFO(TextFileDocument), CLASSINFO(TextFileView), wxTEMPLATE_INVISIBLE); - + std::cout << "Version: VERSION" << std::endl; +#endif + exit(0); + case O_HELP: + case '?': + usage (argv[0]); + exit (0); + default: + usage (argv[0]); + exit (1); + } + } + + m_docManager = new wxDocManager (wxDEFAULT_DOCMAN_FLAGS, true); + + m_pDocTemplImage = new wxDocTemplate (m_docManager, "ImageFile", "*.if", "", "if", "ImageFile", "ImageView", CLASSINFO(ImageFileDocument), CLASSINFO(ImageFileView)); + m_pDocTemplProjection = new wxDocTemplate (m_docManager, "ProjectionFile", "*.pj", "", "pj", "ProjectionFile", "ProjectionView", CLASSINFO(ProjectionFileDocument), CLASSINFO(ProjectionFileView)); + m_pDocTemplPhantom = new wxDocTemplate (m_docManager, "PhantomFile", "*.phm", "", "phm", "PhantomFile", "PhantomView", CLASSINFO(PhantomFileDocument), CLASSINFO(PhantomFileView)); + m_pDocTemplPlot = new wxDocTemplate (m_docManager, "PlotFile", "*.plt", "", "plt", "PlotFile", "PlotView", CLASSINFO(PlotFileDocument), CLASSINFO(PlotFileView)); + m_pDocTemplText = new wxDocTemplate (m_docManager, "TextFile", "*.txt", "", "txt", "TextFile", "TextView", CLASSINFO(TextFileDocument), CLASSINFO(TextFileView), wxTEMPLATE_INVISIBLE); + #if wxUSE_GIF - wxImage::AddHandler(new wxGIFHandler); // Required for images in the online documentation + wxImage::AddHandler(new wxGIFHandler); // Required for images in the online documentation #endif - + #if wxUSE_STREAMS && wxUSE_ZIPSTREAM && wxUSE_ZLIB - wxFileSystem::AddHandler(new wxZipFSHandler); // Required for advanced HTML help -#endif - - // 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); - - setIconForFrame (m_pFrame); - m_pFrame->Centre(wxBOTH); - m_pFrame->Show(true); - SetTopWindow (m_pFrame); - - for (int i = optind + 1; i <= argc; i++) { - wxString filename = argv [i - 1]; - m_docManager->CreateDocument (filename, wxDOC_SILENT); - } - - if (m_pConfig) - m_docManager->FileHistoryLoad(*m_pConfig); - + wxFileSystem::AddHandler(new wxZipFSHandler); // Required for advanced HTML help +#endif + + // 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); + + setIconForFrame (m_pFrame); + m_pFrame->Centre(wxBOTH); + m_pFrame->Show(true); + SetTopWindow (m_pFrame); + + for (int i = optind + 1; i <= argc; i++) { + wxString filename = argv [i - 1]; + m_docManager->CreateDocument (filename, wxDOC_SILENT); + } + + if (m_pConfig) + m_docManager->FileHistoryLoad(*m_pConfig); + #ifdef CTSIM_MDI - TextFileDocument* pLogDoc = newTextDoc(); - if (pLogDoc) { - m_pLog = pLogDoc->getTextCtrl(); - pLogDoc->SetDocumentName("Log.txt"); - pLogDoc->SetFilename("Log.txt"); - pLogDoc->getView()->getFrame()->SetTitle("Log"); - int xSize, ySize; - m_pFrame->GetClientSize(&xSize, &ySize); - int yLogSize = ySize / 3; - pLogDoc->getView()->getFrame()->SetSize (0, ySize - yLogSize, xSize, yLogSize); - pLogDoc->getView()->getFrame()->Show (true); - } else + m_pLogDoc = newTextDoc(); + if (m_pLogDoc) { + m_pLog = m_pLogDoc->getTextCtrl(); + m_pLogDoc->SetDocumentName("Log.txt"); + m_pLogDoc->SetFilename("Log.txt"); + m_pLogDoc->getView()->getFrame()->SetTitle("Log"); + int xSize, ySize; + m_pFrame->GetClientSize(&xSize, &ySize); + int yLogSize = ySize / 3; + m_pLogDoc->getView()->getFrame()->SetSize (0, ySize - yLogSize, xSize, yLogSize); + m_pLogDoc->getView()->getFrame()->Show (true); + } else #else - m_pLog = new wxTextCtrl (m_pFrame, -1, "Log Window\n", wxPoint(0, 0), wxSize(0,0), wxTE_MULTILINE | wxTE_READONLY); + m_pLog = new wxTextCtrl (m_pFrame, -1, "Log Window\n", wxPoint(0, 0), wxSize(0,0), wxTE_MULTILINE | wxTE_READONLY); #endif - wxLog::SetActiveTarget (new wxLogTextCtrl(m_pLog)); - + wxLog::SetActiveTarget (new wxLogTextCtrl(m_pLog)); + #ifdef CTSIM_WINHELP - if (! m_pFrame->getWinHelpController().Initialize("ctsim")) - *m_pLog << "Cannot initialize the Windows Help system" << "\n"; + if (! m_pFrame->getWinHelpController().Initialize("ctsim")) + *m_pLog << "Cannot initialize the Windows Help system" << "\n"; #endif - if (! m_pFrame->getHtmlHelpController().Initialize(::wxGetCwd() + "/ctsim")) - *m_pLog << "Cannot initialize the HTML Help system" << "\n"; - - return true; + if (! m_pFrame->getHtmlHelpController().Initialize(::wxGetCwd() + "/ctsim")) + *m_pLog << "Cannot initialize the HTML Help system" << "\n"; + + return true; } @@ -199,40 +199,40 @@ CTSimApp::OnInit() void CTSimApp::setIconForFrame(wxFrame* pFrame) { - wxIcon iconApp (ctsim16_xpm); - - if (iconApp.Ok()) - pFrame->SetIcon (iconApp); + wxIcon iconApp (ctsim16_xpm); + + if (iconApp.Ok()) + pFrame->SetIcon (iconApp); } void CTSimApp::usage(const char* program) { - 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"; + 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 CTSimApp::OnExit() { #ifdef HAVE_DMALLOC - dmalloc_shutdown(); + dmalloc_shutdown(); #endif - return 0; + return 0; } wxString CTSimApp::getUntitledFilename() { - static int untitledNumber = 1; - - wxString filename ("Untitled"); - filename << untitledNumber++; - - return (filename); + static int untitledNumber = 1; + + wxString filename ("Untitled"); + filename << untitledNumber++; + + return (filename); } @@ -293,208 +293,202 @@ MainFrame::MainFrame(wxDocManager *manager, wxFrame *frame, wxWindowID id, const : wxDocParentFrame(manager, frame, id, title, pos, size, type, "MainFrame") #endif { - //// Make a menubar - wxMenu *file_menu = new wxMenu; - - file_menu->Append(MAINMENU_FILE_CREATE_PHANTOM, "Cr&eate Phantom...\tCtrl-P"); - file_menu->Append(MAINMENU_FILE_CREATE_FILTER, "Create &Filter...\tCtrl-F"); - file_menu->Append(wxID_OPEN, "&Open...\tCtrl-O"); - - file_menu->AppendSeparator(); - file_menu->Append(MAINMENU_FILE_EXIT, "E&xit"); - - // history of files visited - theApp->getDocManager()->FileHistoryAddFilesToMenu(file_menu); - theApp->getDocManager()->FileHistoryUseMenu(file_menu); - + //// Make a menubar + wxMenu *file_menu = new wxMenu; + + file_menu->Append(MAINMENU_FILE_CREATE_PHANTOM, "Cr&eate Phantom...\tCtrl-P"); + file_menu->Append(MAINMENU_FILE_CREATE_FILTER, "Create &Filter...\tCtrl-F"); + file_menu->Append(wxID_OPEN, "&Open...\tCtrl-O"); + + file_menu->AppendSeparator(); + file_menu->Append(MAINMENU_FILE_EXIT, "E&xit"); + + // history of files visited + theApp->getDocManager()->FileHistoryAddFilesToMenu(file_menu); + theApp->getDocManager()->FileHistoryUseMenu(file_menu); + #ifndef CTSIM_MDI - m_pWindowMenu = new wxMenu; - m_pWindowMenu->UpdateUI (this); + m_pWindowMenu = new wxMenu; + m_pWindowMenu->UpdateUI (this); #endif - - wxMenu* help_menu = new wxMenu; - help_menu->Append(MAINMENU_HELP_CONTENTS, "&Contents\tF1"); - help_menu->Append(MAINMENU_HELP_TOPICS, "&Topics\tCtrl-T"); + + wxMenu* help_menu = new wxMenu; + help_menu->Append(MAINMENU_HELP_CONTENTS, "&Contents\tF1"); + help_menu->Append(MAINMENU_HELP_TOPICS, "&Topics\tCtrl-T"); #if defined(CTSIM_WINHELP) && (defined(DEBUG) || defined(_DEBUG)) - help_menu->Append(MAINMENU_HELP_SECONDARY, "&Secondary Help"); + help_menu->Append(MAINMENU_HELP_SECONDARY, "&Secondary Help"); #endif - help_menu->Append(MAINMENU_HELP_ABOUT, "&About"); - - wxMenuBar* menu_bar = new wxMenuBar; - - menu_bar->Append(file_menu, "&File"); + help_menu->Append(MAINMENU_HELP_ABOUT, "&About"); + + wxMenuBar* menu_bar = new wxMenuBar; + + menu_bar->Append(file_menu, "&File"); #ifndef CTSIM_MDI - menu_bar->Append(m_pWindowMenu, "&Window"); + menu_bar->Append(m_pWindowMenu, "&Window"); #endif - menu_bar->Append(help_menu, "&Help"); - - SetMenuBar(menu_bar); - + menu_bar->Append(help_menu, "&Help"); + + SetMenuBar(menu_bar); + #ifndef CTSIM_MDI - int i; - for (i = 0; i < MAX_WINDOW_MENUITEMS; i++) { - m_apWindowMenuItems[i] = new wxMenuItem (m_pWindowMenu, MAINMENU_WINDOW_BASE+i, wxString("[EMPTY]")); - m_pWindowMenu->Append (m_apWindowMenuItems[i]); - m_pWindowMenu->Enable (MAINMENU_WINDOW_BASE+i, false); - } -#endif - - m_iDefaultPhantomID = Phantom::PHM_HERMAN; - m_iDefaultFilterID = SignalFilter::FILTER_BANDLIMIT; - m_iDefaultFilterDomainID = SignalFilter::DOMAIN_FREQUENCY; - m_iDefaultFilterXSize = 256; - m_iDefaultFilterYSize = 256; - m_dDefaultFilterParam = 1.; - m_dDefaultFilterBandwidth = 1.; - m_dDefaultFilterInputScale = 1.; - m_dDefaultFilterOutputScale = 1.; - - wxAcceleratorEntry accelEntries[15]; - accelEntries[0].Set (wxACCEL_CTRL, static_cast('O'), wxID_OPEN); - accelEntries[1].Set (wxACCEL_CTRL, static_cast('H'), MAINMENU_HELP_TOPICS); - accelEntries[2].Set (wxACCEL_CTRL, static_cast('P'), MAINMENU_FILE_CREATE_PHANTOM); - accelEntries[3].Set (wxACCEL_CTRL, static_cast('F'), MAINMENU_FILE_CREATE_FILTER); + int i; + for (i = 0; i < MAX_WINDOW_MENUITEMS; i++) { + m_apWindowMenuItems[i] = new wxMenuItem (m_pWindowMenu, MAINMENU_WINDOW_BASE+i, wxString("[EMPTY]")); + m_pWindowMenu->Append (m_apWindowMenuItems[i]); + m_pWindowMenu->Enable (MAINMENU_WINDOW_BASE+i, false); + } +#endif + + m_iDefaultPhantomID = Phantom::PHM_HERMAN; + m_iDefaultFilterID = SignalFilter::FILTER_BANDLIMIT; + m_iDefaultFilterDomainID = SignalFilter::DOMAIN_FREQUENCY; + m_iDefaultFilterXSize = 256; + m_iDefaultFilterYSize = 256; + m_dDefaultFilterParam = 1.; + m_dDefaultFilterBandwidth = 1.; + m_dDefaultFilterInputScale = 1.; + m_dDefaultFilterOutputScale = 1.; + + wxAcceleratorEntry accelEntries[15]; + accelEntries[0].Set (wxACCEL_CTRL, static_cast('O'), wxID_OPEN); + accelEntries[1].Set (wxACCEL_CTRL, static_cast('H'), MAINMENU_HELP_TOPICS); + accelEntries[2].Set (wxACCEL_CTRL, static_cast('P'), MAINMENU_FILE_CREATE_PHANTOM); + accelEntries[3].Set (wxACCEL_CTRL, static_cast('F'), MAINMENU_FILE_CREATE_FILTER); #ifndef CTSIM_MDI - accelEntries[4].Set (wxACCEL_NORMAL, WXK_F1, MAINMENU_HELP_CONTENTS); - for (i = 0; i < 10; i++) - accelEntries[i+4].Set (wxACCEL_CTRL, static_cast('0'+i), MAINMENU_WINDOW_BASE+i); - wxAcceleratorTable accelTable (15, accelEntries); + accelEntries[4].Set (wxACCEL_NORMAL, WXK_F1, MAINMENU_HELP_CONTENTS); + for (i = 0; i < 10; i++) + accelEntries[i+4].Set (wxACCEL_CTRL, static_cast('0'+i), MAINMENU_WINDOW_BASE+i); + wxAcceleratorTable accelTable (15, accelEntries); #else - wxAcceleratorTable accelTable (4, accelEntries); + wxAcceleratorTable accelTable (4, accelEntries); #endif - - SetAcceleratorTable (accelTable); + + SetAcceleratorTable (accelTable); } MainFrame::~MainFrame() { - if (theApp->getConfig()) - theApp->getDocManager()->FileHistorySave (*theApp->getConfig()); - delete theApp->getDocManager(); - + if (theApp->getConfig()) + theApp->getDocManager()->FileHistorySave (*theApp->getConfig()); + delete theApp->getDocManager(); + } void MainFrame::OnSize (wxSizeEvent& event) { #ifdef CTSIM_MDI - int xSize, ySize; - wxMDIParentFrame::GetClientSize(&xSize, &ySize); - wxSize sizeClient (xSize, ySize); -#else - wxSize sizeClient = GetClientSize(); -#endif - wxSize sizeLog = sizeClient; - if (sizeClient.y < 100) { - sizeLog.y = 0; - sizeLog.x = 0; - } else { - sizeLog.x = sizeClient.x; - sizeLog.y = 100; - } - sizeClient.x -= sizeLog.x; - sizeClient.y -= sizeLog.y; - // m_pLog->SetSize (0, sizeClient.y, sizeLog.x, sizeLog.y); - // GetClientWindow()->SetSize (0, 0, sizeClient.x, sizeClient.y); - // GetClientWindow()->Refresh(); + int xSize, ySize; + wxMDIParentFrame::GetClientSize(&xSize, &ySize); + + if (theApp->getLogDoc()) { + GetClientSize(&xSize, &ySize); + int yLogSize = ySize / 3; + theApp->getLogDoc()->getView()->getFrame()->SetSize (0, ySize - yLogSize, xSize, yLogSize); + theApp->getLogDoc()->getView()->getFrame()->Show (true); + } + //GetClientWindow()->SetSize (0, 0, sizeClient.x, sizeClient.y); + //GetClientWindow()->Refresh(); +#endif + #if CTSIM_MDI - wxDocMDIParentFrame::OnSize (event); + wxDocMDIParentFrame::OnSize (event); #else - wxDocParentFrame::OnSize (event); + wxDocParentFrame::OnSize (event); #endif } void MainFrame::OnCreatePhantom(wxCommandEvent& event) { - DialogGetPhantom dialogPhantom (this, m_iDefaultPhantomID); - int dialogReturn = dialogPhantom.ShowModal(); - if (dialogReturn == wxID_OK) { - wxString selection (dialogPhantom.getPhantom()); - *theApp->getLog() << "Selected phantom " << selection.c_str() << "\n"; - wxString filename = selection + ".phm"; - m_iDefaultPhantomID = Phantom::convertNameToPhantomID (selection.c_str()); - theApp->getDocManager()->CreateDocument (filename, wxDOC_SILENT); - } - + DialogGetPhantom dialogPhantom (this, m_iDefaultPhantomID); + int dialogReturn = dialogPhantom.ShowModal(); + if (dialogReturn == wxID_OK) { + wxString selection (dialogPhantom.getPhantom()); + *theApp->getLog() << "Selected phantom " << selection.c_str() << "\n"; + wxString filename = selection + ".phm"; + m_iDefaultPhantomID = Phantom::convertNameToPhantomID (selection.c_str()); + theApp->getDocManager()->CreateDocument (filename, wxDOC_SILENT); + } + } void MainFrame::OnCreateFilter (wxCommandEvent& WXUNUSED(event)) { - DialogGetFilterParameters dialogFilter (this, m_iDefaultFilterXSize, m_iDefaultFilterYSize, m_iDefaultFilterID, m_dDefaultFilterParam, m_dDefaultFilterBandwidth, m_iDefaultFilterDomainID, m_dDefaultFilterInputScale, m_dDefaultFilterOutputScale); - int dialogReturn = dialogFilter.ShowModal(); - if (dialogReturn == wxID_OK) { - wxString strFilter (dialogFilter.getFilterName()); - wxString strDomain (dialogFilter.getDomainName()); - m_iDefaultFilterID = SignalFilter::convertFilterNameToID (strFilter.c_str()); - m_iDefaultFilterDomainID = SignalFilter::convertDomainNameToID (strDomain.c_str()); - m_iDefaultFilterXSize = dialogFilter.getXSize(); - m_iDefaultFilterYSize = dialogFilter.getYSize(); - m_dDefaultFilterBandwidth = dialogFilter.getBandwidth(); - m_dDefaultFilterParam= dialogFilter.getFilterParam(); - m_dDefaultFilterInputScale = dialogFilter.getInputScale(); - m_dDefaultFilterOutputScale = dialogFilter.getOutputScale(); - std::ostringstream os; - os << "Generate Filter=" << strFilter.c_str() - << ", size=(" << static_cast(m_iDefaultFilterXSize) << "," << static_cast(m_iDefaultFilterYSize) - << "), domain=" << strDomain.c_str() << ", filterParam=" << m_dDefaultFilterParam << ", bandwidth=" << m_dDefaultFilterBandwidth - << ", inputScale=" << m_dDefaultFilterInputScale << ", outputScale=" << m_dDefaultFilterOutputScale; - *theApp->getLog() << os.str().c_str() << "\n"; - wxString filename = "untitled.if"; - ImageFileDocument* pFilterDoc = theApp->newImageDoc(); - if (! pFilterDoc) { - sys_error (ERR_SEVERE, "Unable to create filter image"); - return; - } - ImageFile& rIF = pFilterDoc->getImageFile(); - rIF.setArraySize (m_iDefaultFilterXSize, m_iDefaultFilterYSize); - rIF.filterResponse (strDomain.c_str(), m_dDefaultFilterBandwidth, strFilter.c_str(), m_dDefaultFilterParam, m_dDefaultFilterInputScale, m_dDefaultFilterOutputScale); - rIF.labelAdd (os.str().c_str()); - if (theApp->getSetModifyNewDocs()) - pFilterDoc->Modify (true); - pFilterDoc->UpdateAllViews(); - pFilterDoc->GetFirstView()->OnUpdate (NULL, NULL); - pFilterDoc->getView()->getFrame()->SetClientSize(m_iDefaultFilterXSize, m_iDefaultFilterYSize); - pFilterDoc->getView()->getFrame()->Show(true); - } + DialogGetFilterParameters dialogFilter (this, m_iDefaultFilterXSize, m_iDefaultFilterYSize, m_iDefaultFilterID, m_dDefaultFilterParam, m_dDefaultFilterBandwidth, m_iDefaultFilterDomainID, m_dDefaultFilterInputScale, m_dDefaultFilterOutputScale); + int dialogReturn = dialogFilter.ShowModal(); + if (dialogReturn == wxID_OK) { + wxString strFilter (dialogFilter.getFilterName()); + wxString strDomain (dialogFilter.getDomainName()); + m_iDefaultFilterID = SignalFilter::convertFilterNameToID (strFilter.c_str()); + m_iDefaultFilterDomainID = SignalFilter::convertDomainNameToID (strDomain.c_str()); + m_iDefaultFilterXSize = dialogFilter.getXSize(); + m_iDefaultFilterYSize = dialogFilter.getYSize(); + m_dDefaultFilterBandwidth = dialogFilter.getBandwidth(); + m_dDefaultFilterParam= dialogFilter.getFilterParam(); + m_dDefaultFilterInputScale = dialogFilter.getInputScale(); + m_dDefaultFilterOutputScale = dialogFilter.getOutputScale(); + std::ostringstream os; + os << "Generate Filter=" << strFilter.c_str() + << ", size=(" << static_cast(m_iDefaultFilterXSize) << "," << static_cast(m_iDefaultFilterYSize) + << "), domain=" << strDomain.c_str() << ", filterParam=" << m_dDefaultFilterParam << ", bandwidth=" << m_dDefaultFilterBandwidth + << ", inputScale=" << m_dDefaultFilterInputScale << ", outputScale=" << m_dDefaultFilterOutputScale; + *theApp->getLog() << os.str().c_str() << "\n"; + wxString filename = "untitled.if"; + ImageFileDocument* pFilterDoc = theApp->newImageDoc(); + if (! pFilterDoc) { + sys_error (ERR_SEVERE, "Unable to create filter image"); + return; + } + ImageFile& rIF = pFilterDoc->getImageFile(); + rIF.setArraySize (m_iDefaultFilterXSize, m_iDefaultFilterYSize); + rIF.filterResponse (strDomain.c_str(), m_dDefaultFilterBandwidth, strFilter.c_str(), m_dDefaultFilterParam, m_dDefaultFilterInputScale, m_dDefaultFilterOutputScale); + rIF.labelAdd (os.str().c_str()); + if (theApp->getSetModifyNewDocs()) + pFilterDoc->Modify (true); + pFilterDoc->UpdateAllViews(); + pFilterDoc->GetFirstView()->OnUpdate (NULL, NULL); + pFilterDoc->getView()->getFrame()->SetClientSize(m_iDefaultFilterXSize, m_iDefaultFilterYSize); + pFilterDoc->getView()->getFrame()->Show(true); + } } void CTSimApp::getCompatibleImages (const ImageFileDocument* pIFDoc, std::vector& vecIF) { - const ImageFile& rIF = pIFDoc->getImageFile(); - unsigned int nx = rIF.nx(); - unsigned int ny = rIF.ny(); - wxList& rListDocs = m_docManager->GetDocuments(); - 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) - vecIF.push_back (pIFCompareDoc); - } - } + const ImageFile& rIF = pIFDoc->getImageFile(); + unsigned int nx = rIF.nx(); + unsigned int ny = rIF.ny(); + wxList& rListDocs = m_docManager->GetDocuments(); + 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) + vecIF.push_back (pIFCompareDoc); + } + } } void MainFrame::OnHelpTopics (wxCommandEvent& event) { - showHelp (event.GetId()); + showHelp (event.GetId()); } void MainFrame::OnHelpContents (wxCommandEvent& event) { - showHelp (event.GetId()); + showHelp (event.GetId()); } #if defined(CTSIM_WINHELP) && (defined(DEBUG) || defined(_DEBUG)) void MainFrame::OnHelpSecondary (wxCommandEvent& event) { - m_htmlHelp.DisplayContents(); + m_htmlHelp.DisplayContents(); } #endif @@ -502,90 +496,90 @@ void MainFrame::showHelp (int commandID) { #ifdef CTSIM_WINHELP - m_winHelp.LoadFile(); + m_winHelp.LoadFile(); #else - m_htmlHelp.LoadFile(); + m_htmlHelp.LoadFile(); #endif - - switch (commandID) { - - case MAINMENU_HELP_CONTENTS: + + switch (commandID) { + + case MAINMENU_HELP_CONTENTS: #ifdef CTSIM_WINHELP - m_winHelp.DisplayContents (); + m_winHelp.DisplayContents (); #else - m_htmlHelp.DisplayContents (); + m_htmlHelp.DisplayContents (); #endif - break; - - case MAINMENU_HELP_TOPICS: + break; + + case MAINMENU_HELP_TOPICS: #ifdef CTSIM_WINHELP - m_winHelp.DisplaySection (introduction); + m_winHelp.DisplaySection (introduction); #else - m_htmlHelp.DisplayIndex(); -#endif - break; - - default: - *theApp->getLog() << "Unknown help command # " << commandID << "\n"; - break; - } + m_htmlHelp.DisplayIndex(); +#endif + break; + + default: + *theApp->getLog() << "Unknown help command # " << commandID << "\n"; + break; + } } void MainFrame::OnExit (wxCommandEvent& WXUNUSED(event) ) { - Close(true); + Close(true); } void MainFrame::OnUpdateUI (wxUpdateUIEvent& rEvent) { - int iPos = 0; - wxList& rListDocs = theApp->getDocManager()->GetDocuments(); - wxNode* pNode = rListDocs.GetFirst(); - while (iPos < MAX_WINDOW_MENUITEMS && pNode != NULL) { - wxDocument* pDoc = static_cast(pNode->GetData()); - wxString strFilename = pDoc->GetFilename(); - if (iPos < 10) { - strFilename += "\tCtrl-"; - strFilename += static_cast('0' + iPos); - } - static_cast(m_apWindowMenuItems[iPos])->SetName (strFilename); - m_apWindowMenuData[iPos] = pDoc; - m_pWindowMenu->Enable (MAINMENU_WINDOW_BASE+iPos, true); - iPos++; - pNode = pNode->GetNext(); - } - for (int i = iPos; i < MAX_WINDOW_MENUITEMS; i++) { - m_pWindowMenu->Enable (MAINMENU_WINDOW_BASE+i, false); - static_cast(m_apWindowMenuItems[i])->SetName (wxString("[EMPTY]")); - m_apWindowMenuData[i] = NULL; - } - + int iPos = 0; + wxList& rListDocs = theApp->getDocManager()->GetDocuments(); + wxNode* pNode = rListDocs.GetFirst(); + while (iPos < MAX_WINDOW_MENUITEMS && pNode != NULL) { + wxDocument* pDoc = static_cast(pNode->GetData()); + wxString strFilename = pDoc->GetFilename(); + if (iPos < 10) { + strFilename += "\tCtrl-"; + strFilename += static_cast('0' + iPos); + } + static_cast(m_apWindowMenuItems[iPos])->SetName (strFilename); + m_apWindowMenuData[iPos] = pDoc; + m_pWindowMenu->Enable (MAINMENU_WINDOW_BASE+iPos, true); + iPos++; + pNode = pNode->GetNext(); + } + for (int i = iPos; i < MAX_WINDOW_MENUITEMS; i++) { + m_pWindowMenu->Enable (MAINMENU_WINDOW_BASE+i, false); + static_cast(m_apWindowMenuItems[i])->SetName (wxString("[EMPTY]")); + m_apWindowMenuData[i] = NULL; + } + } #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); + 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) { - if (wxDocument* pDoc = m_apWindowMenuData [iMenuPosition]) { - wxString strFilename = pDoc->GetFilename(); - const wxView* pView = pDoc->GetFirstView(); - if (pView) { - wxFrame* pFrame = pView->GetFrame(); - pFrame->SetFocus(); - pFrame->Raise(); - } - } + if (wxDocument* pDoc = m_apWindowMenuData [iMenuPosition]) { + wxString strFilename = pDoc->GetFilename(); + const wxView* pView = pDoc->GetFirstView(); + if (pView) { + wxFrame* pFrame = pView->GetFrame(); + pFrame->SetFocus(); + pFrame->Raise(); + } + } } void MainFrame::OnWindowMenu0 (wxCommandEvent& event) @@ -652,27 +646,27 @@ void MainFrame::OnWindowMenu19 (wxCommandEvent& event) class BitmapControl : public wxPanel { private: - DECLARE_DYNAMIC_CLASS (BitmapControl) - DECLARE_EVENT_TABLE () - wxBitmap* m_pBitmap; - + DECLARE_DYNAMIC_CLASS (BitmapControl) + DECLARE_EVENT_TABLE () + wxBitmap* m_pBitmap; + public: - BitmapControl (wxBitmap* pBitmap, wxWindow *parent, wxWindowID id = -1, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSTATIC_BORDER, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = "BitmapCtrl"); - - - virtual ~BitmapControl(); - - virtual wxSize GetBestSize() const; - - wxBitmap* getBitmap() - { return m_pBitmap; } - - void OnPaint(wxPaintEvent& event); + BitmapControl (wxBitmap* pBitmap, wxWindow *parent, wxWindowID id = -1, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxSTATIC_BORDER, + const wxValidator& validator = wxDefaultValidator, + const wxString& name = "BitmapCtrl"); + + + virtual ~BitmapControl(); + + virtual wxSize GetBestSize() const; + + wxBitmap* getBitmap() + { return m_pBitmap; } + + void OnPaint(wxPaintEvent& event); }; @@ -687,18 +681,18 @@ BitmapControl::BitmapControl (wxBitmap* pBitmap, wxWindow* parent, wxWindowID id long style, const wxValidator& validator, const wxString& name) : m_pBitmap(pBitmap) { - Create(parent, id, pos, size, style, name); - - SetSize (GetBestSize()); + Create(parent, id, pos, size, style, name); + + SetSize (GetBestSize()); } wxSize BitmapControl::GetBestSize () const { - if (m_pBitmap) - return wxSize (m_pBitmap->GetWidth(), m_pBitmap->GetHeight()); - else - return wxSize(0,0); + if (m_pBitmap) + return wxSize (m_pBitmap->GetWidth(), m_pBitmap->GetHeight()); + else + return wxSize(0,0); } BitmapControl::~BitmapControl() @@ -707,38 +701,38 @@ BitmapControl::~BitmapControl() void BitmapControl::OnPaint (wxPaintEvent& event) { - wxPaintDC dc(this); - if (m_pBitmap) - dc.DrawBitmap (*m_pBitmap, 0, 0); + wxPaintDC dc(this); + if (m_pBitmap) + dc.DrawBitmap (*m_pBitmap, 0, 0); } class BitmapDialog : public wxDialog { private: - BitmapControl* m_pBitmapCtrl; - + BitmapControl* m_pBitmapCtrl; + public: - BitmapDialog (wxBitmap* pBitmap, char const* pszTitle); - virtual ~BitmapDialog(); + BitmapDialog (wxBitmap* pBitmap, char const* pszTitle); + virtual ~BitmapDialog(); }; BitmapDialog::BitmapDialog (wxBitmap* pBitmap, char const* pszTitle) : wxDialog(theApp->getMainFrame(), -1, wxString(pszTitle), wxDefaultPosition, wxDefaultSize, wxDIALOG_MODAL | wxDEFAULT_DIALOG_STYLE) { - wxBoxSizer* pTopSizer = new wxBoxSizer (wxVERTICAL); - - pTopSizer->Add (new BitmapControl (pBitmap, this), 0, wxALIGN_CENTER | wxALL, 5); - - wxBoxSizer* pButtonSizer = new wxBoxSizer (wxHORIZONTAL); - wxButton* pButtonOk = new wxButton (this, wxID_OK, "Ok"); - pButtonSizer->Add (pButtonOk, 0, wxEXPAND | wxALL, 10); - - pTopSizer->Add (pButtonSizer, 0, wxALIGN_CENTER); - - SetAutoLayout (true); - SetSizer (pTopSizer); - pTopSizer->Fit (this); - pTopSizer->SetSizeHints (this); + wxBoxSizer* pTopSizer = new wxBoxSizer (wxVERTICAL); + + pTopSizer->Add (new BitmapControl (pBitmap, this), 0, wxALIGN_CENTER | wxALL, 5); + + wxBoxSizer* pButtonSizer = new wxBoxSizer (wxHORIZONTAL); + wxButton* pButtonOk = new wxButton (this, wxID_OK, "Ok"); + pButtonSizer->Add (pButtonOk, 0, wxEXPAND | wxALL, 10); + + pTopSizer->Add (pButtonSizer, 0, wxALIGN_CENTER); + + SetAutoLayout (true); + SetSizer (pTopSizer); + pTopSizer->Fit (this); + pTopSizer->SetSizeHints (this); } BitmapDialog::~BitmapDialog() @@ -749,124 +743,124 @@ BitmapDialog::~BitmapDialog() void MainFrame::OnAbout(wxCommandEvent& WXUNUSED(event) ) { - wxBitmap bmp (splash); - if (bmp.Ok()) { - BitmapDialog dlg (&bmp, "About CTSim"); - dlg.Show(true); - } else { - wxString msg = "CTSim\nThe Open Source Computed Tomography Simulator\n"; + wxBitmap bmp (splash); + if (bmp.Ok()) { + BitmapDialog dlg (&bmp, "About CTSim"); + dlg.Show(true); + } else { + wxString msg = "CTSim\nThe Open Source Computed Tomography Simulator\n"; #ifdef CTSIMVERSION - msg += "Version "; - msg += CTSIMVERSION; - msg += "\n\n"; + msg += "Version "; + msg += CTSIMVERSION; + msg += "\n\n"; #elif defined(VERSION) - msg << "Version: " << VERSION << "\n\n"; + msg << "Version: " << VERSION << "\n\n"; #endif - msg += "Author: Kevin Rosenberg \nUsage: ctsim [files-to-open..] [--help]"; - - wxMessageBox(msg, "About CTSim", wxOK | wxICON_INFORMATION, this); - } + msg += "Author: Kevin Rosenberg \nUsage: ctsim [files-to-open..] [--help]"; + + wxMessageBox(msg, "About CTSim", wxOK | wxICON_INFORMATION, this); + } } 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->OnNewDocument(); - } - - return newDoc; + 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->OnNewDocument(); + } + + return newDoc; } ImageFileDocument* 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->OnNewDocument(); - } - - return newDoc; + 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->OnNewDocument(); + } + + return newDoc; } PlotFileDocument* 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->OnNewDocument(); - } - - return newDoc; + 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->OnNewDocument(); + } + + return newDoc; } TextFileDocument* CTSimApp::newTextDoc() { - wxString strFilename (getUntitledFilename()); - strFilename += ".txt"; - - 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->OnNewDocument(); - } - - return newDoc; + wxString strFilename (getUntitledFilename()); + strFilename += ".txt"; + + 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->OnNewDocument(); + } + + return newDoc; } PhantomFileDocument* 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->OnNewDocument(); - } - - return newDoc; + 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->OnNewDocument(); + } + + return newDoc; } diff --git a/src/ctsim.h b/src/ctsim.h index ee2ccbd..9c4278f 100644 --- a/src/ctsim.h +++ b/src/ctsim.h @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (c) 1983-2001 Kevin Rosenberg ** -** $Id: ctsim.h,v 1.33 2001/01/28 19:10:18 kevin Exp $ +** $Id: ctsim.h,v 1.34 2001/01/29 00:42:26 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 @@ -178,6 +178,7 @@ private: wxDocTemplate* m_pDocTemplPhantom; wxDocTemplate* m_pDocTemplPlot; wxDocTemplate* m_pDocTemplText; + TextFileDocument* m_pLogDoc; void usage (const char* program); @@ -213,6 +214,7 @@ public: wxDocTemplate* getDocTemplPhantom() { return m_pDocTemplPhantom; } wxDocTemplate* getDocTemplPlot() { return m_pDocTemplPlot; } wxDocTemplate* getDocTemplText() { return m_pDocTemplText; } + TextFileDocument* getLogDoc() { return m_pLogDoc; } ProjectionFileDocument* newProjectionDoc(); ImageFileDocument* newImageDoc(); -- 2.34.1