Example #1
0
void BetProcedureFrame::OnClose(wxCloseEvent& event) {
	if (event.CanVeto()) {
		if (state_ == STATE_RUNNING || state_ == STATE_FINISHING) {
			wxMessageBox("Cannot exit while procedure is running", "Finish",
			wxOK, this);
			return;
		}
	}
	my_timer_.Stop();
	if (state_ == STATE_RUNNING || state_ == STATE_FINISHING) {
		//finish prematurely
		DoTerminate();
	}
	protocol_.stop();
	wxGetApp().setProcedureFrame(nullptr);
	MainFrame* mainFrame = static_cast<MainFrame*>(GetParent());
	mainFrame->OnProcedureFinished();
	Destroy();
}