r428: no message
[ctsim.git] / src / views.h
index ca998f2bdcb6adc793f9ae529655e382ac28344f..834bdfeb3468d45898647982f18879c2fcda97bc 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2000 Kevin Rosenberg
 **
-**  $Id: views.h,v 1.27 2001/01/20 08:10:33 kevin Exp $
+**  $Id: views.h,v 1.28 2001/01/20 17:43:41 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
 class ImageFileCanvas;
 class ImageFileView : public wxView
 {
+private:
   DECLARE_DYNAMIC_CLASS(ImageFileView)
     
-    wxMemoryDC m_memoryDC;
+  wxMemoryDC m_memoryDC;
   wxBitmap m_bitmap;
   
-private:
   ImageFileCanvas *CreateCanvas(wxView *view, wxFrame *parent);
   wxFrame *CreateChildFrame(wxDocument *doc, wxView *view);
+  wxMenu* m_pFileMenu;
   
   ImageFileCanvas *m_canvas;
   wxFrame *m_frame;
@@ -58,9 +59,9 @@ private:
   
   int m_iDefaultExportFormatID;
 
-  wxFrame* getFrameForChild() 
+  wxWindow* getFrameForChild() 
 #if CTSIM_MDI
-  { return theApp->getMainFrame(); }
+  { return theApp->getMainFrame()->GetClientWindow(); }
 #else
   { return m_frame; }
 #endif
@@ -68,7 +69,10 @@ private:
 public:
   ImageFileView(void);
   virtual ~ImageFileView(void);
-  
+
+  wxMenu* getFileMenu()
+  { return m_pFileMenu; }
+
   bool OnCreate(wxDocument *doc, long flags);
   void OnDraw(wxDC* dc);
   void OnUpdate(wxView *sender, wxObject *hint = NULL);
@@ -138,8 +142,7 @@ private:
   
 public:
   ImageFileCanvas (ImageFileView* v, wxFrame *frame, const wxPoint& pos, const wxSize& size, const long style);
-  virtual ~ImageFileCanvas()
-  {}
+  virtual ~ImageFileCanvas();
 
   virtual void OnDraw(wxDC& dc);
   void OnMouseEvent(wxMouseEvent& event);
@@ -147,6 +150,9 @@ public:
   bool GetCurrentCursor (int& x, int& y);
 
   virtual wxSize GetBestSize() const;
+  void setView(ImageFileView* pView)
+  { m_pView = pView; }
+
 
   DECLARE_EVENT_TABLE()
 };
@@ -166,6 +172,7 @@ private:
   
   ProjectionFileCanvas *m_canvas;
   wxFrame *m_frame;
+  wxMenu* m_pFileMenu;
   
   int m_iDefaultNX;
   int m_iDefaultNY;
@@ -184,9 +191,9 @@ private:
   int m_iDefaultPolarInterpolation;
   int m_iDefaultPolarZeropad;
 
-  wxFrame* getFrameForChild() 
+  wxWindow* getFrameForChild() 
 #if CTSIM_MDI
-  { return theApp->getMainFrame(); }
+  { return theApp->getMainFrame()->GetClientWindow(); }
 #else
   { return m_frame; }
 #endif
@@ -205,9 +212,10 @@ public:
   void OnConvertPolar (wxCommandEvent& event);
   void OnConvertFFTPolar (wxCommandEvent& event);
   
-  wxFrame* getFrame ()
-  { return m_frame; }
+  wxFrame* getFrame ()   { return m_frame; }
   
+  wxMenu* getFileMenu()  { return m_pFileMenu; }
+
   ProjectionFileDocument* GetDocument(void) 
   { return dynamic_cast<ProjectionFileDocument*>(wxView::GetDocument()); }
   DECLARE_EVENT_TABLE()
@@ -220,26 +228,28 @@ private:
 
 public:  
   ProjectionFileCanvas (ProjectionFileView* v, wxFrame *frame, const wxPoint& pos, const wxSize& size, const long style);
-  virtual ~ProjectionFileCanvas() 
-  {}
+  virtual ~ProjectionFileCanvas() ;
 
   virtual wxSize GetBestSize() const;
-
   virtual void OnDraw(wxDC& dc);
