X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=blobdiff_plain;f=src%2Fviews.h;h=12daabd16241041937b6bd27769586d0cf0ac2cc;hp=4e833bbee920baf543be4dce5979c21038f15f4f;hb=fd1d136a94a6d20013f38d6a997bdfefad0f5e98;hpb=1fd4f7cc977b9f1499716de10d15656bd50f4816 diff --git a/src/views.h b/src/views.h index 4e833bb..12daabd 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.1 2000/07/13 07:01:59 kevin Exp $ +** $Id: views.h,v 1.14 2000/12/20 20:08:48 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 @@ -33,6 +33,7 @@ #define __VIEWSH__ #include "wx/wx.h" +#include "docs.h" #include "imagefile.h" class ImageFileCanvas; @@ -41,7 +42,7 @@ class ImageFileView : public wxView DECLARE_DYNAMIC_CLASS(ImageFileView) wxMemoryDC m_memoryDC; - wxBitmap* m_pBitmap; + wxBitmap m_bitmap; private: ImageFileCanvas *CreateCanvas(wxView *view, wxFrame *parent); @@ -51,106 +52,207 @@ private: wxFrame *m_frame; bool m_bMinSpecified; bool m_bMaxSpecified; - double m_minPixel; - double m_maxPixel; - - static bool m_bPColoursInitialized; - static wxColour* m_pColours[256]; + double m_dMinPixel; + double m_dMaxPixel; + double m_dAutoScaleFactor; public: ImageFileView(void); - ~ImageFileView(void); + virtual ~ImageFileView(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); + void OnPlotRow (wxCommandEvent& event); + void OnPlotCol (wxCommandEvent& event); + + wxFrame* getFrame() + { return m_frame; } + + ImageFileDocument* GetDocument(void) + { return dynamic_cast(wxView::GetDocument()); } DECLARE_EVENT_TABLE() }; 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() }; -class MyTextWindow: public wxTextCtrl +class ProjectionFileCanvas; +class ProjectionFileView : public wxView { + DECLARE_DYNAMIC_CLASS(ProjectionFileView) + + wxMemoryDC m_memoryDC; + wxBitmap m_bitmap; + +private: + ProjectionFileCanvas *CreateCanvas(wxView *view, wxFrame *parent); + wxFrame *CreateChildFrame(wxDocument *doc, wxView *view); + + 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: - wxView *m_pView; + ProjectionFileView(void); + virtual ~ProjectionFileView(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 OnReconstruct (wxCommandEvent& event); + + wxFrame* getFrame () + { return m_frame; } + + ProjectionFileDocument* GetDocument(void) + { return dynamic_cast(wxView::GetDocument()); } + DECLARE_EVENT_TABLE() +}; + +class ProjectionFileCanvas: public wxScrolledWindow +{ +public: + ProjectionFileView* m_pView; - MyTextWindow(wxView *v, wxFrame *frame, const wxPoint& pos, const wxSize& size, const long style); + ProjectionFileCanvas (ProjectionFileView* v, wxFrame *frame, const wxPoint& pos, const wxSize& size, const long style); + virtual void OnDraw(wxDC& dc); }; -class TextEditView: public wxView +class PhantomCanvas; +class PhantomView : public wxView { - DECLARE_DYNAMIC_CLASS(TextEditView) + DECLARE_DYNAMIC_CLASS(PhantomView) + private: + PhantomCanvas *CreateCanvas(wxView *view, wxFrame *parent); wxFrame *CreateChildFrame(wxDocument *doc, wxView *view); + PhantomCanvas *m_canvas; + wxFrame *m_frame; + + int m_iDefaultNDet; + int m_iDefaultNView; + int m_iDefaultNSample; + int m_iDefaultGeometry; + int m_iDefaultTrace; + double m_dDefaultRotation; + double m_dDefaultFocalLength; + double m_dDefaultFieldOfView; + public: - wxFrame *frame; - MyTextWindow *textsw; - - TextEditView(): wxView() { frame = (wxFrame *) NULL; textsw = (MyTextWindow *) NULL; } - ~TextEditView(void) {} - + PhantomView(void); + virtual ~PhantomView(void); + bool OnCreate(wxDocument *doc, long flags); + void OnUpdate(wxView *sender, wxObject *hint = NULL); + bool OnClose (bool deleteWindow = true); void OnDraw(wxDC* dc); - void OnUpdate(wxView *sender, wxObject *hint = (wxObject *) NULL); - bool OnClose(bool deleteWindow = TRUE); + void OnProperties (wxCommandEvent& event); + void OnRasterize (wxCommandEvent& event); + void OnProjections (wxCommandEvent& event); + + PhantomDocument* GetDocument(void) + { return dynamic_cast(wxView::GetDocument()); } + + DECLARE_EVENT_TABLE() }; -class ProjectionFileCanvas; -class ProjectionFileView : public wxView +class PhantomCanvas: public wxScrolledWindow { - DECLARE_DYNAMIC_CLASS(ProjectionFileView) +public: + PhantomView* m_pView; + + PhantomCanvas (PhantomView* v, wxFrame *frame, const wxPoint& pos, const wxSize& size, const long style); - wxMemoryDC m_memoryDC; - wxBitmap* m_pBitmap; + virtual void OnDraw(wxDC& dc); + +}; + +class PlotFileCanvas; +class PlotFileView : public wxView +{ + DECLARE_DYNAMIC_CLASS(PlotFileView) private: - ProjectionFileCanvas *CreateCanvas(wxView *view, wxFrame *parent); + PlotFileCanvas *CreateCanvas(wxView *view, wxFrame *parent); wxFrame *CreateChildFrame(wxDocument *doc, wxView *view); - ProjectionFileCanvas *m_canvas; + PlotFileCanvas *m_canvas; wxFrame *m_frame; - - static bool m_bPColoursInitialized; - static wxColour* m_pColours[256]; + bool m_bMinSpecified; + bool m_bMaxSpecified; + double m_dMinPixel; + double m_dMaxPixel; + double m_dAutoScaleFactor; public: - ProjectionFileView(void); - ~ProjectionFileView(void); + 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 OnReconstruct (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 ProjectionFileCanvas: public wxScrolledWindow +class PlotFileCanvas: public wxScrolledWindow { public: - ProjectionFileView* m_pView; + PlotFileView* m_pView; - ProjectionFileCanvas (ProjectionFileView* v, wxFrame *frame, const wxPoint& pos, const wxSize& size, const long style); + PlotFileCanvas (PlotFileView* v, wxFrame *frame, const wxPoint& pos, const wxSize& size, const long style); virtual void OnDraw(wxDC& dc); }; + #endif +