r7061: initial property settings
[ctsim.git] / src / docs.h
index 71ce6e3771eb05de43d1d2912ed5bf6b49aa95bb..d0895f00ca1bcd4ff5be80514076311331a9eada 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (c) 1983-2001 Kevin Rosenberg
 **
-**  $Id: docs.h,v 1.23 2001/02/23 18:56:56 kevin Exp $
+**  $Id$
 **
 **  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
 **  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 ******************************************************************************/
 
-#ifdef __GNUG__
-// #pragma interface
-#endif
-
 #ifndef __DOCSH__
 #define __DOCSH__
 
@@ -48,6 +44,7 @@ class PlotFileView;
 class TextFileView;
 class Graph3dFileView;
 
+
 class ImageFileDocument: public wxDocument
 {
 private:
@@ -84,19 +81,40 @@ public:
     ImageFileView* getView() const;
     bool getBadFileOpen() const { return m_bBadFileOpen; }
     void setBadFileOpen() { m_bBadFileOpen = true; }
+    void Activate();
 };
 
+class BackgroundProcessingDocument : public wxDocument
+{
+private:
+    DECLARE_DYNAMIC_CLASS(BackgroundProcessingDocument)
+#ifdef HAVE_WXTHREADS
+    typedef BackgroundSupervisor BackgroundObject;
+    typedef std::vector<BackgroundObject*> BackgroundContainer;
+    BackgroundContainer m_vecpBackgroundSupervisors;
+    wxCriticalSection m_criticalSection;
+#endif
 
-class ProjectionFileDocument: public wxDocument
+public:
+  BackgroundProcessingDocument()
+    : wxDocument()
+      {}
+
+  void cancelRunningTasks();
+#ifdef HAVE_WXTHREADS
+  void addBackgroundSupervisor (BackgroundSupervisor* pSupervisor);
+  void removeBackgroundSupervisor (BackgroundSupervisor* pSupervisor);
+#endif
+
+  DECLARE_EVENT_TABLE()
+};
+
+class ProjectionFileDocument: public BackgroundProcessingDocument
 {
 private:
     DECLARE_DYNAMIC_CLASS(ProjectionFileDocument)
     Projections* m_pProjectionFile;
     bool m_bBadFileOpen;
-    typedef BackgroundSupervisor BackgroundObject;
-    typedef std::vector<BackgroundObject*> BackgroundContainer ;
-    BackgroundContainer m_vecpBackgroundSupervisors;
-    wxCriticalSection m_criticalSection;
     
 public:
     virtual bool OnSaveDocument (const wxString& filename);
@@ -123,18 +141,11 @@ public:
     ProjectionFileView* getView() const;
     bool getBadFileOpen() const { return m_bBadFileOpen; }
     void setBadFileOpen() { m_bBadFileOpen = true; }
-
-    void OnAddBackground (wxCommandEvent& event);
-    void OnRemoveBackground (wxCommandEvent& event);
-
-    void addReconstructor (BackgroundSupervisor* pRecon);
-    void removeReconstructor (BackgroundSupervisor* pRecon);
-
-    DECLARE_EVENT_TABLE()
+    void Activate();
 };
 
 
-class PhantomFileDocument: public wxDocument
+class PhantomFileDocument: public BackgroundProcessingDocument
 {
 private:
     DECLARE_DYNAMIC_CLASS(PhantomFileDocument)
@@ -148,8 +159,7 @@ public:
        : m_idPhantom(Phantom::PHM_INVALID), m_bBadFileOpen(false)
     {}
 
-    virtual ~PhantomFileDocument () 
-    {}
+    virtual ~PhantomFileDocument ();
 
     const int getPhantomID () const { return m_idPhantom; }
 
@@ -166,6 +176,7 @@ public:
     PhantomFileView* getView() const;
     bool getBadFileOpen() const { return m_bBadFileOpen; }
     void setBadFileOpen() { m_bBadFileOpen = true; }
+    void Activate();
 };
 
 
@@ -201,6 +212,7 @@ public:
     PlotFileView* getView() const;
     bool getBadFileOpen() const { return m_bBadFileOpen; }
     void setBadFileOpen() { m_bBadFileOpen = true; }
+    void Activate();
 };
 
 
@@ -237,7 +249,7 @@ typedef GLfloat glTripleFloat[3];
 
 class Graph3dFileDocument: public wxDocument
 {
-  friend Graph3dFileView;
+  friend class Graph3dFileView;
 
  private:
   DECLARE_DYNAMIC_CLASS(Graph3dFileDocument)
@@ -266,6 +278,7 @@ class Graph3dFileDocument: public wxDocument
   int ny() const { return m_ny; }
   ImageFileArray getArray() { return m_array; }
   ImageFileArrayConst getArray() const { return m_array; }
+  void Activate();
 };
 #endif // wxUSE_GLCANVAS