r427: Changes for MDI support
[ctsim.git] / src / views.h
index 4463689350a0c146bef7d14e18f8881c4317a3dc..ca998f2bdcb6adc793f9ae529655e382ac28344f 100644 (file)
@@ -9,7 +9,7 @@
 **  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.27 2001/01/20 08:10:33 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
@@ -57,7 +57,14 @@ private:
   double m_dAutoScaleFactor;
   
   int m_iDefaultExportFormatID;
-  
+
+  wxFrame* getFrameForChild() 
+#if CTSIM_MDI
+  { return theApp->getMainFrame(); }
+#else
+  { return m_frame; }
+#endif
+
 public:
   ImageFileView(void);
   virtual ~ImageFileView(void);
@@ -87,9 +94,13 @@ public:
   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);
@@ -97,8 +108,13 @@ public:
   
   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);
@@ -118,16 +134,20 @@ private:
   
   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;
+
   DECLARE_EVENT_TABLE()
 };
 
@@ -159,6 +179,18 @@ private:
   int m_iDefaultBackprojector;
   int m_iDefaultTrace;
   
+  int m_iDefaultPolarNX;
+  int m_iDefaultPolarNY;
+  int m_iDefaultPolarInterpolation;
+  int m_iDefaultPolarZeropad;
+
+  wxFrame* getFrameForChild() 
+#if CTSIM_MDI
+  { return theApp->getMainFrame(); }
+#else
+  { return m_frame; }
+#endif
+
 public:
   ProjectionFileView(void);
   virtual ~ProjectionFileView(void);
@@ -183,10 +215,16 @@ public:
 
 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);
 };
 
@@ -212,6 +250,17 @@ private:
   double m_dDefaultFocalLength;
   double m_dDefaultFieldOfView;
   
+  int m_iDefaultRasterNX;
+  int m_iDefaultRasterNY;
+  int m_iDefaultRasterNSamples;
+
+  wxFrame* getFrameForChild() 
+#if CTSIM_MDI
+  { return theApp->getMainFrame(); }
+#else
+  { return m_frame; }
+#endif
+
 public:
   PhantomView(void);
   virtual ~PhantomView(void);
@@ -232,10 +281,14 @@ public:
 
 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()
+  {}
+
   virtual void OnDraw(wxDC& dc);
 };
 
@@ -258,6 +311,13 @@ private:
   double m_dMaxPixel;
   double m_dAutoScaleFactor;
   
+  wxFrame* getFrameForChild() 
+#if CTSIM_MDI
+  { return theApp->getMainFrame(); }
+#else
+  { return m_frame; }
+#endif
+
 public:
   PlotFileView(void);
   virtual ~PlotFileView(void);
@@ -266,9 +326,11 @@ public:
   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; }
@@ -281,10 +343,14 @@ public:
 
 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);
 };