** This is part of the CTSim program
** Copyright (c) 1983-2001 Kevin Rosenberg
**
-** $Id: views.h,v 1.56 2001/09/24 09:40:42 kevin Exp $
+** $Id$
**
** 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
** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
******************************************************************************/
-#ifdef __GNUG__
-// #pragma interface
-#endif
-
#ifndef __VIEWSH__
#define __VIEWSH__
{
private:
DECLARE_DYNAMIC_CLASS(ImageFileView)
-
+
wxMemoryDC m_memoryDC;
- wxBitmap m_bitmap;
+ wxBitmap* m_pBitmap;
wxMenu* m_pMenuAnalyze;
-
+
ImageFileCanvas *CreateCanvas (wxFrame* parent);
#if CTSIM_MDI
wxDocMDIChildFrame* m_pFrame;
wxDocChildFrame* m_pFrame;
wxDocChildFrame* CreateChildFrame(wxDocument *doc, wxView *view);
#endif
-
+
ImageFileCanvas *m_pCanvas;
wxMenu* m_pFileMenu;
wxMenu* m_pFilterMenu;
double m_dMinPixel;
double m_dMaxPixel;
double m_dAutoScaleFactor;
-
+
int m_iDefaultExportFormatID;
- wxWindow* getFrameForChild()
+ wxFrame* getFrameForChild()
#if CTSIM_MDI
{ return theApp->getMainFrame(); }
#else
void OnDraw(wxDC* dc);
void OnUpdate(wxView *sender, wxObject *hint = NULL);
bool OnClose (bool deleteWindow = true);
-
+
void OnEditCopy (wxCommandEvent& event);
void OnEditCut (wxCommandEvent& event);
void OnEditPaste (wxCommandEvent& event);
void OnRevert (wxCommandEvent& event);
- void OnExport (wxCommandEvent& event);
+ void OnExport (wxCommandEvent& event);
void OnProperties (wxCommandEvent& event);
- void OnCompare (wxCommandEvent& event);
+ void OnCompare (wxCommandEvent& event);
void OnScaleSize (wxCommandEvent& event);
void OnInvertValues (wxCommandEvent& event);
void OnSquare (wxCommandEvent& event);
void OnFFTCols (wxCommandEvent& event);
void OnIFFTCols (wxCommandEvent& event);
#endif
-
+
void OnMagnitude (wxCommandEvent& event);
void OnPhase (wxCommandEvent& event);
void OnReal (wxCommandEvent& event);
void OnImaginary (wxCommandEvent& event);
-
+
void OnScaleAuto (wxCommandEvent& event);
void OnScaleMinMax (wxCommandEvent& event);
void OnScaleFull (wxCommandEvent& event);
void OnPlotHistogram (wxCommandEvent& event);
void OnCompareRow (wxCommandEvent& event);
void OnCompareCol (wxCommandEvent& event);
-
+
#if CTSIM_MDI
wxDocMDIChildFrame* getFrame() { return m_pFrame; }
#else
wxDocChildFrame* getFrame() { return m_pFrame; }
#endif
+ void setInitialClientSize();
wxMenu* getMenuAnalyze() { return m_pMenuAnalyze; }
- ImageFileDocument* GetDocument()
+ ImageFileDocument* GetDocument()
{ return dynamic_cast<ImageFileDocument*>(wxView::GetDocument()); }
-
+
DECLARE_EVENT_TABLE()
};
int m_xCursor;
int m_yCursor;
-
+
public:
ImageFileCanvas (ImageFileView* v, wxFrame *frame, const wxPoint& pos, const wxSize& size, const long style);
virtual ~ImageFileCanvas();
{
private:
DECLARE_DYNAMIC_CLASS(ProjectionFileView)
-
+
wxMemoryDC m_memoryDC;
- wxBitmap m_bitmap;
-
+ wxBitmap* m_pBitmap;
+
ProjectionFileCanvas *CreateCanvas (wxFrame* parent);
#if CTSIM_MDI
wxDocMDIChildFrame* m_pFrame;
wxDocChildFrame* m_pFrame;
wxDocChildFrame* CreateChildFrame(wxDocument *doc, wxView *view);
#endif
-
+
ProjectionFileCanvas *m_pCanvas;
wxMenu* m_pFileMenu;
+ wxMenu* m_pReconstructMenu;
+ wxMenu* m_pConvertMenu;
int m_iDefaultNX;
int m_iDefaultNY;
int m_iDefaultInterpParam;
int m_iDefaultBackprojector;
int m_iDefaultTrace;
-
+
int m_iDefaultPolarNX;
int m_iDefaultPolarNY;
int m_iDefaultPolarInterpolation;
int m_iDefaultPolarZeropad;
- wxWindow* getFrameForChild()
+ wxWindow* getFrameForChild()
#if CTSIM_MDI
{ return theApp->getMainFrame(); }
#else
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);
wxDocChildFrame* getFrame() { return m_pFrame; }
#endif
ProjectionFileCanvas* getCanvas() { return m_pCanvas; }
+ void setInitialClientSize();
wxMenu* getFileMenu() { return m_pFileMenu; }
+ wxMenu* getReconstructMenu() { return m_pReconstructMenu; }
- ProjectionFileDocument* GetDocument()
+ ProjectionFileDocument* GetDocument()
{ return dynamic_cast<ProjectionFileDocument*>(wxView::GetDocument()); }
DECLARE_EVENT_TABLE()
};
private:
ProjectionFileView* m_pView;
-public:
+public:
ProjectionFileCanvas (ProjectionFileView* v, wxFrame *frame, const wxPoint& pos, const wxSize& size, const long style);
virtual ~ProjectionFileCanvas() ;
private:
DECLARE_DYNAMIC_CLASS(PhantomFileView)
DECLARE_EVENT_TABLE()
-
+
PhantomCanvas *CreateCanvas (wxFrame* parent);
#if CTSIM_MDI
wxDocMDIChildFrame* m_pFrame;
wxDocChildFrame* m_pFrame;
wxDocChildFrame* CreateChildFrame(wxDocument *doc, wxView *view);
#endif
-
+
PhantomCanvas *m_pCanvas;
wxMenu* m_pFileMenu;
-
+
int m_iDefaultNDet;
int m_iDefaultNView;
int m_iDefaultOffsetView;
double m_dDefaultCenterDetectorLength;
double m_dDefaultViewRatio;
double m_dDefaultScanRatio;
-
+
int m_iDefaultRasterNX;
int m_iDefaultRasterNY;
int m_iDefaultRasterNSamples;
double m_dDefaultRasterViewRatio;
- wxWindow* getFrameForChild()
+ wxWindow* getFrameForChild()
#if CTSIM_MDI
{ return theApp->getMainFrame(); }
#else
virtual ~PhantomFileView();
void canvasClosed()
{ m_pCanvas = NULL; m_pFrame = NULL; }
-
+
bool OnCreate(wxDocument *doc, long flags);
void OnUpdate(wxView *sender, wxObject *hint = NULL);
bool OnClose (bool deleteWindow = true);
void OnProperties (wxCommandEvent& event);
void OnRasterize (wxCommandEvent& event);
void OnProjections (wxCommandEvent& event);
-
- PhantomFileDocument* GetDocument()
+
+ PhantomFileDocument* GetDocument()
{ return dynamic_cast<PhantomFileDocument*>(wxView::GetDocument()); }
-
+
wxMenu* getFileMenu() { return m_pFileMenu; }
#if CTSIM_MDI
wxDocMDIChildFrame* getFrame() { return m_pFrame; }
private:
PhantomFileView* m_pView;
-public:
+public:
PhantomCanvas (PhantomFileView* v, wxFrame *frame, const wxPoint& pos, const wxSize& size, const long style);
virtual ~PhantomCanvas();
class PlotFileView : public wxView
{
DECLARE_DYNAMIC_CLASS(PlotFileView)
-
+
private:
#if CTSIM_MDI
wxDocMDIChildFrame* m_pFrame;
wxDocChildFrame* m_pFrame;
wxDocChildFrame* CreateChildFrame(wxDocument *doc, wxView *view);
#endif
-
+
PlotFileCanvas *m_pCanvas;
EZPlot* m_pEZPlot;
wxMenu* m_pFileMenu;
-
+
bool m_bMinSpecified;
bool m_bMaxSpecified;
double m_dMinPixel;
double m_dMaxPixel;
double m_dAutoScaleFactor;
-
+
PlotFileCanvas *CreateCanvas (wxFrame* parent);
- wxWindow* getFrameForChild()
+ wxWindow* getFrameForChild()
#if CTSIM_MDI
{ return theApp->getMainFrame(); }
#else
virtual ~PlotFileView();
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);
void OnScaleMinMax (wxCommandEvent& event);
void OnScaleAuto (wxCommandEvent& event);
void OnScaleFull (wxCommandEvent& event);
-
+
#if CTSIM_MDI
wxDocMDIChildFrame* getFrame() { return m_pFrame; }
#else
wxDocChildFrame* getFrame() { return m_pFrame; }
#endif
-
+
+ void setInitialClientSize();
wxMenu* getFileMenu() { return m_pFileMenu; }
- PlotFileDocument* GetDocument()
+ PlotFileDocument* GetDocument()
{ return dynamic_cast<PlotFileDocument*>(wxView::GetDocument()); }
-
+
DECLARE_EVENT_TABLE()
};
{
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);
+ virtual wxSize GetBestSize() const;
void setView (PlotFileView* pView)
{ m_pView = pView; }
#endif
wxMenu* m_pFileMenu;
TextFileCanvas *m_pCanvas;
-
+
public:
- TextFileView()
+ TextFileView()
: wxView() , m_pFrame(0), m_pCanvas(0)
{}
~TextFileView();
void OnUpdate (wxView *sender, wxObject *hint = (wxObject *) NULL);
bool OnClose (bool deleteWindow = TRUE);
- TextFileDocument* GetDocument()
+ TextFileDocument* GetDocument()
{ return dynamic_cast<TextFileDocument*>(wxView::GetDocument()); }
-
+
TextFileCanvas* getTextCtrl() { return m_pCanvas; }
wxMenu* getFileMenu() { return m_pFileMenu; }
#if CTSIM_MDI
{
TextFileView *m_pView;
-public:
+public:
TextFileCanvas (TextFileView *v, wxFrame *frame, const wxPoint& pos, const wxSize& size, long style);
~TextFileCanvas ();
+ virtual wxSize GetBestSize() const;
};