X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=src%2Fviews.h;h=c36ad23f3eb58d71a90d762fef2a7d178a66f258;hb=5f4aaf9a5ecff050f19a405bd274353a1b935163;hp=eee1be8dc1b12c0318755709c2a5920cf5a579d7;hpb=c6cda8844a491b71759e5dd5edba830d0b809cfd;p=ctsim.git diff --git a/src/views.h b/src/views.h index eee1be8..c36ad23 100644 --- a/src/views.h +++ b/src/views.h @@ -7,9 +7,9 @@ ** Date Started: July 2000 ** ** This is part of the CTSim program -** Copyright (C) 1983-2000 Kevin Rosenberg +** Copyright (c) 1983-2001 Kevin Rosenberg ** -** $Id: views.h,v 1.26 2001/01/06 15:33:15 kevin Exp $ +** $Id: views.h,v 1.38 2001/01/28 22:45:54 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 @@ -39,17 +39,24 @@ class ImageFileCanvas; class ImageFileView : public wxView { +private: DECLARE_DYNAMIC_CLASS(ImageFileView) - wxMemoryDC m_memoryDC; + wxMemoryDC m_memoryDC; wxBitmap m_bitmap; + wxMenu* m_pMenuAnalyze; + + ImageFileCanvas *CreateCanvas (wxFrame* parent); +#if CTSIM_MDI + wxDocMDIChildFrame* m_pFrame; + wxDocMDIChildFrame* CreateChildFrame(wxDocument *doc, wxView *view); +#else + wxDocChildFrame* m_pFrame; + wxDocChildFrame* CreateChildFrame(wxDocument *doc, wxView *view); +#endif -private: - ImageFileCanvas *CreateCanvas(wxView *view, wxFrame *parent); - wxFrame *CreateChildFrame(wxDocument *doc, wxView *view); - - ImageFileCanvas *m_canvas; - wxFrame *m_frame; + ImageFileCanvas *m_pCanvas; + wxMenu* m_pFileMenu; bool m_bMinSpecified; bool m_bMaxSpecified; double m_dMinPixel; @@ -57,11 +64,23 @@ private: double m_dAutoScaleFactor; int m_iDefaultExportFormatID; - + + wxWindow* getFrameForChild() +#if CTSIM_MDI + { return theApp->getMainFrame(); } +#else + { return m_pFrame; } +#endif + public: - ImageFileView(void); - virtual ~ImageFileView(void); - + ImageFileView(); + virtual ~ImageFileView(); + void canvasClosed() + { m_pCanvas = NULL; m_pFrame = NULL; } + + wxMenu* getFileMenu() + { return m_pFileMenu; } + bool OnCreate(wxDocument *doc, long flags); void OnDraw(wxDC* dc); void OnUpdate(wxView *sender, wxObject *hint = NULL); @@ -112,10 +131,15 @@ public: void OnCompareRow (wxCommandEvent& event); void OnCompareCol (wxCommandEvent& event); - wxFrame* getFrame() - { return m_frame; } - - ImageFileDocument* GetDocument(void) +#if CTSIM_MDI + wxDocMDIChildFrame* getFrame() { return m_pFrame; } +#else + wxDocChildFrame* getFrame() { return m_pFrame; } +#endif + + wxMenu* getMenuAnalyze() { return m_pMenuAnalyze; } + + ImageFileDocument* GetDocument() { return dynamic_cast(wxView::GetDocument()); } DECLARE_EVENT_TABLE() @@ -124,19 +148,25 @@ public: class ImageFileCanvas: public wxScrolledWindow { private: - + ImageFileView* m_pView; + 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 ~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() }; @@ -150,11 +180,17 @@ class ProjectionFileView : public wxView wxBitmap m_bitmap; private: - ProjectionFileCanvas *CreateCanvas(wxView *view, wxFrame *parent); - wxFrame *CreateChildFrame(wxDocument *doc, wxView *view); + ProjectionFileCanvas *CreateCanvas (wxFrame* parent); +#if CTSIM_MDI + wxDocMDIChildFrame* m_pFrame; + wxDocMDIChildFrame* CreateChildFrame(wxDocument *doc, wxView *view); +#else + wxDocChildFrame* m_pFrame; + wxDocChildFrame* CreateChildFrame(wxDocument *doc, wxView *view); +#endif - ProjectionFileCanvas *m_canvas; - wxFrame *m_frame; + ProjectionFileCanvas *m_pCanvas; + wxMenu* m_pFileMenu; int m_iDefaultNX; int m_iDefaultNY; @@ -173,9 +209,18 @@ private: int m_iDefaultPolarInterpolation; int m_iDefaultPolarZeropad; + wxWindow* getFrameForChild() +#if CTSIM_MDI + { return theApp->getMainFrame(); } +#else + { return m_pFrame; } +#endif + public: - ProjectionFileView(void); - virtual ~ProjectionFileView(void); + ProjectionFileView(); + virtual ~ProjectionFileView(); + void canvasClosed() + { m_pCanvas = NULL; m_pFrame = NULL; } bool OnCreate(wxDocument *doc, long flags); void OnDraw(wxDC* dc); @@ -187,35 +232,54 @@ public: void OnConvertPolar (wxCommandEvent& event); void OnConvertFFTPolar (wxCommandEvent& event); - wxFrame* getFrame () - { return m_frame; } - - ProjectionFileDocument* GetDocument(void) +#if CTSIM_MDI + wxDocMDIChildFrame* getFrame() { return m_pFrame; } +#else + wxDocChildFrame* getFrame() { return m_pFrame; } +#endif + ProjectionFileCanvas* getCanvas() { return m_pCanvas; } + + wxMenu* getFileMenu() { return m_pFileMenu; } + + ProjectionFileDocument* GetDocument() { return dynamic_cast(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 +class PhantomFileView : public wxView { - DECLARE_DYNAMIC_CLASS(PhantomView) - private: - PhantomCanvas *CreateCanvas(wxView *view, wxFrame *parent); - wxFrame *CreateChildFrame(wxDocument *doc, wxView *view); + DECLARE_DYNAMIC_CLASS(PhantomFileView) + DECLARE_EVENT_TABLE() + + PhantomCanvas *CreateCanvas (wxFrame* parent); +#if CTSIM_MDI + wxDocMDIChildFrame* m_pFrame; + wxDocMDIChildFrame* CreateChildFrame(wxDocument *doc, wxView *view); +#else + wxDocChildFrame* m_pFrame; + wxDocChildFrame* CreateChildFrame(wxDocument *doc, wxView *view); +#endif - PhantomCanvas *m_canvas; - wxFrame *m_frame; + PhantomCanvas *m_pCanvas; + wxMenu* m_pFileMenu; int m_iDefaultNDet; int m_iDefaultNView; @@ -230,9 +294,18 @@ private: int m_iDefaultRasterNY; int m_iDefaultRasterNSamples; + wxWindow* getFrameForChild() +#if CTSIM_MDI + { return theApp->getMainFrame(); } +#else + { return m_pFrame; } +#endif + public: - PhantomView(void); - virtual ~PhantomView(void); + PhantomFileView(); + virtual ~PhantomFileView(); + void canvasClosed() + { m_pCanvas = NULL; m_pFrame = NULL; } bool OnCreate(wxDocument *doc, long flags); void OnUpdate(wxView *sender, wxObject *hint = NULL); @@ -242,18 +315,28 @@ public: void OnRasterize (wxCommandEvent& event); void OnProjections (wxCommandEvent& event); - PhantomDocument* GetDocument(void) - { return dynamic_cast(wxView::GetDocument()); } + PhantomFileDocument* GetDocument() + { return dynamic_cast(wxView::GetDocument()); } - DECLARE_EVENT_TABLE() + wxMenu* getFileMenu() { return m_pFileMenu; } +#if CTSIM_MDI + wxDocMDIChildFrame* getFrame() { return m_pFrame; } +#else + wxDocChildFrame* getFrame() { return m_pFrame; } +#endif }; class PhantomCanvas: public wxScrolledWindow { -public: - PhantomView* m_pView; - - PhantomCanvas (PhantomView* v, wxFrame *frame, const wxPoint& pos, const wxSize& size, const long style); +private: + PhantomFileView* m_pView; + +public: + PhantomCanvas (PhantomFileView* v, wxFrame *frame, const wxPoint& pos, const wxSize& size, const long style); + virtual ~PhantomCanvas(); + + void setView(PhantomFileView* pView) + { m_pView = pView; } virtual void OnDraw(wxDC& dc); }; @@ -263,12 +346,17 @@ class PlotFileView : public wxView DECLARE_DYNAMIC_CLASS(PlotFileView) private: - PlotFileCanvas *CreateCanvas(wxView *view, wxFrame *parent); - wxFrame *CreateChildFrame(wxDocument *doc, wxView *view); +#if CTSIM_MDI + wxDocMDIChildFrame* m_pFrame; + wxDocMDIChildFrame* CreateChildFrame(wxDocument *doc, wxView *view); +#else + wxDocChildFrame* m_pFrame; + wxDocChildFrame* CreateChildFrame(wxDocument *doc, wxView *view); +#endif - PlotFileCanvas *m_canvas; - wxFrame *m_frame; + PlotFileCanvas *m_pCanvas; EZPlot* m_pEZPlot; + wxMenu* m_pFileMenu; bool m_bMinSpecified; bool m_bMaxSpecified; @@ -276,9 +364,19 @@ private: double m_dMaxPixel; double m_dAutoScaleFactor; + PlotFileCanvas *CreateCanvas (wxFrame* parent); + wxWindow* getFrameForChild() +#if CTSIM_MDI + { return theApp->getMainFrame(); } +#else + { return m_pFrame; } +#endif + public: - PlotFileView(void); - virtual ~PlotFileView(void); + PlotFileView(); + virtual ~PlotFileView(); + void canvasClosed() + { m_pCanvas = NULL; m_pFrame = NULL; } bool OnCreate(wxDocument *doc, long flags); void OnDraw(wxDC* dc); @@ -290,10 +388,14 @@ public: void OnScaleAuto (wxCommandEvent& event); void OnScaleFull (wxCommandEvent& event); - wxFrame* getFrame () - { return m_frame; } +#if CTSIM_MDI + wxDocMDIChildFrame* getFrame() { return m_pFrame; } +#else + wxDocChildFrame* getFrame() { return m_pFrame; } +#endif - PlotFileDocument* GetDocument(void) + wxMenu* getFileMenu() { return m_pFileMenu; } + PlotFileDocument* GetDocument() { return dynamic_cast(wxView::GetDocument()); } DECLARE_EVENT_TABLE() @@ -301,11 +403,65 @@ 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); + + void setView (PlotFileView* pView) + { m_pView = pView; } +}; + + +class TextFileCanvas; +class TextFileView: public wxView +{ +private: + DECLARE_DYNAMIC_CLASS(TextFileView) + +#if CTSIM_MDI + wxDocMDIChildFrame* m_pFrame; + wxDocMDIChildFrame* CreateChildFrame(wxDocument *doc, wxView *view); +#else + wxDocChildFrame* m_pFrame; + wxDocChildFrame* CreateChildFrame(wxDocument *doc, wxView *view); +#endif + wxMenu* m_pFileMenu; + TextFileCanvas *m_pCanvas; + +public: + TextFileView() + : wxView() , m_pFrame(0), m_pCanvas(0) + {} + ~TextFileView(); + void canvasClosed() + { m_pFrame = NULL; } + + bool OnCreate (wxDocument *doc, long flags); + void OnDraw (wxDC *dc); + void OnUpdate (wxView *sender, wxObject *hint = (wxObject *) NULL); + bool OnClose (bool deleteWindow = TRUE); + + TextFileCanvas* getTextCtrl() { return m_pCanvas; } + wxMenu* getFileMenu() { return m_pFileMenu; } +#if CTSIM_MDI + wxDocMDIChildFrame* getFrame() { return m_pFrame; } +#else + wxDocChildFrame* getFrame() { return m_pFrame; } +#endif +}; + +class TextFileCanvas: public wxTextCtrl +{ + TextFileView *m_pView; + +public: + TextFileCanvas (TextFileView *v, wxFrame *frame, const wxPoint& pos, const wxSize& size, long style); + ~TextFileCanvas (); };