void CodeBlocksApp::OnBatchBuildDone(CodeBlocksEvent& event) { event.Skip(); // the event comes more than once. deal with it... static bool one_time_only = false; if (!m_Batch || one_time_only) return; one_time_only = true; cbCompilerPlugin* compiler = static_cast<cbCompilerPlugin*>(event.GetPlugin()); m_BatchExitCode = compiler->GetExitCode(); if (m_BatchNotify) { wxString msg; if (m_BatchExitCode == 0) msg << _("Batch build ended.\n"); else msg << _("Batch build stopped with errors.\n"); msg << wxString::Format(_("Process exited with status code %d."), m_BatchExitCode); cbMessageBox(msg, appglobals::AppName, m_BatchExitCode == 0 ? wxICON_INFORMATION : wxICON_WARNING, m_pBatchBuildDialog); } else wxBell(); if (m_pBatchBuildDialog && m_BatchWindowAutoClose) { if (m_pBatchBuildDialog->IsModal()) m_pBatchBuildDialog->EndModal(wxID_OK); else { m_pBatchBuildDialog->Destroy(); m_pBatchBuildDialog = nullptr; } } }