+ wxMemoryDC m_memoryDC;
+ wxBitmap m_bitmap;
+
+ ProjectionFileCanvas *CreateCanvas (wxFrame* parent);
+#if CTSIM_MDI
+ wxDocMDIChildFrame* m_pFrame;
+ wxDocMDIChildFrame* CreateChildFrame(wxDocument *doc, wxView *view);
+#else
+ wxDocChildFrame* m_pFrame;
+ wxDocChildFrame* CreateChildFrame(wxDocument *doc, wxView *view);
+#endif
+
+ ProjectionFileCanvas *m_pCanvas;
+ wxMenu* m_pFileMenu;
+
+ int m_iDefaultNX;
+ int m_iDefaultNY;
+ int m_iDefaultFilter;
+ int m_iDefaultFilterMethod;
+ double m_dDefaultFilterParam;
+ int m_iDefaultFilterGeneration;
+ int m_iDefaultZeropad;
+ int m_iDefaultInterpolation;
+ int m_iDefaultInterpParam;
+ int m_iDefaultBackprojector;
+ int m_iDefaultTrace;
+
+ int m_iDefaultPolarNX;
+ int m_iDefaultPolarNY;
+ int m_iDefaultPolarInterpolation;
+ int m_iDefaultPolarZeropad;
+
+ wxWindow* getFrameForChild()
+#if CTSIM_MDI
+ { return theApp->getMainFrame(); }
+#else
+ { return m_pFrame; }
+#endif
+
+public:
+ ProjectionFileView();
+ virtual ~ProjectionFileView();
+ void canvasClosed()
+ { m_pCanvas = NULL; m_pFrame = NULL; }
+
+ bool OnCreate(wxDocument *doc, long flags);
+ void OnDraw(wxDC* dc);
+ void OnUpdate(wxView *sender, wxObject *hint = NULL);
+ bool OnClose (bool deleteWindow = true);
+ void OnProperties (wxCommandEvent& event);
+ void OnReconstructFBP (wxCommandEvent& event);
+ void OnReconstructFourier (wxCommandEvent& event);
+ void OnConvertPolar (wxCommandEvent& event);
+ void OnConvertFFTPolar (wxCommandEvent& event);
+
+#if CTSIM_MDI
+ wxDocMDIChildFrame* getFrame() { return m_pFrame; }
+#else
+ wxDocChildFrame* getFrame() { return m_pFrame; }
+#endif
+ ProjectionFileCanvas* getCanvas() { return m_pCanvas; }
+
+ wxMenu* getFileMenu() { return m_pFileMenu; }
+
+ ProjectionFileDocument* GetDocument()
+ { return dynamic_cast<ProjectionFileDocument*>(wxView::GetDocument()); }
+ DECLARE_EVENT_TABLE()
+};
+
+class ProjectionFileCanvas: public wxScrolledWindow
+{
+private:
+ ProjectionFileView* m_pView;
+
+public:
+ ProjectionFileCanvas (ProjectionFileView* v, wxFrame *frame, const wxPoint& pos, const wxSize& size, const long style);
+ virtual ~ProjectionFileCanvas() ;
+
+ virtual wxSize GetBestSize() const;
+ virtual void OnDraw(wxDC& dc);
+ void setView(ProjectionFileView* pView)
+ { m_pView = pView; }