r443: no message
[ctsim.git] / src / views.h
index 834bdfeb3468d45898647982f18879c2fcda97bc..81cf6a7ccc1b214fa3fb3a7dfd42089107308ac4 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2000 Kevin Rosenberg
 **
-**  $Id: views.h,v 1.28 2001/01/20 17:43:41 kevin Exp $
+**  $Id: views.h,v 1.33 2001/01/27 01:51:47 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
@@ -46,11 +46,16 @@ private:
   wxBitmap m_bitmap;
   
   ImageFileCanvas *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
   wxMenu* m_pFileMenu;
   
   ImageFileCanvas *m_canvas;
-  wxFrame *m_frame;
   bool m_bMinSpecified;
   bool m_bMaxSpecified;
   double m_dMinPixel;
@@ -63,12 +68,14 @@ private:
 #if CTSIM_MDI
   { return theApp->getMainFrame()->GetClientWindow(); }
 #else
-  { return m_frame; }
+  { return m_pFrame; }
 #endif
 
 public:
-  ImageFileView(void);
-  virtual ~ImageFileView(void);
+  ImageFileView();
+  virtual ~ImageFileView();
+  void canvasClosed()
+  { m_canvas = NULL; m_pFrame = NULL; }
 
   wxMenu* getFileMenu()
   { return m_pFileMenu; }
@@ -124,9 +131,9 @@ public:
   void OnCompareCol (wxCommandEvent& event);
   
   wxFrame* getFrame()
-  { return m_frame; }
+  { return m_pFrame; }
   
