** This is part of the CTSim program
** Copyright (c) 1983-2001 Kevin Rosenberg
**
-** $Id: docs.h,v 1.21 2001/02/02 00:46:38 kevin Exp $
+** $Id: docs.h,v 1.30 2001/03/11 18:52:03 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
#include "phantom.h"
#include "projections.h"
#include "plotfile.h"
+#include "threadrecon.h"
class ProjectionFileView;
class PhantomFileView;
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;
-
+
public:
virtual bool OnSaveDocument (const wxString& filename);
virtual bool OnOpenDocument (const wxString& filename);
m_pProjectionFile = new Projections;
}
- virtual ~ProjectionFileDocument ()
- {
- delete m_pProjectionFile;
- }
+ virtual ~ProjectionFileDocument ();
const Projections& getProjections () const { return *m_pProjectionFile; }
Projections& getProjections () { return *m_pProjectionFile; }
ProjectionFileView* getView() const;
bool getBadFileOpen() const { return m_bBadFileOpen; }
void setBadFileOpen() { m_bBadFileOpen = true; }
+ void Activate();
};
-class PhantomFileDocument: public wxDocument
+class PhantomFileDocument: public BackgroundProcessingDocument
{
private:
DECLARE_DYNAMIC_CLASS(PhantomFileDocument)
: m_idPhantom(Phantom::PHM_INVALID), m_bBadFileOpen(false)
{}
- virtual ~PhantomFileDocument ()
- {}
+ virtual ~PhantomFileDocument ();
const int getPhantomID () const { return m_idPhantom; }
PhantomFileView* getView() const;
bool getBadFileOpen() const { return m_bBadFileOpen; }
void setBadFileOpen() { m_bBadFileOpen = true; }
+ void Activate();
};
PlotFileView* getView() const;
bool getBadFileOpen() const { return m_bBadFileOpen; }
void setBadFileOpen() { m_bBadFileOpen = true; }
+ void Activate();
};
int ny() const { return m_ny; }
ImageFileArray getArray() { return m_array; }
ImageFileArrayConst getArray() const { return m_array; }
+ void Activate();
};
#endif // wxUSE_GLCANVAS