** Date Started: July 2000
**
** This is part of the CTSim program
-** Copyright (c) 1983-2001 Kevin Rosenberg
-**
-** $Id: ctsim.h,v 1.53 2001/03/01 20:02:18 kevin Exp $
+** Copyright (c) 1983-2009 Kevin Rosenberg
**
** 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
#include <dmalloc.h>
#endif
+#ifdef MSVC
+#define HAVE_WXTHREADS 1
+#endif
+
#ifndef WX_PRECOMP
#include "wx/wx.h"
#endif
#ifdef MSVC
#define CTSIM_MDI 1
#endif
-#define CTSIM_CUSTOM_MRU 1
#if defined(CTSIM_MDI) && !wxUSE_MDI_ARCHITECTURE
#error You must set wxUSE_MDI_ARCHITECTURE to 1 in setup.h!
#if defined(__WXMSW__) || defined (MSVC)
-#define CTSIM_WINHELP 1
+// #define CTSIM_WINHELP 1
#endif
// Define a new frame for main window
enum { MAX_WINDOW_MENUITEMS = 20 };
wxMenuItem* m_apWindowMenuItems[MAX_WINDOW_MENUITEMS];
wxDocument* m_apWindowMenuData[MAX_WINDOW_MENUITEMS];
-
+
int m_iDefaultImportFormat;
int m_iDefaultPhantomID;
int m_iDefaultFilterID;
int m_iDefaultFilterDomainID;
- unsigned int m_iDefaultFilterXSize;
+ unsigned int m_iDefaultFilterXSize;
unsigned int m_iDefaultFilterYSize;
double m_dDefaultFilterParam;
double m_dDefaultFilterBandwidth;
MainFrame(wxDocManager *manager, wxFrame *frame, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, const long type);
virtual ~MainFrame();
-#ifdef CTSIM_CUSTOM_MRU
- void OnMRUFile (wxCommandEvent& event);
+#if wxCHECK_VERSION(2,9,0)
+ // Needed for wx3.0
+ void OnMRUFile(wxCommandEvent& event) {
+ if (m_docManager) m_docManager->OnMRUFile(event);
+ }
#endif
+
void OnSize (wxSizeEvent& event);
#if CTSIM_WINHELP
void OnCreatePhantom (wxCommandEvent& event);
void OnPreferences (wxCommandEvent& event);
void OnLogEvent (wxCommandEvent& event); // used by thread children
+ void OnNewImageFile (wxCommandEvent& event);
+ void OnNewProjectionFile (wxCommandEvent& event);
void OnHelpButton (wxCommandEvent& event);
void OnImport (wxCommandEvent& event);
void OnCreateFilter (wxCommandEvent& event);
void OnExit (wxCommandEvent& event);
-
+
void OnUpdateUI (wxUpdateUIEvent& event);
-
+
void OnWindowMenu0 (wxCommandEvent& event);
void OnWindowMenu1 (wxCommandEvent& event);
void OnWindowMenu2 (wxCommandEvent& event);
void OnWindowMenu17 (wxCommandEvent& event);
void OnWindowMenu18 (wxCommandEvent& event);
void OnWindowMenu19 (wxCommandEvent& event);
-
+
void DoWindowMenu (int iMenuPosition, wxCommandEvent& event);
bool getShuttingDown() const { return m_bShuttingDown; }
MainFrame* m_pFrame;
wxConfig* m_pConfig;
wxTextCtrl* m_pLog;
+ TextFileDocument* m_pLogDoc;
wxDocTemplate* m_pDocTemplImage;
wxDocTemplate* m_pDocTemplProjection;
wxDocTemplate* m_pDocTemplPhantom;
#if wxUSE_GLCANVAS
wxDocTemplate* m_pDocTemplGraph3d;
#endif
-
- TextFileDocument* m_pLogDoc;
void usage (const char* program);
void openConfig();
void closeConfig();
BackgroundManager* m_pBackgroundMgr;
+ bool m_bPrintCmdLineImages;
+ bool m_bCmdLineVerboseFlag;
+
+ wxDocument* newDocumentHelper (wxDocTemplate* tmpl);
public:
CTSimApp();
+ void OnInitCmdLine(wxCmdLineParser& parser);
+ bool OnCmdLineParsed(wxCmdLineParser& parser);
bool OnInit();
int OnExit();
MainFrame* getMainFrame() const
wxTextCtrl* getLog()
{ return m_pLog; }
- wxDocManager* getDocManager()
+ wxDocManager* getDocManager()
{ return m_docManager; }
-
- wxString getUntitledFilename();
int getNumberCPU() const { return wxThread::GetCPUCount(); }
EZPlotDialog* makeEZPlotDialog()
{ return new EZPlotDialog (m_pFrame); }
-
+
void getCompatibleImages (const ImageFileDocument* pIFDoc, std::vector<ImageFileDocument*>& vecIF);
bool getAdvancedOptions() const { return m_bAdvancedOptions; }
void setAdvancedOptions (bool bAdv) { m_bAdvancedOptions = bAdv; }
- bool getVerboseLogging() const { return m_bVerboseLogging; }
+ bool getVerboseLogging() const { return m_bVerboseLogging || m_bCmdLineVerboseFlag; }
void setVerboseLogging (bool bVerbose) { m_bVerboseLogging = bVerbose; }
bool getStartupTips() const { return m_bShowStartupTips; }
void setStartupTips(bool bTips) { m_bShowStartupTips = bTips; }
};
DECLARE_APP(CTSimApp)
-
extern class CTSimApp* theApp;
enum {
MAINMENU_FILE_PREFERENCES,
MAINMENU_LOG_EVENT,
MAINMENU_IMPORT,
-
+
PJMENU_FILE_PROPERTIES,
PJMENU_RECONSTRUCT_FBP,
+ PJMENU_RECONSTRUCT_FBP_REBIN,
PJMENU_RECONSTRUCT_FOURIER,
+ PJMENU_CONVERT_RECTANGULAR,
PJMENU_CONVERT_POLAR,
PJMENU_CONVERT_FFT_POLAR,
-
+ PJMENU_CONVERT_PARALLEL,
+ PJMENU_PLOT_TTHETA_SAMPLING,
+ PJMENU_PLOT_HISTOGRAM,
+ PJMENU_ARTIFACT_REDUCTION,
+
IFMENU_FILE_EXPORT,
IFMENU_FILE_PROPERTIES,
-
+
+ IFMENU_EDIT_COPY,
+ IFMENU_EDIT_CUT,
+ IFMENU_EDIT_PASTE,
+
IFMENU_PLOT_ROW,
IFMENU_PLOT_COL,
IFMENU_PLOT_FFT_ROW,
IFMENU_PLOT_FFT_COL,
IFMENU_PLOT_HISTOGRAM,
-
+
IFMENU_VIEW_SCALE_AUTO,
IFMENU_VIEW_SCALE_MINMAX,
IFMENU_VIEW_SCALE_FULL,
-
+
IFMENU_COMPARE_IMAGES,
IFMENU_COMPARE_ROW,
IFMENU_COMPARE_COL,
IFMENU_IMAGE_SUBTRACT,
IFMENU_IMAGE_MULTIPLY,
IFMENU_IMAGE_DIVIDE,
-#if wxUSE_GLCANVAS
+#ifdef wxUSE_GLCANVAS
IFMENU_IMAGE_CONVERT3D,
#endif
IFMENU_FILTER_IFFT_COLS,
IFMENU_FILTER_MAGNITUDE,
IFMENU_FILTER_PHASE,
+ IFMENU_FILTER_REAL,
+ IFMENU_FILTER_IMAGINARY,
IFMENU_FILTER_SHUFFLENATURALTOFOURIERORDER,
IFMENU_FILTER_SHUFFLEFOURIERTONATURALORDER,
-
+
PHMMENU_FILE_PROPERTIES,
PHMMENU_PROCESS_RASTERIZE,
PHMMENU_PROCESS_PROJECTIONS,
PLOTMENU_FILE_PROPERTIES,
PLOTMENU_VIEW_SCALE_MINMAX,
PLOTMENU_VIEW_SCALE_AUTO,
- PLOTMENU_VIEW_SCALE_FULL,
+ PLOTMENU_VIEW_SCALE_FULL,
- GRAPH3D_VIEW_SURFACE,
+ GRAPH3D_VIEW_WIREFRAME,
GRAPH3D_VIEW_COLOR,
GRAPH3D_VIEW_LIGHTING,
GRAPH3D_VIEW_SMOOTH,
GRAPH3D_VIEW_SCALE_FULL,
RECONSTRUCTION_THREAD_EVENT,
+ NEW_IMAGEFILE_EVENT,
+ NEW_PROJECTIONFILE_EVENT,
};
#endif