void Shader::OnCommand(wxCommandEvent& evt) { Project *project = Project::GetProject(); Panel *panel; Undoer *undoer; Graph *graph; if (project != NULL) { panel = project->GetPanel(); if (panel != NULL) { undoer = panel->GetUndoerCtrl(); graph = panel->GetGraphCtrl(); } } switch (evt.GetId()) { case wxID_OPEN: Open(); break; case wxID_SAVE: Save(); break; case wxID_SAVEAS: SaveAs(); break; case wxID_EXIT: Close(false); break; case wxID_UNDO: undoer->Undo(); break; case wxID_REDO: undoer->Redo(); break; case wxID_CUT: graph->Cut(); break; case wxID_COPY: graph->Copy(); break; case wxID_PASTE: graph->Paste(); break; case wxID_DUPLICATE: graph->Duplicate(); break; case wxID_GROUP: graph->GroupNodes(); break; case wxID_UNGROUP: graph->UngroupNodes(); break; case wxID_SAVEGROUP: graph->SaveGroup(); break; case wxID_COPYMETAFILE: graph->CopyAsMetafile(); break; case wxID_CONFIGURE: project->Configure(); break; case wxID_RELOADLIBS: //project->ReloadLibs(); break; } }