-  ImageFileDocument* GetDocument(void
+  ImageFileDocument* GetDocument() 
   { return dynamic_cast<ImageFileDocument*>(wxView::GetDocument()); }
   
   DECLARE_EVENT_TABLE()
@@ -135,10 +142,9 @@ public:
 class ImageFileCanvas: public wxScrolledWindow
 {
 private:
-  
+  ImageFileView* m_pView;
   int m_xCursor;
   int m_yCursor;
-  ImageFileView* m_pView;
   
 public:
   ImageFileCanvas (ImageFileView* v, wxFrame *frame, const wxPoint& pos, const wxSize& size, const long style);
@@ -168,10 +174,15 @@ class ProjectionFileView : public wxView
   
 private:
   ProjectionFileCanvas *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
   
   ProjectionFileCanvas *m_canvas;
-  wxFrame *m_frame;
   wxMenu* m_pFileMenu;
   
   int m_iDefaultNX;
@@ -195,12 +206,14 @@ private:
 #if CTSIM_MDI
   { return theApp->getMainFrame()->GetClientWindow(); }
 #else
-  { return m_frame; }
+  { return m_pFrame; }
 #endif
 
 public:
-  ProjectionFileView(void);
-  virtual ~ProjectionFileView(void);
+  ProjectionFileView();
+  virtual ~ProjectionFileView();
+  void canvasClosed()
+  { m_canvas = NULL; m_pFrame = NULL; }
   
   bool OnCreate(wxDocument *doc, long flags);
   void OnDraw(wxDC* dc);
@@ -212,11 +225,11 @@ public:
   void OnConvertPolar (wxCommandEvent& event);
   void OnConvertFFTPolar (wxCommandEvent& event);
   
-  wxFrame* getFrame ()   { return m_frame; }
+  wxFrame* getFrame ()   { return m_pFrame; }
   
   wxMenu* getFileMenu()  { return m_pFileMenu; }
 
-  ProjectionFileDocument* GetDocument(void
+  ProjectionFileDocument* GetDocument() 
   { return dynamic_cast<ProjectionFileDocument*>(wxView::GetDocument()); }
   DECLARE_EVENT_TABLE()
 };
@@ -238,17 +251,22 @@ public:
 
 
 class PhantomCanvas;
-class PhantomView : public wxView
+class PhantomFileView : public wxView
 {
 private:
-  DECLARE_DYNAMIC_CLASS(PhantomView)
+  DECLARE_DYNAMIC_CLASS(PhantomFileView)
   DECLARE_EVENT_TABLE()
     
   PhantomCanvas *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
   
   PhantomCanvas *m_canvas;
-  wxFrame *m_frame;
   wxMenu* m_pFileMenu;
   
   int m_iDefaultNDet;
@@ -268,12 +286,14 @@ private:
 #if CTSIM_MDI
   { return theApp->getMainFrame()->GetClientWindow(); }
 #else
-  { return m_frame; }
+  { return m_pFrame; }
 #endif
 
 public:
-  PhantomView(void);
-  virtual ~PhantomView(void);
+  PhantomFileView();
+  virtual ~PhantomFileView();
+  void canvasClosed()
+  { m_canvas = NULL; m_pFrame = NULL; }
   
   bool OnCreate(wxDocument *doc, long flags);
   void OnUpdate(wxView *sender, wxObject *hint = NULL);
@@ -283,22 +303,23 @@ public:
   void OnRasterize (wxCommandEvent& event);
   void OnProjections (wxCommandEvent& event);
   
-  PhantomDocument* GetDocument(void
-  { return dynamic_cast<PhantomDocument*>(wxView::GetDocument()); }
+  PhantomFileDocument* GetDocument(
+  { return dynamic_cast<PhantomFileDocument*>(wxView::GetDocument()); }
   
   wxMenu* getFileMenu() { return m_pFileMenu; }
+  wxFrame* getFrame() { return m_pFrame; }
 };
 
 class PhantomCanvas: public wxScrolledWindow
 {
 private:
-  PhantomView* m_pView;
+  PhantomFileView* m_pView;
 
 public:  
-  PhantomCanvas (PhantomView* v, wxFrame *frame, const wxPoint& pos, const wxSize& size, const long style);
+  PhantomCanvas (PhantomFileView* v, wxFrame *frame, const wxPoint& pos, const wxSize& size, const long style);
   virtual ~PhantomCanvas();
 
-  void setView(PhantomView* pView)
+  void setView(PhantomFileView* pView)
   { m_pView = pView; }
   virtual void OnDraw(wxDC& dc);
 };
@@ -310,10 +331,15 @@ class PlotFileView : public wxView
     
 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;
   wxMenu* m_pFileMenu;
   EZPlot* m_pEZPlot;
   
@@ -327,12 +353,14 @@ private:
 #if CTSIM_MDI
   { return theApp->getMainFrame()->GetClientWindow(); }
 #else
-  { return m_frame; }
+  { return m_pFrame; }
 #endif
 
 public:
-  PlotFileView(void);
-  virtual ~PlotFileView(void);
+  PlotFileView();
+  virtual ~PlotFileView();
+  void canvasClosed()
+  { m_canvas = NULL; m_pFrame = NULL; }
   
   bool OnCreate(wxDocument *doc, long flags);
   void OnDraw(wxDC* dc);
@@ -345,10 +373,10 @@ public:
   void OnScaleFull (wxCommandEvent& event);
   
   wxFrame* getFrame ()
-  { return m_frame; }
+  { return m_pFrame; }
   
   wxMenu* getFileMenu() { return m_pFileMenu; }
-  PlotFileDocument* GetDocument(void
+  PlotFileDocument* GetDocument() 
   { return dynamic_cast<PlotFileDocument*>(wxView::GetDocument()); }
   
   DECLARE_EVENT_TABLE()
@@ -370,41 +398,47 @@ public:
 };
 
 
-class TextEditCanvas;
-class TextEditView: public wxView
+class TextFileCanvas;
+class TextFileView: public wxView
 {
 private:
-  DECLARE_DYNAMIC_CLASS(TextEditView)
+  DECLARE_DYNAMIC_CLASS(TextFileView)
 
-    wxFrame *m_pFrame;
+#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;
-    TextEditCanvas *m_pCanvas;
+    TextFileCanvas *m_pCanvas;
   
 public:
-    TextEditView() 
+    TextFileView() 
       : wxView() , m_pFrame(0), m_pCanvas(0)
     {}
-    ~TextEditView();
-
-   wxFrame *CreateChildFrame(wxDocument *doc, wxView *view);
+    ~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);
 
-    TextEditCanvas* getTextCtrl() { return m_pCanvas; }
-
-  wxMenu* getFileMenu() { return m_pFileMenu; }
+    TextFileCanvas* getTextCtrl() { return m_pCanvas; }
+    wxFrame* getFrame() { return m_pFrame; }
+    wxMenu* getFileMenu() { return m_pFileMenu; }
 };
 
-class TextEditCanvas: public wxTextCtrl
+class TextFileCanvas: public wxTextCtrl
 {
-    TextEditView *m_pView;
+    TextFileView *m_pView;
 
 public:    
-    TextEditCanvas (TextEditView *v, wxFrame *frame, const wxPoint& pos, const wxSize& size, long style);
-    ~TextEditCanvas ();
+    TextFileCanvas (TextFileView *v, wxFrame *frame, const wxPoint& pos, const wxSize& size, long style);
+    ~TextFileCanvas ();
 };