r472: Initial import of Graph3d Doc/View
[ctsim.git] / src / docs.h
index 6db956883128ae8b115b89de9a7c9d9408e2d2ff..50acf1e3e9d11859bdf7f6034527c695ab51e47c 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (c) 1983-2001 Kevin Rosenberg
 **
-**  $Id: docs.h,v 1.15 2001/01/28 19:10:18 kevin Exp $
+**  $Id: docs.h,v 1.18 2001/01/30 07:32:13 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
@@ -45,26 +45,44 @@ class PhantomFileView;
 class ImageFileView;
 class PlotFileView;
 class TextFileView;
+class Graph3dFileView;
 
 class ImageFileDocument: public wxDocument
 {
 private:
     DECLARE_DYNAMIC_CLASS(ImageFileDocument)
-    ImageFile m_imageFile;
+    ImageFile* m_pImageFile;
+    bool m_bBadFileOpen;
 
 public:
     virtual bool OnSaveDocument (const wxString& filename);
     virtual bool OnOpenDocument (const wxString& filename);
     virtual bool IsModified () const;
+    virtual bool Revert ();
     virtual void Modify (bool mod);
     
-    ImageFileDocument () {}
-    virtual ~ImageFileDocument () {}
+    ImageFileDocument () 
+      : m_bBadFileOpen(false)
+    {
+      m_pImageFile = new ImageFile;
+    }
+
+    virtual ~ImageFileDocument () 
+    {
+      delete m_pImageFile;
+    }
+
+    const ImageFile& getImageFile() const { return *m_pImageFile; }
+    ImageFile& getImageFile() { return *m_pImageFile; }
+    void setImageFile (ImageFile* pImageFile)
+    { 
+      delete m_pImageFile;
+      m_pImageFile = pImageFile;
+    }
 
-    const ImageFile& getImageFile() const { return m_imageFile; }
-
-    ImageFile& getImageFile() { return m_imageFile; }
     ImageFileView* getView() const;
+    bool getBadFileOpen() const { return m_bBadFileOpen; }
+    void setBadFileOpen() { m_bBadFileOpen = true; }
 };
 
 
@@ -72,7 +90,8 @@ class ProjectionFileDocument: public wxDocument
 {
 private:
     DECLARE_DYNAMIC_CLASS(ProjectionFileDocument)
-    Projections m_projectionFile;
+    Projections* m_pProjectionFile;
+    bool m_bBadFileOpen;
 
 public:
     virtual bool OnSaveDocument (const wxString& filename);
@@ -80,13 +99,28 @@ public:
     virtual bool IsModified () const;
     virtual void Modify (bool mod);
     
-    ProjectionFileDocument () {}
-    virtual ~ProjectionFileDocument () {}
+    ProjectionFileDocument () 
+          : m_bBadFileOpen(false)
+    {
+      m_pProjectionFile = new Projections;
+    }
+
+    virtual ~ProjectionFileDocument () 
+    {
+      delete m_pProjectionFile;
+    }
 
-    const Projections& getProjections () const { return m_projectionFile; }
-    Projections& getProjections ()     { return m_projectionFile; }
+    const Projections& getProjections () const { return *m_pProjectionFile; }
+    Projections& getProjections ()     { return *m_pProjectionFile; }
+
+    void setProjections (Projections* pProjections)
+    { delete m_pProjectionFile;
+      m_pProjectionFile = pProjections;
+    }
 
     ProjectionFileView* getView() const;
+    bool getBadFileOpen() const { return m_bBadFileOpen; }
+    void setBadFileOpen() { m_bBadFileOpen = true; }
 };
 
 
@@ -97,10 +131,11 @@ private:
     Phantom m_phantom;
     int m_idPhantom;
     wxString m_namePhantom;
+    bool m_bBadFileOpen;
 
 public:
     PhantomFileDocument () 
-       : m_idPhantom(Phantom::PHM_INVALID)
+       : m_idPhantom(Phantom::PHM_INVALID), m_bBadFileOpen(false)
     {}
 
     virtual ~PhantomFileDocument () 
@@ -119,6 +154,8 @@ public:
     virtual bool IsModified () const;
     virtual void Modify (bool mod);
     PhantomFileView* getView() const;
+    bool getBadFileOpen() const { return m_bBadFileOpen; }
+    void setBadFileOpen() { m_bBadFileOpen = true; }
 };
 
 
@@ -128,10 +165,12 @@ private:
     DECLARE_DYNAMIC_CLASS(PlotFileDocument)
     PlotFile m_plot;
     wxString m_namePlot;
+    bool m_bBadFileOpen;
 
 public:
     PlotFileDocument () 
-       {}
+      : m_bBadFileOpen(false)
+    {}
 
     virtual ~PlotFileDocument () 
        {}
@@ -150,28 +189,67 @@ public:
     virtual bool IsModified () const;
     virtual void Modify (bool mod);
     PlotFileView* getView() const;
+    bool getBadFileOpen() const { return m_bBadFileOpen; }
+    void setBadFileOpen() { m_bBadFileOpen = true; }
 };
 
-#include "views.h"
 
 class TextFileDocument: public wxDocument
 {
  private:
   DECLARE_DYNAMIC_CLASS(TextFileDocument)
+  bool m_bBadFileOpen;
 
  public:
-  TextFileDocument(void) {}
+  TextFileDocument(void) 
+        : m_bBadFileOpen(false)
+  {}
+
   virtual ~TextFileDocument(void) {}
 
   virtual bool OnSaveDocument(const wxString& filename);
   virtual bool OnOpenDocument(const wxString& filename);
   virtual bool IsModified(void) const;
 
-  wxTextCtrl* getTextCtrl()
-  { return dynamic_cast<TextFileView*>(GetFirstView())->getTextCtrl(); }
+  wxTextCtrl* getTextCtrl();
 
   TextFileView* getView() const;
+  bool getBadFileOpen() const { return m_bBadFileOpen; }
+  void setBadFileOpen() { m_bBadFileOpen = true; }
 };
 
 
+
+class Graph3dFileDocument: public wxDocument
+{
+ private:
+  DECLARE_DYNAMIC_CLASS(Graph3dFileDocument)
+  ImageFile* m_pImageFile;
+  bool m_bBadFileOpen;
+
+ public:
+  Graph3dFileDocument(void) 
+        : m_bBadFileOpen(false)
+  {
+        m_pImageFile = new ImageFile;
+  }
+
+  virtual ~Graph3dFileDocument(void) 
+  {
+    delete m_pImageFile;
+  }
+
+  virtual bool OnSaveDocument (const wxString& filename);
+  virtual bool OnOpenDocument (const wxString& filename);
+  virtual bool IsModified () const;
+
+  Graph3dFileView* getView() const;
+  bool getBadFileOpen() const { return m_bBadFileOpen; }
+  void setBadFileOpen()       { m_bBadFileOpen = true; }
+  void setImageFile (ImageFile* pImageFile)   { delete m_pImageFile;  m_pImageFile = pImageFile; }
+  ImageFile& getImageFile()                   { return *m_pImageFile; }
+  const ImageFile& getImageFile() const       { return *m_pImageFile; }
+
+};
+
 #endif