#include #include "frame.h" // MPI stuff, MPI_quiver is defined (or not) in main.cpp #ifdef MPI_quiver #include MPI_path #else #include "pseudo_mpi.h" #endif enum { ID_Quit = 10, ID_About = 20, ID_Compute = 30, ID_Output = 40, }; BEGIN_EVENT_TABLE(qFrame, wxFrame) EVT_MENU(ID_Quit, qFrame::OnQuit) EVT_MENU(ID_About, qFrame::OnAbout) EVT_MENU(ID_Compute, qFrame::OnCompute) EVT_MENU(ID_Output, qFrame::OnOutput) END_EVENT_TABLE() qFrame::qFrame(const wxString& title, const wxPoint& pos, const wxSize& size) : wxFrame((wxFrame *)NULL, -1, title, pos, size) { /********************** File menu **********************/ wxMenu *menuFile = new wxMenu; menuFile->Append( ID_About, "&About..." ); menuFile->AppendSeparator(); menuFile->Append( ID_Quit, "E&xit" ); /********************** Run menu **********************/ wxMenu *menuRun = new wxMenu; menuRun->Append( ID_Compute, "&Compute" ); menuRun->AppendSeparator(); menuRun->Append( ID_Output, "&Output" ); /********************** menu bar **********************/ wxMenuBar *menuBar = new wxMenuBar; menuBar->Append( menuFile, "&File" ); menuBar->Append( menuRun, "&Run" ); SetMenuBar( menuBar ); CreateStatusBar(); SetStatusText( "quiver" ); } void qFrame::OnQuit(wxCommandEvent& WXUNUSED(event)) { wxMessageBox("Did you save your data?", "Really quit?", wxOK | wxICON_INFORMATION, this); // send other processes a terminate // broadcast Close(TRUE); MPI::Finalize(); // Finalize for process 0 } void qFrame::OnAbout(wxCommandEvent& WXUNUSED(event)) { wxMessageBox("Quiver", "Quiver", wxOK | wxICON_INFORMATION, this); } void qFrame::OnCompute(wxCommandEvent& WXUNUSED(event)) { wxMessageBox("Time to compute", "Compute", wxOK | wxICON_INFORMATION, this); } void qFrame::OnOutput(wxCommandEvent& WXUNUSED(event)) { wxMessageBox("Generate output", "output", wxOK | wxICON_INFORMATION, this); }