** Date Started: July 2000
**
** This is part of the CTSim program
-** Copyright (c) 1983-2001 Kevin Rosenberg
-**
-** $Id: docs.h,v 1.19 2001/01/30 10:58:13 kevin Exp $
+** Copyright (c) 1983-2009 Kevin Rosenberg
**
** 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__
#include "phantom.h"
#include "projections.h"
#include "plotfile.h"
+#include "threadrecon.h"
class ProjectionFileView;
class PhantomFileView;
class TextFileView;
class Graph3dFileView;
+
class ImageFileDocument: public wxDocument
{
private:
virtual bool IsModified () const;
virtual bool Revert ();
virtual void Modify (bool mod);
-
- ImageFileDocument ()
+
+ ImageFileDocument ()
: m_bBadFileOpen(false)
{
m_pImageFile = new ImageFile;
}
- virtual ~ImageFileDocument ()
+ 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;
}
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
+
+public:
+ BackgroundProcessingDocument()
+ : wxDocument()
+ {}
+
+ void cancelRunningTasks();
+#ifdef HAVE_WXTHREADS
+ void addBackgroundSupervisor (BackgroundSupervisor* pSupervisor);
+ void removeBackgroundSupervisor (BackgroundSupervisor* pSupervisor);
+#endif
+
+ DECLARE_EVENT_TABLE()
+};
-class ProjectionFileDocument: public wxDocument
+class ProjectionFileDocument: public BackgroundProcessingDocument
{
private:
DECLARE_DYNAMIC_CLASS(ProjectionFileDocument)
virtual bool OnOpenDocument (const wxString& filename);
virtual bool IsModified () const;
virtual void Modify (bool mod);
-
- ProjectionFileDocument ()
+
+ ProjectionFileDocument ()
: m_bBadFileOpen(false)
{
m_pProjectionFile = new Projections;
}
- virtual ~ProjectionFileDocument ()
- {
- delete m_pProjectionFile;
- }
+ virtual ~ProjectionFileDocument ();
- const Projections& getProjections () const { return *m_pProjectionFile; }
- Projections& getProjections () { return *m_pProjectionFile; }
+ const Projections& getProjections () const { return *m_pProjectionFile; }
+ Projections& getProjections () { return *m_pProjectionFile; }
void setProjections (Projections* pProjections)
{ delete 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)
bool m_bBadFileOpen;
public:
- PhantomFileDocument ()
- : m_idPhantom(Phantom::PHM_INVALID), m_bBadFileOpen(false)
+ PhantomFileDocument ()
+ : m_idPhantom(Phantom::PHM_INVALID), m_bBadFileOpen(false)
{}
- virtual ~PhantomFileDocument ()
- {}
+ virtual ~PhantomFileDocument ();
const int getPhantomID () const { return m_idPhantom; }
const wxString& getPhantomName () const { return m_namePhantom; }
- const Phantom& getPhantom () const { return m_phantom; }
+ const Phantom& getPhantom () const { return m_phantom; }
- Phantom& getPhantom () { return m_phantom; }
+ Phantom& getPhantom () { return m_phantom; }
virtual bool OnOpenDocument (const wxString& filename);
virtual bool OnSaveDocument (const wxString& filename);
PhantomFileView* getView() const;
bool getBadFileOpen() const { return m_bBadFileOpen; }
void setBadFileOpen() { m_bBadFileOpen = true; }
+ void Activate();
};
bool m_bBadFileOpen;
public:
- PlotFileDocument ()
+ PlotFileDocument ()
: m_bBadFileOpen(false)
{}
- virtual ~PlotFileDocument ()
- {}
+ virtual ~PlotFileDocument ()
+ {}
const wxString& getPlotName () const
- { return m_namePlot; }
+ { return m_namePlot; }
const PlotFile& getPlotFile () const
- { return m_plot; }
+ { return m_plot; }
PlotFile& getPlotFile ()
- { return m_plot; }
+ { return m_plot; }
virtual bool OnOpenDocument (const wxString& filename);
virtual bool OnSaveDocument (const wxString& filename);
PlotFileView* getView() const;
bool getBadFileOpen() const { return m_bBadFileOpen; }
void setBadFileOpen() { m_bBadFileOpen = true; }
+ void Activate();
};
bool m_bBadFileOpen;
public:
- TextFileDocument(void)
+ TextFileDocument(void)
: m_bBadFileOpen(false)
{}
};
-
+#if wxUSE_GLCANVAS
#include <GL/gl.h>
#include <GL/glu.h>
class Graph3dFileDocument: public wxDocument
{
- friend Graph3dFileView;
+ friend class Graph3dFileView;
private:
DECLARE_DYNAMIC_CLASS(Graph3dFileDocument)
public:
Graph3dFileDocument(void);
- virtual ~Graph3dFileDocument(void);
-
+ virtual ~Graph3dFileDocument(void);
+
virtual bool OnSaveDocument (const wxString& filename);
virtual bool OnOpenDocument (const wxString& filename);
virtual bool IsModified () const;
bool getBadFileOpen() const { return m_bBadFileOpen; }
void setBadFileOpen() { m_bBadFileOpen = true; }
bool createFromImageFile (const ImageFile& rImageFile);
+
+ int nx() const { return m_nx; }
+ int ny() const { return m_ny; }
+ ImageFileArray getArray() { return m_array; }
+ ImageFileArrayConst getArray() const { return m_array; }
+ void Activate();
};
+#endif // wxUSE_GLCANVAS
+
#endif