r186: *** empty log message ***
[ctsim.git] / src / dlgprojections.h
index 440d2ff2ceaf744759017ca387757b46060dd43c..b8798bb66fd486f65a46cc389b51322473614e60 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2000 Kevin Rosenberg
 **
-**  $Id: dlgprojections.h,v 1.1 2000/08/27 20:32:55 kevin Exp $
+**  $Id: dlgprojections.h,v 1.2 2000/08/31 08:38:58 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
@@ -34,6 +34,7 @@
 
 #include "wx/setup.h"
 #include "wx/dialog.h"
+#include "wx/dcmemory.h"
 
 class wxButton;
 class wxStaticText;
@@ -69,30 +70,51 @@ public:
    void OnCancel(wxCommandEvent& event);
        // callback to disable "hard" window closing
    void OnClose(wxCloseEvent& event);
+   void OnPaint(wxPaintEvent& event);
+
+   void OnPause(wxCommandEvent& event);
+   void OnStep(wxCommandEvent& event);
+
+   bool isPaused() const {return m_state == Paused;}
+
+   bool isCancelled() const {return m_state == Cancelled;}
 
 private:
    // parent top level window (may be NULL)
    wxWindow *m_parentTop;
+   int m_iLastView;
+   int m_iClientX;   // size of client window
+   int m_iClientY;
+
+   Scanner& m_rScanner;
+   Projections& m_rProjections;
+   const Phantom& m_rPhantom;
+   SGPDriver* m_pSGPDriver;
+   SGP* m_pSGP;
+   const int m_iTrace;
+   wxDC* m_pDC;
+
+   wxButton *m_btnAbort;    // the abort button (or NULL if none)
+   wxButton *m_btnPause; 
+   wxButton *m_btnStep;
+
+   wxMemoryDC m_memoryDC;  // for restoring image on OnPaint
+   wxBitmap m_bitmap;
 
    // continue processing or not (return value for Update())
    enum
    {
-      Uncancelable = -1,   // dialog can't be canceled
-      Canceled,            // can be cancelled and, in fact, was
+      Uncancellable = -1,   // dialog can't be canceled
+      Paused,
+      Cancelled,            // can be cancelled and, in fact, was
       Continue,            // can be cancelled but wasn't
       Finished             // finished, waiting to be removed from screen
    } m_state;
 
-   // the abort button (or NULL if none)
-   wxButton *m_btnAbort;
+   const static int ID_BTN_PAUSE = 19998;
+   const static int ID_BTN_STEP = 19999;
 
-   Scanner& m_rScanner;
-   Projections& m_rProjections;
-   const Phantom& m_rPhantom;
-   SGPDriver* m_pSGPDriver;
-   SGP* m_pSGP;
-   const int m_iTrace;
-   wxDC* m_pDC;
+   void showView (int iViewNumber);
 
    DECLARE_EVENT_TABLE()
 };