X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=src%2Fdocs.cpp;h=6ea75a0509aed50a7664d80c68c84d6e7ecf6629;hb=acbdc3e0bc421e5df6fdcea262a66a189d65dad3;hp=99e6a56e9c9245d5cda5b1b88b8a840db209fdee;hpb=df521cfe14a9e0b47bdcd98d1f67d03acf242162;p=ctsim.git diff --git a/src/docs.cpp b/src/docs.cpp index 99e6a56..6ea75a0 100644 --- a/src/docs.cpp +++ b/src/docs.cpp @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (c) 1983-2001 Kevin Rosenberg ** -** $Id: docs.cpp,v 1.29 2001/02/25 10:52:55 kevin Exp $ +** $Id: docs.cpp,v 1.32 2001/03/05 15:10: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 @@ -130,10 +130,13 @@ ImageFileDocument::Revert () IMPLEMENT_DYNAMIC_CLASS(BackgroundProcessingDocument, wxDocument) BEGIN_EVENT_TABLE(BackgroundProcessingDocument, wxDocument) +#ifdef CTSIM_THREADS EVT_MENU(BackgroundSupervisor::MSG_BACKGROUND_SUPERVISOR_ADD, BackgroundProcessingDocument::OnAddBackground) EVT_MENU(BackgroundSupervisor::MSG_BACKGROUND_SUPERVISOR_REMOVE, BackgroundProcessingDocument::OnRemoveBackground) +#endif END_EVENT_TABLE() +#ifdef CTSIM_TREADS void BackgroundProcessingDocument::OnAddBackground (wxCommandEvent& event) { @@ -166,23 +169,25 @@ BackgroundProcessingDocument::OnRemoveBackground (wxCommandEvent& event) if (! bFound) sys_error (ERR_SEVERE, "Could not find background task [OnRemoveBackground]"); - wxCommandEvent ackEvent (wxEVT_COMMAND_MENU_SELECTED, BackgroundSupervisor::MSG_DOCUMENT_ACK_REMOVE); - wxPostEvent (pSupervisor, ackEvent); + pSupervisor->onAckDocumentRemove(); } +#endif void BackgroundProcessingDocument::cancelRunningTasks() { +#ifdef CTSIM_THREADS m_criticalSection.Enter(); for (BackgroundContainer::iterator i = m_vecpBackgroundSupervisors.begin(); i != m_vecpBackgroundSupervisors.end(); i++) - BackgroundSupervisor::cancelSupervisor(*i); + (*i)->onCancel(); m_criticalSection.Leave(); while (m_vecpBackgroundSupervisors.size() > 0) { - ::wxUsleep(50); ::wxYield(); + ::wxUsleep(50); } +#endif } @@ -255,6 +260,11 @@ ProjectionFileDocument::getView() const IMPLEMENT_DYNAMIC_CLASS(PhantomFileDocument, BackgroundProcessingTask) +PhantomFileDocument::~PhantomFileDocument() +{ + cancelRunningTasks(); +} + bool PhantomFileDocument::OnOpenDocument(const wxString& filename) {