PViewer::PViewer(UInt_t w, UInt_t h) : TGMainFrame(gClient->GetRoot(),w,h) { fECanvas = new TRootEmbeddedCanvas ("Ecanvas",this,900,900); AddFrame(fECanvas, new TGLayoutHints (kLHintsExpandX | kLHintsExpandY,10,10,10,1)); hframe = new TGHorizontalFrame(this,200,40); TGTextButton *exit = new TGTextButton(hframe,"&Exit","gApplication->Terminate()"); hframe->AddFrame(exit,new TGLayoutHints(kLHintsCenterX,5,5,3,4)); exit->SetTextColor(kRed); exit->Resize(100,100); AddFrame(hframe,new TGLayoutHints(kLHintsCenterX,2,2,2,2)); TGTextButton *prev = new TGTextButton(hframe,"&Prev"); prev->Connect("Clicked()","PViewer",this,"DoPrev()"); hframe->AddFrame(prev,new TGLayoutHints(kLHintsCenterX,5,5,3,4)); TGTextButton *save = new TGTextButton(hframe,"&Save"); save->Connect("Clicked()","PViewer",this,"DoSave()"); hframe->AddFrame(save,new TGLayoutHints(kLHintsCenterX,5,5,3,4)); SetWindowName("Raw Event Display"); MapSubwindows(); Resize(GetDefaultSize()); MapWindow(); } void PViewer::DoPrev(){ ..... } void PViewer::DoSave(){ if (fileopenflag==0) { pSaveCanvas = new TCanvas("pSaveCanvas","Event",1202,829); //pSaveCanvas = fECanvas->GetCanvas(); sprintf(SaveFileName,"Saved_events.eps"); sprintf(SaveFileName_open,"Saved_events.eps["); pSaveCanvas->Print(SaveFileName_open); fileopenflag = 1; CreateSavingCanvas(); } else{ CreateSavingCanvas(); } } void PViewer::DoExit(){ if (fileopenflag==1) { sprintf(SaveFileName_close,"Saved_events.eps]"); pSaveCanvas->Print(SaveFileName_close); } } void PViewer::CreateSavingCanvas(){ pSaveCanvas = new TCanvas("pSaveCanvas","Event",1202,829); //pSaveCanvas = fECanvas->GetCanvas(); pSaveCanvas->cd(); .................. pSaveCanvas->Update(); pSaveCanvas->Print(SaveFileName); pSaveCanvas->Close(); }