+  void setView(ProjectionFileView* pView)
+  { m_pView = pView; }
 };
 
 
 class PhantomCanvas;
 class PhantomView : public wxView
 {
+private:
   DECLARE_DYNAMIC_CLASS(PhantomView)
+  DECLARE_EVENT_TABLE()
     
-private:
   PhantomCanvas *CreateCanvas(wxView *view, wxFrame *parent);
   wxFrame *CreateChildFrame(wxDocument *doc, wxView *view);
   
   PhantomCanvas *m_canvas;
   wxFrame *m_frame;
+  wxMenu* m_pFileMenu;
   
   int m_iDefaultNDet;
   int m_iDefaultNView;
@@ -254,9 +264,9 @@ private:
   int m_iDefaultRasterNY;
   int m_iDefaultRasterNSamples;
 
-  wxFrame* getFrameForChild() 
+  wxWindow* getFrameForChild() 
 #if CTSIM_MDI
-  { return theApp->getMainFrame(); }
+  { return theApp->getMainFrame()->GetClientWindow(); }
 #else
   { return m_frame; }
 #endif
@@ -276,7 +286,7 @@ public:
   PhantomDocument* GetDocument(void) 
   { return dynamic_cast<PhantomDocument*>(wxView::GetDocument()); }
   
-  DECLARE_EVENT_TABLE()
+  wxMenu* getFileMenu() { return m_pFileMenu; }
 };
 
 class PhantomCanvas: public wxScrolledWindow
@@ -286,9 +296,10 @@ private:
 
 public:  
   PhantomCanvas (PhantomView* v, wxFrame *frame, const wxPoint& pos, const wxSize& size, const long style);
-  virtual ~PhantomCanvas()
-  {}
+  virtual ~PhantomCanvas();
 
+  void setView(PhantomView* pView)
+  { m_pView = pView; }
   virtual void OnDraw(wxDC& dc);
 };
 
@@ -303,6 +314,7 @@ private:
   
   PlotFileCanvas *m_canvas;
   wxFrame *m_frame;
+  wxMenu* m_pFileMenu;
   EZPlot* m_pEZPlot;
   
   bool m_bMinSpecified;
@@ -311,9 +323,9 @@ private:
   double m_dMaxPixel;
   double m_dAutoScaleFactor;
   
-  wxFrame* getFrameForChild() 
+  wxWindow* getFrameForChild() 
 #if CTSIM_MDI
-  { return theApp->getMainFrame(); }
+  { return theApp->getMainFrame()->GetClientWindow(); }
 #else
   { return m_frame; }
 #endif
@@ -335,6 +347,7 @@ public:
   wxFrame* getFrame ()
   { return m_frame; }
   
+  wxMenu* getFileMenu() { return m_pFileMenu; }
   PlotFileDocument* GetDocument(void) 
   { return dynamic_cast<PlotFileDocument*>(wxView::GetDocument()); }
   
@@ -348,10 +361,50 @@ private:
   
 public:
   PlotFileCanvas (PlotFileView* v, wxFrame *frame, const wxPoint& pos, const wxSize& size, const long style);
-  virtual ~PlotFileCanvas()
-  {}
-
+  virtual ~PlotFileCanvas();
   virtual void OnDraw(wxDC& dc);
+
+  void setView (PlotFileView* pView)
+  { m_pView = pView; }
+};
+
+
+class TextEditCanvas;
+class TextEditView: public wxView
+{
+private:
+  DECLARE_DYNAMIC_CLASS(TextEditView)
+
+    wxFrame *m_pFrame;
+    wxMenu* m_pFileMenu;
+    TextEditCanvas *m_pCanvas;
+  
+public:
+    TextEditView() 
+      : wxView() , m_pFrame(0), m_pCanvas(0)
+    {}
+    ~TextEditView();
+
+   wxFrame *CreateChildFrame(wxDocument *doc, wxView *view);
+
+    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; }
+};
+
+class TextEditCanvas: public wxTextCtrl
+{
+    TextEditView *m_pView;
+
+public:    
+    TextEditCanvas (TextEditView *v, wxFrame *frame, const wxPoint& pos, const wxSize& size, long style);
+    ~TextEditCanvas ();
 };