** This is part of the CTSim program
** Copyright (C) 1983-2000 Kevin Rosenberg
**
-** $Id: ctsim.h,v 1.8 2000/12/16 06:12:47 kevin Exp $
+** $Id: ctsim.h,v 1.22 2001/01/06 15:33:15 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
#include <dmalloc.h>
#endif
+#ifdef MSVC
+// #define CTSIM_MDI 1
+#endif
+
+
class wxMenu;
class wxDocument;
-#include "wx/docview.h"\r
+
+class ImageFileDocument;
+
+#include <vector>
+
+
+#include "wx/docview.h"
+
// Define a new frame for main window
+#if CTSIM_MDI
+class MainFrame: public wxMDIParentFrame
+#else
class MainFrame: public wxDocParentFrame
+#endif
{
DECLARE_CLASS(MainFrame)
private:
wxMenuItem* m_apWindowMenuItems[MAX_WINDOW_MENUITEMS];
wxDocument* m_apWindowMenuData[MAX_WINDOW_MENUITEMS];
+
+ int m_iDefaultPhantomID;
+ int m_iDefaultFilterID;
+ int m_iDefaultFilterDomainID;
+ unsigned int m_iDefaultFilterXSize;
+ unsigned int m_iDefaultFilterYSize;
+ double m_dDefaultFilterParam;
+ double m_dDefaultFilterBandwidth;
+ double m_dDefaultFilterInputScale;
+ double m_dDefaultFilterOutputScale;
+
+
public:
MainFrame(wxDocManager *manager, wxFrame *frame, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, const long type);
void OnAbout (wxCommandEvent& event);
void OnHelpContents (wxCommandEvent& event);
void OnCreatePhantom (wxCommandEvent& event);
+
+ void OnCreateFilter (wxCommandEvent& event);
void OnExit (wxCommandEvent& event);
void OnUpdateUI (wxUpdateUIEvent& event);
wxString getUntitledFilename();
+
+ void getCompatibleImages (const ImageFileDocument* pIFDoc, std::vector<ImageFileDocument*>& vecIF);
+
+
+
+ bool getSetModifyNewDocs() const
+
+ { return true; }
+
+
private:
wxDocManager* m_docManager;
MainFrame* m_pFrame;
enum {
- MAINMENU_HELP_ABOUT = 500,
- MAINMENU_HELP_CONTENTS,
- MAINMENU_FILE_CREATE_PHANTOM,
- MAINMENU_FILE_EXIT,
- IFMENU_FILE_PROPERTIES,
- PJMENU_FILE_PROPERTIES,
- PHMMENU_FILE_PROPERTIES,
- PJMENU_PROCESS_RECONSTRUCT,
- IFMENU_VIEW_SCALE_AUTO,
- IFMENU_VIEW_SCALE_MINMAX,
- PHMMENU_PROCESS_RASTERIZE,
- PHMMENU_PROCESS_PROJECTIONS,
- MAINMENU_WINDOW_BASE,
+ MAINMENU_HELP_ABOUT = 500,
+ MAINMENU_WINDOW_BASE,
+ MAINMENU_HELP_CONTENTS,
+ MAINMENU_FILE_CREATE_PHANTOM,
+
+ MAINMENU_FILE_CREATE_FILTER,
+ MAINMENU_FILE_EXIT,
+
+ PJMENU_FILE_PROPERTIES,
+ PJMENU_RECONSTRUCT_FBP,
+ PJMENU_RECONSTRUCT_FOURIER,
+ PJMENU_CONVERT_POLAR,
+ PJMENU_CONVERT_FFT_POLAR,
+
+ IFMENU_FILE_EXPORT,
+ IFMENU_FILE_PROPERTIES,
+
+ 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_SCALESIZE,
+ IFMENU_IMAGE_ADD,
+ IFMENU_IMAGE_SUBTRACT,
+ IFMENU_IMAGE_MULTIPLY,
+ IFMENU_IMAGE_DIVIDE,
+
+ IFMENU_FILTER_INVERTVALUES,
+ IFMENU_FILTER_SQRT,
+ IFMENU_FILTER_SQUARE,
+ IFMENU_FILTER_LOG,
+ IFMENU_FILTER_EXP,
+ IFMENU_FILTER_FOURIER,
+ IFMENU_FILTER_INVERSE_FOURIER,
+ IFMENU_FILTER_FFT,
+ IFMENU_FILTER_IFFT,
+ IFMENU_FILTER_FFT_ROWS,
+ IFMENU_FILTER_FFT_COLS,
+ IFMENU_FILTER_IFFT_ROWS,
+ IFMENU_FILTER_IFFT_COLS,
+ IFMENU_FILTER_MAGNITUDE,
+ IFMENU_FILTER_PHASE,
+ IFMENU_FILTER_SHUFFLENATURALTOFOURIERORDER,
+ IFMENU_FILTER_SHUFFLEFOURIERTONATURALORDER,
+
+ PHMMENU_FILE_PROPERTIES,
+ PHMMENU_PROCESS_RASTERIZE,
+ PHMMENU_PROCESS_PROJECTIONS,
+
+ PLOTMENU_VIEW_SCALE_MINMAX,
+ PLOTMENU_VIEW_SCALE_AUTO,
+ PLOTMENU_VIEW_SCALE_FULL,
+
};
#endif