** This is part of the CTSim program
** Copyright (C) 1983-2000 Kevin Rosenberg
**
-** $Id: views.h,v 1.24 2001/01/03 22:00:46 kevin Exp $
+** $Id: views.h,v 1.28 2001/01/20 17:43:41 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
class ImageFileCanvas;
class ImageFileView : public wxView
{
+private:
DECLARE_DYNAMIC_CLASS(ImageFileView)
- wxMemoryDC m_memoryDC;
+ wxMemoryDC m_memoryDC;
wxBitmap m_bitmap;
-private:
ImageFileCanvas *CreateCanvas(wxView *view, wxFrame *parent);
wxFrame *CreateChildFrame(wxDocument *doc, wxView *view);
+ wxMenu* m_pFileMenu;
ImageFileCanvas *m_canvas;
wxFrame *m_frame;
double m_dAutoScaleFactor;
int m_iDefaultExportFormatID;
-
+
+ wxWindow* getFrameForChild()
+#if CTSIM_MDI
+ { return theApp->getMainFrame()->GetClientWindow(); }
+#else
+ { return m_frame; }
+#endif
+
public:
ImageFileView(void);
virtual ~ImageFileView(void);
-
+
+ wxMenu* getFileMenu()
+ { return m_pFileMenu; }
+
bool OnCreate(wxDocument *doc, long flags);
void OnDraw(wxDC* dc);
void OnUpdate(wxView *sender, wxObject *hint = NULL);
void OnShuffleNaturalToFourierOrder (wxCommandEvent& event);
void OnShuffleFourierToNaturalOrder (wxCommandEvent& event);
-#ifdef HAVE_FFTW
+#ifdef HAVE_FFT
void OnFFT (wxCommandEvent& event);
void OnIFFT (wxCommandEvent& event);
+ void OnFFTRows (wxCommandEvent& event);
+ void OnIFFTRows (wxCommandEvent& event);
+ void OnFFTCols (wxCommandEvent& event);
+ void OnIFFTCols (wxCommandEvent& event);
#endif
void OnMagnitude (wxCommandEvent& event);
void OnScaleAuto (wxCommandEvent& event);
void OnScaleMinMax (wxCommandEvent& event);
+ void OnScaleFull (wxCommandEvent& event);
void OnPlotRow (wxCommandEvent& event);
void OnPlotCol (wxCommandEvent& event);
+#if HAVE_FFT
+ void OnPlotFFTRow (wxCommandEvent& event);
+ void OnPlotFFTCol (wxCommandEvent& event);
+#endif
void OnPlotHistogram (wxCommandEvent& event);
void OnCompareRow (wxCommandEvent& event);
void OnCompareCol (wxCommandEvent& event);
int m_xCursor;
int m_yCursor;
-
-public:
ImageFileView* m_pView;
+public:
ImageFileCanvas (ImageFileView* v, wxFrame *frame, const wxPoint& pos, const wxSize& size, const long style);
+ virtual ~ImageFileCanvas();
+
virtual void OnDraw(wxDC& dc);
void OnMouseEvent(wxMouseEvent& event);
void DrawRubberBandCursor (wxDC& dc, int x, int y);
bool GetCurrentCursor (int& x, int& y);
-
+
+ virtual wxSize GetBestSize() const;
+ void setView(ImageFileView* pView)
+ { m_pView = pView; }
+
+
DECLARE_EVENT_TABLE()
};
ProjectionFileCanvas *m_canvas;
wxFrame *m_frame;
+ wxMenu* m_pFileMenu;
int m_iDefaultNX;
int m_iDefaultNY;
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()->GetClientWindow(); }
+#else
+ { return m_frame; }
+#endif
+
public:
ProjectionFileView(void);
virtual ~ProjectionFileView(void);
void OnConvertPolar (wxCommandEvent& event);
void OnConvertFFTPolar (wxCommandEvent& event);
- wxFrame* getFrame ()
- { return m_frame; }
+ wxFrame* getFrame () { return m_frame; }
+ wxMenu* getFileMenu() { return m_pFileMenu; }
+
ProjectionFileDocument* GetDocument(void)
{ return dynamic_cast<ProjectionFileDocument*>(wxView::GetDocument()); }
DECLARE_EVENT_TABLE()
class ProjectionFileCanvas: public wxScrolledWindow
{
-public:
+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; }
};
class PhantomCanvas;
class PhantomView : public wxView
{
+private:
DECLARE_DYNAMIC_CLASS(PhantomView)
+ DECLARE_EVENT_TABLE()
-private:
PhantomCanvas *CreateCanvas(wxView *view, wxFrame *parent);
wxFrame *CreateChildFrame(wxDocument *doc, wxView *view);
PhantomCanvas *m_canvas;
wxFrame *m_frame;
+ wxMenu* m_pFileMenu;
int m_iDefaultNDet;
int m_iDefaultNView;
double m_dDefaultFocalLength;
double m_dDefaultFieldOfView;
+ int m_iDefaultRasterNX;
+ int m_iDefaultRasterNY;
+ int m_iDefaultRasterNSamples;
+
+ wxWindow* getFrameForChild()
+#if CTSIM_MDI
+ { return theApp->getMainFrame()->GetClientWindow(); }
+#else
+ { return m_frame; }
+#endif
+
public:
PhantomView(void);
virtual ~PhantomView(void);
PhantomDocument* GetDocument(void)
{ return dynamic_cast<PhantomDocument*>(wxView::GetDocument()); }
- DECLARE_EVENT_TABLE()
+ wxMenu* getFileMenu() { return m_pFileMenu; }
};
class PhantomCanvas: public wxScrolledWindow
{
-public:
+private:
PhantomView* m_pView;
-
+
+public:
PhantomCanvas (PhantomView* v, wxFrame *frame, const wxPoint& pos, const wxSize& size, const long style);
+ virtual ~PhantomCanvas();
+
+ void setView(PhantomView* pView)
+ { m_pView = pView; }
virtual void OnDraw(wxDC& dc);
};
PlotFileCanvas *m_canvas;
wxFrame *m_frame;
+ wxMenu* m_pFileMenu;
EZPlot* m_pEZPlot;
bool m_bMinSpecified;
double m_dMaxPixel;
double m_dAutoScaleFactor;
+ wxWindow* getFrameForChild()
+#if CTSIM_MDI
+ { return theApp->getMainFrame()->GetClientWindow(); }
+#else
+ { return m_frame; }
+#endif
+
public:
PlotFileView(void);
virtual ~PlotFileView(void);
void OnDraw(wxDC* dc);
void OnUpdate(wxView *sender, wxObject *hint = NULL);
bool OnClose (bool deleteWindow = true);
+
void OnProperties (wxCommandEvent& event);
- void OnScaleAuto (wxCommandEvent& event);
void OnScaleMinMax (wxCommandEvent& event);
+ void OnScaleAuto (wxCommandEvent& event);
+ void OnScaleFull (wxCommandEvent& event);
wxFrame* getFrame ()
{ return m_frame; }
+ wxMenu* getFileMenu() { return m_pFileMenu; }
PlotFileDocument* GetDocument(void)
{ return dynamic_cast<PlotFileDocument*>(wxView::GetDocument()); }
class PlotFileCanvas: public wxScrolledWindow
{
-public:
+private:
PlotFileView* m_pView;
+public:
PlotFileCanvas (PlotFileView* v, wxFrame *frame, const wxPoint& pos, const wxSize& size, const long style);
+ virtual ~PlotFileCanvas();
+
virtual void OnDraw(wxDC& dc);
+
+ void setView (PlotFileView* pView)
+ { m_pView = pView; }
+};
+
+
+class TextEditCanvas;
+class TextEditView: public wxView
+{
+private:
+ DECLARE_DYNAMIC_CLASS(TextEditView)
+
+ wxFrame *m_pFrame;
+ wxMenu* m_pFileMenu;
+ TextEditCanvas *m_pCanvas;
+
+public:
+ TextEditView()
+ : wxView() , m_pFrame(0), m_pCanvas(0)
+ {}
+ ~TextEditView();
+
+ wxFrame *CreateChildFrame(wxDocument *doc, wxView *view);
+
+ bool OnCreate (wxDocument *doc, long flags);
+ void OnDraw (wxDC *dc);
+ void OnUpdate (wxView *sender, wxObject *hint = (wxObject *) NULL);
+ bool OnClose (bool deleteWindow = TRUE);
+
+ TextEditCanvas* getTextCtrl() { return m_pCanvas; }
+
+ wxMenu* getFileMenu() { return m_pFileMenu; }
+};
+
+class TextEditCanvas: public wxTextCtrl
+{
+ TextEditView *m_pView;
+
+public:
+ TextEditCanvas (TextEditView *v, wxFrame *frame, const wxPoint& pos, const wxSize& size, long style);
+ ~TextEditCanvas ();
};