X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=src%2Fviews.h;h=e8a1f25379a737706b02348f37c48455a135739a;hb=7a4e7e832456894448ee6676e239d6ccfd2e7eaf;hp=f82d5066c16558f41eb31e4d44e13c356fc24065;hpb=bfcc769cf8019eabc8c65c07257c8dbee4b4c977;p=ctsim.git diff --git a/src/views.h b/src/views.h index f82d506..e8a1f25 100644 --- a/src/views.h +++ b/src/views.h @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: views.h,v 1.9 2000/09/02 05:10:39 kevin Exp $ +** $Id: views.h,v 1.23 2001/01/02 13:57:30 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 @@ -56,6 +56,8 @@ private: double m_dMaxPixel; double m_dAutoScaleFactor; + int m_iDefaultExportFormatID; + public: ImageFileView(void); virtual ~ImageFileView(void); @@ -64,9 +66,45 @@ public: void OnDraw(wxDC* dc); void OnUpdate(wxView *sender, wxObject *hint = NULL); bool OnClose (bool deleteWindow = true); + + void OnScaleSize (wxCommandEvent& event); + void OnExport (wxCommandEvent& event); + void OnProperties (wxCommandEvent& event); + void OnCompare (wxCommandEvent& event); + + void OnInvertValues (wxCommandEvent& event); + void OnSquare (wxCommandEvent& event); + void OnSquareRoot (wxCommandEvent& event); + void OnLog (wxCommandEvent& event); + void OnExp (wxCommandEvent& event); + void OnAdd (wxCommandEvent& event); + void OnSubtract (wxCommandEvent& event); + void OnMultiply (wxCommandEvent& event); + void OnDivide (wxCommandEvent& event); + void OnFourier (wxCommandEvent& event); + void OnInverseFourier (wxCommandEvent& event); + void OnShuffleNaturalToFourierOrder (wxCommandEvent& event); + void OnShuffleFourierToNaturalOrder (wxCommandEvent& event); + +#ifdef HAVE_FFTW + void OnFFT (wxCommandEvent& event); + void OnIFFT (wxCommandEvent& event); +#endif + + void OnMagnitude (wxCommandEvent& event); + void OnPhase (wxCommandEvent& event); + void OnScaleAuto (wxCommandEvent& event); void OnScaleMinMax (wxCommandEvent& event); + void OnPlotRow (wxCommandEvent& event); + void OnPlotCol (wxCommandEvent& event); + void OnPlotHistogram (wxCommandEvent& event); + void OnCompareRow (wxCommandEvent& event); + void OnCompareCol (wxCommandEvent& event); + + wxFrame* getFrame() + { return m_frame; } ImageFileDocument* GetDocument(void) { return dynamic_cast(wxView::GetDocument()); } @@ -76,12 +114,19 @@ public: class ImageFileCanvas: public wxScrolledWindow { +private: + + int m_xCursor; + int m_yCursor; + public: ImageFileView* m_pView; ImageFileCanvas (ImageFileView* v, wxFrame *frame, const wxPoint& pos, const wxSize& size, const long style); virtual void OnDraw(wxDC& dc); void OnMouseEvent(wxMouseEvent& event); + void DrawRubberBandCursor (wxDC& dc, int x, int y); + bool GetCurrentCursor (int& x, int& y); DECLARE_EVENT_TABLE() }; @@ -102,6 +147,18 @@ private: ProjectionFileCanvas *m_canvas; wxFrame *m_frame; + 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; + public: ProjectionFileView(void); virtual ~ProjectionFileView(void); @@ -113,6 +170,9 @@ public: void OnProperties (wxCommandEvent& event); void OnReconstruct (wxCommandEvent& event); + wxFrame* getFrame () + { return m_frame; } + ProjectionFileDocument* GetDocument(void) { return dynamic_cast(wxView::GetDocument()); } DECLARE_EVENT_TABLE() @@ -173,9 +233,56 @@ public: PhantomView* m_pView; PhantomCanvas (PhantomView* v, wxFrame *frame, const wxPoint& pos, const wxSize& size, const long style); - virtual void OnDraw(wxDC& dc); +}; + +class PlotFileCanvas; +class PlotFileView : public wxView +{ + DECLARE_DYNAMIC_CLASS(PlotFileView) + +private: + PlotFileCanvas *CreateCanvas(wxView *view, wxFrame *parent); + wxFrame *CreateChildFrame(wxDocument *doc, wxView *view); + + PlotFileCanvas *m_canvas; + wxFrame *m_frame; + EZPlot* m_pEZPlot; + bool m_bMinSpecified; + bool m_bMaxSpecified; + double m_dMinPixel; + double m_dMaxPixel; + double m_dAutoScaleFactor; + +public: + PlotFileView(void); + virtual ~PlotFileView(void); + + 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 OnScaleAuto (wxCommandEvent& event); + void OnScaleMinMax (wxCommandEvent& event); + + wxFrame* getFrame () + { return m_frame; } + + PlotFileDocument* GetDocument(void) + { return dynamic_cast(wxView::GetDocument()); } + + DECLARE_EVENT_TABLE() +}; + +class PlotFileCanvas: public wxScrolledWindow +{ +public: + PlotFileView* m_pView; + + PlotFileCanvas (PlotFileView* v, wxFrame *frame, const wxPoint& pos, const wxSize& size, const long style); + virtual void OnDraw(wxDC& dc); };