- if ( m_state == Finished ) {
- // this means that the count down is already finished and we're being
- // shown as a modal dialog - so just let the default handler do the job
- event.Skip();
- } else {
- // request to cancel was received, the next time Update() is called we
- // will handle it
- m_state = Canceled;
-
- // update the button state immediately so that the user knows that the
- // request has been noticed
- m_btnAbort->Disable();
- }
+ if ( m_state == Finished ) {
+ // this means that the count down is already finished and we're being
+ // shown as a modal dialog - so just let the default handler do the job
+ event.Skip();
+ } else {
+ // request to cancel was received, the next time Update() is called we
+ // will handle it
+ m_state = Cancelled;
+
+ // update the button state immediately so that the user knows that the
+ // request has been noticed
+ m_btnAbort->Disable();
+ }
+}
+
+
+void
+ProjectionsDialog::OnPause (wxCommandEvent& event)
+{
+ if ( m_state == Finished ) {
+ event.Skip();
+ } else if (m_state == Continue) {
+ m_memoryDC.SelectObject (m_bitmap); // in memoryDC
+ m_pSGP->setDC (&m_memoryDC);
+ m_memoryDC.SetFont (*wxSWISS_FONT);
+ showView (m_iLastView);
+ m_state = Paused;
+ m_btnPause->SetLabel (wxString("Resume"));
+ m_pSGP->setDC (m_pDC);\r
+ m_memoryDC.SelectObject(wxNullBitmap);\r
+ } else if (m_state == Paused) {
+ m_state = Continue;
+ m_btnPause->SetLabel (wxString("Pause"));
+ }
+}
+
+void
+ProjectionsDialog::OnStep (wxCommandEvent& event)
+{
+ if ( m_state == Finished ) {
+ event.Skip();
+ } else if (m_state == Continue) {
+ m_memoryDC.SelectObject (m_bitmap); // in memoryDC
+ m_pSGP->setDC (&m_memoryDC);
+ m_memoryDC.SetFont (*wxSWISS_FONT);\r
+ showView (m_iLastView);
+ // m_rScanner.collectProjections (m_rProjections, m_rPhantom, m_iLastView, 1, true, m_iTrace, m_pSGP);
+ m_state = Paused;
+ m_btnPause->SetLabel (wxString("Resume"));
+ m_pSGP->setDC (m_pDC);\r
+ m_memoryDC.SelectObject(wxNullBitmap);\r
+ Refresh();\r
+ } else if (m_state == Paused) {
+ m_memoryDC.SelectObject (m_bitmap); // in memoryDC\r
+ m_pSGP->setDC (&m_memoryDC);\r
+ m_memoryDC.SetFont (*wxSWISS_FONT);\r
+ projectView (m_iLastView + 1);
+ m_pSGP->setDC (m_pDC);\r
+ m_memoryDC.SelectObject(wxNullBitmap);\r
+ Refresh();\r
+ }