#include <BesClient.h>
|
00130 : 00131 TGMainFrame(p, width, height) { 00132 00133 // 00134 // BesClient default contructor 00135 if ( gDebug ) cout << "BesClient ctor called" << endl; 00136 00138 //acquire.sem_num = 0; 00139 //acquire.sem_op = -1; 00140 //acquire.sem_flg = SEM_UNDO; 00141 00143 //release.sem_num = 0; 00144 //release.sem_op = 1; 00145 //release.sem_flg = SEM_UNDO; 00146 //recdis = NULL; 00147 recTrack1 = NULL; 00148 mdchit = NULL; 00149 tofTrack = NULL; 00150 muctrk = NULL; 00151 emcshower = NULL; 00152 // fRecEvent_1 =0; 00153 00154 00155 fEventTree = 0; 00156 00157 // init parameters 00158 this->InitParameter(); 00159 00160 // init local variables 00161 this->InitLocal(); 00162 00163 // Create toplevel widget 00164 this->CreateWidget(title, fWindowWidth, fWindowHeight); 00165 00166 // connections to messaging queues 00167 this->InitConnections(); 00168 00169 this->SetBackgroundPixmap(GetPic("background.gif")); 00170 00171 f_bossMode = false; 00172 int optchar; 00173 static char optstring[] = "g:e:B:"; 00174 opterr = 0; 00175 fEventFile = NULL; 00176 00177 // detail information about getopt can be get by man order in shell 00178 while ((optchar = getopt(argc, argv, optstring)) != -1) 00179 switch (optchar) { 00180 case 'g': 00181 f_geoFile = optarg; 00182 cout << "Load Geometry file with arguments" << endl; 00183 cout << "Geofile: " << f_geoFile << endl; 00184 break; 00185 case 'e': 00186 f_evtFile = optarg; 00187 cout << "Load Event file with argments" << endl; 00188 cout << "Evtfile: " << f_evtFile << endl; 00189 break; 00190 case 'B': 00191 f_bossMode = true; 00192 f_pid = atoi(optarg); 00193 cout << "Run in the Boss Framework: " << f_bossMode << endl; 00194 cout << "parent pid: " << f_pid << endl; 00195 break; 00196 case '?': 00197 cout << "Found an option that was not in optstring!" << endl; 00198 } 00199 if (optind < argc) 00200 cout << "Left off at: " << argv[optind] << endl; 00201 00202 this->LoadGeoFile(); 00203 00204 if ( f_bossMode == false){ 00205 if ( f_evtFile.Length() != 0){ 00206 this->OpenEventFile(f_evtFile); 00207 // this->GetEvent(0); 00208 } 00209 } 00210 else if (f_bossMode == true){ 00211 fAutoDisplayEvent = kTRUE; 00212 f_runStatus = RUN_SMOOTH; 00213 cout << "Load event file: " << f_evtFile << endl; 00214 fCurrentEvent = 0; 00215 this->GetRecEvent(); 00216 } 00217 00218 this->UpdateStatus(); 00219 }
|
|
00223 { 00224 // 00225 // BesClient standard destructor 00226 if ( gDebug ) { 00227 cout << "BesClient dtor called" << endl; 00228 } 00229 00230 fWidgets->Delete(); 00231 delete fWidgets; 00232 }
|
|
|
|
|
|
|
|
03686 { 03687 //if (fEventTree) { 03688 fAutoDisplayEvent = !fAutoDisplayEvent; 03689 std::cout << "(AutoDisplayEvent)fAutoDisplayEvent: " << fAutoDisplayEvent << std::endl; 03690 if (fAutoDisplayEventTimer) { 03691 if (fAutoDisplayEvent) { 03692 fPlayEventButton->SetPicture(gClient->GetPicture("ButtonEventStop.gif")); 03693 fAutoDisplayEventTimer->TurnOn(); 03694 } 03695 else { 03696 fPlayEventButton->SetPicture(gClient->GetPicture("ButtonEventPlay.gif")); 03697 fAutoDisplayEventTimer->TurnOff(); 03698 } 03699 } 03700 //} 03701 03702 /* 03703 fAutoDisplayEvent = kTRUE; 03704 if (gDebug) cout << "Into AutoDisplayEvent(), fAutoDisplayEvent = " << fAutoDisplayEvent << " fEventPlaySpeed " << fEventPlaySpeed << endl; 03705 03706 if (fAutoDisplayEventTimer) fAutoDisplayEventTimer->TurnOn(); 03707 */ 03708 }
|
|
|
|
03713 { 03714 NextEvent(); 03715 UpdateBesInputFields(); 03716 }
|
|
|
|
03721 { 03722 fAutoRotate = !fAutoRotate; 03723 03724 if (!fAutoRotate) { 03725 fAutoRotateClockWise = 0; 03726 fAutoRotateTheta = 0; 03727 fAutoRotatePhi = 0; 03728 fAutoRotatePsi = 0; 03729 } 03730 03731 if (fAutoRotateTimer) { 03732 if (fAutoRotate) fAutoRotateTimer->TurnOn(); 03733 else fAutoRotateTimer->TurnOff(); 03734 } 03735 }
|
|
|
|
03740 { 03741 if (fAutoRotateClockWise != 0) { 03742 RotateClockWise(fAutoRotateClockWise); 03743 } 03744 03745 if (fAutoRotateTheta != 0) { 03746 RotateTheta(fAutoRotateTheta); 03747 } 03748 03749 if (fAutoRotatePhi != 0) { 03750 RotatePhi(fAutoRotatePhi); 03751 } 03752 03753 if (fAutoRotatePsi != 0) { 03754 RotatePsi(fAutoRotatePsi); 03755 } 03756 03757 /* 03758 Int_t iret; 03759 if (fDisplay->GetPadXY()->GetView()) { 03760 fDisplay->GetPadXY()->GetView()->SetView(fDisplay->GetPadXY()->GetView()->GetLongitude()+fRotateStep, 03761 fDisplay->GetPadXY()->GetView()->GetLatitude(), 03762 fDisplay->GetPadXY()->GetView()->GetPsi(), iret); 03763 fDisplay->GetPadXY()->Modified(); 03764 fDisplay->GetPadXY()->Update(); 03765 } 03766 if (fDisplay->GetPadZR()->GetView()) { 03767 fDisplay->GetPadZR()->GetView()->SetView(fDisplay->GetPadZR()->GetView()->GetLongitude()+fRotateStep, 03768 fDisplay->GetPadZR()->GetView()->GetLatitude(), 03769 fDisplay->GetPadZR()->GetView()->GetPsi(), iret); 03770 fDisplay->GetPadZR()->Modified(); 03771 fDisplay->GetPadZR()->Update(); 03772 } 03773 */ 03774 03775 UpdateCurrentPad(); 03776 UpdateBesInputFields(); 03777 }
|
|
|
|
05207 { 05208 // 05209 // change focus on pressed tab 05210 if (gDebug) cout << "BesClient::ChangeFocus called!" << endl; 05211 05212 if ( gTQSender == fNumEntryRunNo->GetNumberEntry() ) { 05213 fNumEntryEventNo->GetNumberEntry()->SelectAll(); 05214 fNumEntryEventNo->GetNumberEntry()->SetFocus(); 05215 } 05216 else if ( gTQSender == fNumEntryEventPlaySpeed->GetNumberEntry() ) { 05217 fNumEntryEventPlaySpeed->GetNumberEntry()->SelectAll(); 05218 fNumEntryEventPlaySpeed->GetNumberEntry()->SetFocus(); 05219 } 05220 else if ( gTQSender == fNumEntryMagnetic->GetNumberEntry() ) { 05221 fNumEntryMagnetic->GetNumberEntry()->SelectAll(); 05222 fNumEntryMagnetic->GetNumberEntry()->SetFocus(); 05223 } 05224 }
|
|
|
|
03305 { 03306 // 03307 // Got close message for this MainFrame. Calls parent CloseWindow()) 03308 // (which destroys the window) and terminate the application. 03309 // The close message is generated by the window manager when its close 03310 // window menu item is selected. 03311 TGMainFrame::CloseWindow(); 03312 gApplication->Terminate(0); // 0 = OK 03313 }
|
|
|
|
01047 { 01048 // 01049 // Create the embedded canvas 01050 // Create embedded canvas 01051 fECLayout = new TGLayoutHints( kLHintsLeft | kLHintsExpandX | kLHintsExpandY, 0, 0, 0, 0); 01052 fEmbeddedCanvas = new TRootEmbeddedCanvas(0, fMainFrame, fMainFrame->GetWidth()/4*3-12, fMainFrame->GetHeight()-46); 01053 Int_t wid = fEmbeddedCanvas->GetCanvasWindowId(); 01054 fCanvas = new TCanvas("BesVis", fEmbeddedCanvas->GetWidth(), fEmbeddedCanvas->GetHeight()-10, wid); 01055 fEmbeddedCanvas->AdoptCanvas(fCanvas); 01056 fCanvas->cd(); 01057 01058 fDisplay = new BesVisDisplay("BESIII Event Display"); 01059 fDisplay->SetCanvas(fCanvas); 01060 fDisplay->Init(); 01061 01062 }
|
|
|
|
00810 { 00811 00812 fDisplayModeBarFrame = new TGCompositeFrame(this, 300, 16, kHorizontalFrame); 00813 fDisplayModeBarItemLayout = new TGLayoutHints(kLHintsTop | kLHintsLeft, 0, 0, 0, 0); 00814 00815 fDisplayModeButton[0] = new BesGPictureButton(fDisplayModeBarFrame, gClient->GetPicture("DisplayMode2DST.gif"), kM_Button_DisplayMode2D); 00816 fDisplayModeButton[1] = new BesGPictureButton(fDisplayModeBarFrame, gClient->GetPicture("DisplayModeXY.gif"), kM_Button_DisplayModeXY); 00817 fDisplayModeButton[2] = new BesGPictureButton(fDisplayModeBarFrame, gClient->GetPicture("DisplayModeZR.gif"), kM_Button_DisplayModeZR); 00818 fDisplayModeButton[3] = new BesGPictureButton(fDisplayModeBarFrame, gClient->GetPicture("DisplayMode3D.gif"), kM_Button_DisplayMode3D); 00819 fDisplayModeButton[4] = new BesGPictureButton(fDisplayModeBarFrame, gClient->GetPicture("DisplayModeAll.gif"), kM_Button_DisplayModeAll); 00820 00821 fDisplayModeButton[0]->SetState(true); 00822 fDisplayModeButton[1]->SetState(false); 00823 fDisplayModeButton[2]->SetState(false); 00824 fDisplayModeButton[3]->SetState(false); 00825 fDisplayModeButton[4]->SetState(false); 00826 00827 fDisplayModeButton[0]->SetPictureHL(gClient->GetPicture("DisplayMode2DHL.gif")); 00828 fDisplayModeButton[1]->SetPictureHL(gClient->GetPicture("DisplayModeXYHL.gif")); 00829 fDisplayModeButton[2]->SetPictureHL(gClient->GetPicture("DisplayModeZRHL.gif")); 00830 fDisplayModeButton[3]->SetPictureHL(gClient->GetPicture("DisplayMode3DHL.gif")); 00831 fDisplayModeButton[4]->SetPictureHL(gClient->GetPicture("DisplayModeAllHL.gif")); 00832 00833 fDisplayModeButton[0]->SetToolTipText("XY+ZR view"); 00834 fDisplayModeButton[1]->SetToolTipText("XY view"); 00835 fDisplayModeButton[2]->SetToolTipText("ZR view"); 00836 fDisplayModeButton[3]->SetToolTipText("3D view"); 00837 fDisplayModeButton[4]->SetToolTipText("All view"); 00838 00839 Int_t width = 16, height = 16; 00840 for (Int_t i = 0; i < kNDisplayMode; i++) { 00841 fDisplayModeButton[i]->SetState(kButtonUp); 00842 fDisplayModeButton[i]->SetHeight(height); 00843 fDisplayModeButton[i]->SetWidth(width); 00844 fDisplayModeButton[i]->Connect("Clicked()", "BesClient", this, "HandleButtons()"); 00845 fDisplayModeBarFrame->AddFrame(fDisplayModeButton[i], fDisplayModeBarItemLayout); 00846 } 00847 }
|
|
|
|
00308 { 00309 // 00310 // Add horizontal ruler 00311 // cout << " horizontal ruler" << endl; 00312 fLayout = new TGLayoutHints(kLHintsExpandX, 2, 2, 0, 0); 00313 fWidgets->Add(fLayout); 00314 this->AddFrame(new TGHorizontal3DLine(this), fLayout); 00315 }
|
|
|
|
01009 { 01010 // 01011 // Create main frame containing a tab list, 01012 // the canvas and a toolbar 01013 fMainFrame = new TGHorizontalFrame(this, this->GetWidth(), this->GetHeight()-26); 01014 01015 // This vertical frame is needed for splitter 01016 fV1 = new TGVerticalFrame(fMainFrame, 250, fMainFrame->GetHeight(), kFixedWidth); 01017 01018 // Create display tabs 01019 CreateCanvas(); 01020 01021 // Create control tabs 01022 CreateTabs(); 01023 01024 fLayout = new TGLayoutHints(kLHintsLeft | kLHintsExpandX | kLHintsExpandY, 0, 2, 0, 0); 01025 fWidgets->Add(fLayout); 01026 fV1->AddFrame(fTabs, fLayout); 01027 01028 // Configure Splitter 01029 // fV1->Resize(fTabs->GetWidth(), fV1->GetDefaultHeight()); 01030 01031 fMainFrame->AddFrame(fEmbeddedCanvas, fECLayout); 01032 01033 fLayout = new TGLayoutHints(kLHintsRight | kLHintsExpandY); 01034 fWidgets->Add(fLayout); 01035 fMainFrame->AddFrame(fV1, fLayout); 01036 01037 TGVSplitter *VSplitter = new TGVSplitter(fMainFrame); 01038 VSplitter->SetFrame(fV1, kFALSE); 01039 fLayout = new TGLayoutHints(kLHintsLeft | kLHintsExpandY); 01040 fWidgets->Add(fLayout); 01041 fMainFrame->AddFrame(VSplitter, fLayout); 01042 }
|
|
|
|
00319 { 00320 // 00321 // Create the menu bar and popup menus 00322 00323 // Layouts 00324 fMenuBarFirstItemLayout = new TGLayoutHints(kLHintsTop | kLHintsLeft, 00325 30, 0, 1, 2); 00326 fMenuBarItemLayout = new TGLayoutHints(kLHintsTop | kLHintsLeft, 00327 20, 0, 1, 2); 00328 fMenuBarLastItemLayout = new TGLayoutHints(kLHintsTop | kLHintsRight, 00329 20, 20, 1, 2); 00330 00331 //const TGPicture *label2 = gClient->GetPicture("popMenuLabel2.gif"); 00332 const TGPicture *viewGeometryIcon = gClient->GetPicture("viewGeometry.gif"); 00333 //const TGPicture *normalPopupEntryIcon = gClient->GetPicture("normalPopupEntry1.gif"); 00334 00335 // 00336 // File menu 00337 // ========= 00338 fMenuFile = new TGPopupMenu(gClient->GetRoot()); 00339 //fMenuFile->SetBackgroundPixmap(GetPic("2.gif")); 00340 fMenuFile->AddEntry("Load &Geometry File...", kM_File_LoadGeo); 00341 fMenuFile->AddEntry("&Save Geometry as...", kM_File_SaveGeoAs); 00342 fMenuFile->AddEntry("Load &Event File...", kM_File_OpenEvent); 00343 fMenuFile->AddEntry("Save &Picture as...", kM_File_SavePicAs); 00344 fMenuFile->AddSeparator(); 00345 fMenuFile->AddEntry("&Quit BesVis", kM_File_Exit); 00346 00347 // 00348 // Edit menu 00349 // ========= 00350 fMenuEdit = new TGPopupMenu(gClient->GetRoot()); 00351 //fMenuEdit->SetBackgroundPixmap(GetPic("popMenuBorder.gif")); 00352 fMenuEdit->AddEntry("&Editor", kM_Edit_Editor); 00353 00354 // 00355 // View-Option Header menu 00356 // ======================= 00357 fMenuViewOptionHeader = new TGPopupMenu(gClient->GetRoot()); 00358 fMenuViewOptionHeader->AddEntry("Show Header",kM_Header_On); 00359 00360 // 00361 // View-Option Mdc menu 00362 // ==================== 00363 fMenuViewOptionMdc = new TGPopupMenu(gClient->GetRoot()); 00364 fMenuViewOptionMdc->AddEntry("Global", kM_Mdc_Global); 00365 fMenuViewOptionMdc->AddEntry("Tube", kM_Mdc_Tubes); 00366 fMenuViewOptionMdc->AddEntry("Wires", kM_Mdc_Wires); 00367 // 00368 // View-Option Tof menu 00369 // ==================== 00370 fMenuViewOptionTof = new TGPopupMenu(gClient->GetRoot()); 00371 fMenuViewOptionTof->AddEntry("Global", kM_Tof_Global); 00372 fMenuViewOptionTof->AddEntry("East", kM_Tof_East); 00373 fMenuViewOptionTof->AddEntry("Barrel", kM_Tof_Barrel); 00374 fMenuViewOptionTof->AddEntry("West", kM_Tof_West); 00375 // 00376 // View-Option Emc menu 00377 // ==================== 00378 fMenuViewOptionEmc = new TGPopupMenu(gClient->GetRoot()); 00379 fMenuViewOptionEmc->AddEntry("Global", kM_Emc_Global); 00380 fMenuViewOptionEmc->AddEntry("East", kM_Emc_East); 00381 fMenuViewOptionEmc->AddEntry("Barrel", kM_Emc_Barrel); 00382 fMenuViewOptionEmc->AddEntry("West", kM_Emc_West); 00383 fMenuViewOptionEmc->AddEntry("Side", kM_Emc_Side); 00384 // 00385 // View-Option Muc menu 00386 // ==================== 00387 fMenuViewOptionMuc = new TGPopupMenu(gClient->GetRoot()); 00388 fMenuViewOptionMuc->AddEntry("Global", kM_Muc_Global); 00389 fMenuViewOptionMuc->AddEntry("East", kM_Muc_East); 00390 fMenuViewOptionMuc->AddEntry("Barrel", kM_Muc_Barrel); 00391 fMenuViewOptionMuc->AddEntry("West", kM_Muc_West); 00392 fMenuViewOptionMuc->AddEntry("Strips", kM_Muc_Strips); 00393 // 00394 // View-Option Full3D menu 00395 // ==================== 00396 fMenuViewOptionFull3D = new TGPopupMenu(gClient->GetRoot()); 00397 fMenuViewOptionFull3D->AddEntry("Mdc", kM_Full3D_Mdc); 00398 fMenuViewOptionFull3D->AddEntry("Tof", kM_Full3D_Tof); 00399 fMenuViewOptionFull3D->AddEntry("Emc", kM_Full3D_Emc); 00400 fMenuViewOptionFull3D->AddEntry("Muc", kM_Full3D_Muc); 00401 // 00402 // View-Option Others menu 00403 // ==================== 00404 fMenuViewOptionOthers = new TGPopupMenu(gClient->GetRoot()); 00405 fMenuViewOptionOthers->AddEntry("BeamPipe", kM_BeamPipe); 00406 fMenuViewOptionOthers->AddEntry("ZRPlaneOnXY", kM_ZRPlaneOnXY); 00407 fMenuViewOptionOthers->AddEntry("Axis", kM_Axis); 00408 00409 // 00410 // View-Option Mdc Hits menu 00411 // ==================== 00412 fMenuViewOptionMdcHits = new TGPopupMenu(gClient->GetRoot()); 00413 fMenuViewOptionMdcHits->AddEntry("Hits",kM_MdcHits_Hits); 00414 // 00415 // View-Option Tof Hits menu 00416 // ========================= 00417 fMenuViewOptionTofHits = new TGPopupMenu(gClient->GetRoot()); 00418 fMenuViewOptionTofHits->AddEntry("Global Hits", kM_TofHits_Global); 00419 fMenuViewOptionTofHits->AddEntry("East Hits", kM_TofHits_East); 00420 fMenuViewOptionTofHits->AddEntry("Barrel Hits", kM_TofHits_Barrel); 00421 fMenuViewOptionTofHits->AddEntry("West Hits", kM_TofHits_West); 00422 // 00423 // View-Option Emc Hits menu 00424 // ========================= 00425 fMenuViewOptionEmcHits = new TGPopupMenu(gClient->GetRoot()); 00426 fMenuViewOptionEmcHits->AddEntry("Global Hits", kM_EmcHits_Global); 00427 fMenuViewOptionEmcHits->AddEntry("East Hits", kM_EmcHits_East); 00428 fMenuViewOptionEmcHits->AddEntry("Barrel Hits", kM_EmcHits_Barrel); 00429 fMenuViewOptionEmcHits->AddEntry("West Hits", kM_EmcHits_West); 00430 fMenuViewOptionEmcHits->AddEntry("Side Hits", kM_EmcHits_Side); 00431 // 00432 // View-Option Muc Hits menu 00433 // ========================= 00434 fMenuViewOptionMucHits = new TGPopupMenu(gClient->GetRoot()); 00435 fMenuViewOptionMucHits->AddEntry("Global Hits", kM_MucHits_Global); 00436 fMenuViewOptionMucHits->AddEntry("East Hits", kM_MucHits_East); 00437 fMenuViewOptionMucHits->AddEntry("Barrel Hits", kM_MucHits_Barrel); 00438 fMenuViewOptionMucHits->AddEntry("West Hits", kM_MucHits_West); 00439 // 00440 // View-Option Tracks menu 00441 // ========================= 00442 fMenuViewOptionTracks = new TGPopupMenu(gClient->GetRoot()); 00443 fMenuViewOptionTracks->AddEntry("Global ", kM_Tracks_Global); 00444 fMenuViewOptionTracks->AddEntry("Mdc ", kM_Tracks_Mdc); 00445 fMenuViewOptionTracks->AddEntry("Tof ", kM_Tracks_Tof); 00446 fMenuViewOptionTracks->AddEntry("Emc ", kM_Tracks_Emc); 00447 fMenuViewOptionTracks->AddEntry("Muc ", kM_Tracks_Muc); 00448 fMenuViewOptionTracks->AddEntry("Ext ", kM_Tracks_Ext); 00449 00450 // 00451 // View menu 00452 // ========= 00453 fMenuView = new TGPopupMenu(gClient->GetRoot()); 00454 //fMenuView->SetBackgroundPixmap(GetPic("2.gif")); 00455 fMenuView->AddLabel("General"); 00456 fMenuView->AddSeparator(); 00457 fMenuView->AddPopup("Header",fMenuViewOptionHeader); 00458 fMenuView->AddSeparator(); 00459 fMenuView->AddLabel("Detector", viewGeometryIcon); 00460 fMenuView->AddSeparator(); 00461 fMenuView->AddPopup("Mdc",fMenuViewOptionMdc); 00462 fMenuView->AddPopup("Tof",fMenuViewOptionTof); 00463 fMenuView->AddPopup("Emc",fMenuViewOptionEmc); 00464 fMenuView->AddPopup("Muc",fMenuViewOptionMuc); 00465 fMenuView->AddPopup("Full3D",fMenuViewOptionFull3D); 00466 fMenuView->AddPopup("Others",fMenuViewOptionOthers); 00467 fMenuView->AddSeparator(); 00468 //fMenuView->AddLabel("DST"); 00469 fMenuView->AddLabel("REC"); 00470 fMenuView->AddSeparator(); 00471 fMenuView->AddPopup("Mdc Hits",fMenuViewOptionMdcHits); 00472 fMenuView->AddPopup("Tof Hits",fMenuViewOptionTofHits); 00473 fMenuView->AddPopup("Emc Hits",fMenuViewOptionEmcHits); 00474 fMenuView->AddPopup("Muc Hits",fMenuViewOptionMucHits); 00475 fMenuView->AddPopup("Tracks",fMenuViewOptionTracks); 00476 fMenuView->AddSeparator(); 00477 fMenuView->AddLabel("Special Views"); 00478 fMenuView->AddSeparator(); 00479 //fMenuView->AddEntry("View with X3D", kM_View_X3D, 0, normalPopupEntryIcon); 00480 fMenuView->AddEntry("View with X3D", kM_View_X3D); 00481 fMenuView->AddEntry("View with OpenGL", kM_View_OpenGL); 00482 00483 // 00484 // Help menu 00485 // ========= 00486 fMenuHelp = new TGPopupMenu(gClient->GetRoot()); 00487 //fMenuHelp->SetBackgroundPixmap(GetPic("popMenuBorder.gif")); 00488 fMenuHelp->AddEntry("Help &Content", kM_Help_Content); 00489 fMenuHelp->AddSeparator(); 00490 fMenuHelp->AddEntry("About", kM_Help_About); 00491 00492 // Create the menubar and add popup menus 00493 fMenuBar = new BesGMenuBar(this, 1, 1, kHorizontalFrame); 00494 fMenuBar->SetBackgroundPixmap(GetPic("MenuBarBckgnd.gif")); 00495 00496 fMenuBar->AddPopup("&File", fMenuFile, fMenuBarFirstItemLayout); 00497 //fMenuBar->AddPopup("&Edit", fMenuEdit, fMenuBarItemLayout); // dont show edit 00498 fMenuBar->AddPopup("&View", fMenuView, fMenuBarItemLayout); 00499 fMenuBar->AddPopup("&Help", fMenuHelp, fMenuBarLastItemLayout); 00500 00501 fMenuBar->GetMenuTitle(0)->SetPicture(GetPic("MenuFile.gif")); 00502 fMenuBar->GetMenuTitle(0)->SetPictureHL(GetPic("MenuFileHL.gif")); 00503 fMenuBar->GetMenuTitle(1)->SetPicture(GetPic("MenuView.gif")); 00504 fMenuBar->GetMenuTitle(1)->SetPictureHL(GetPic("MenuViewHL.gif")); 00505 fMenuBar->GetMenuTitle(2)->SetPicture(GetPic("MenuHelp.gif")); 00506 fMenuBar->GetMenuTitle(2)->SetPictureHL(GetPic("MenuHelpHL.gif")); 00507 00508 // 00509 // Connect menu buttons to actions. Menu button messages are 00510 // handled by the main frame (i.e. "this") HandleMenu() method., kHorizontalFrame); 00511 fMenuFile->Connect("Activated(Int_t)","BesClient",this,"HandleMenu(Int_t)"); 00512 fMenuEdit->Connect("Activated(Int_t)","BesClient",this,"HandleMenu(Int_t)"); 00513 fMenuHelp->Connect("Activated(Int_t)","BesClient",this,"HandleMenu(Int_t)"); 00514 fMenuView->Connect("Activated(Int_t)","BesClient",this,"HandleViewOptionMenu(Int_t)"); 00515 fMenuViewOptionHeader->Connect("Activated(Int_t)","BesClient",this,"HandleViewOptionMenu(Int_t)"); 00516 fMenuViewOptionMdc->Connect("Activated(Int_t)","BesClient",this,"HandleViewOptionMenu(Int_t)"); 00517 fMenuViewOptionTof->Connect("Activated(Int_t)","BesClient",this,"HandleViewOptionMenu(Int_t)"); 00518 fMenuViewOptionEmc->Connect("Activated(Int_t)","BesClient",this,"HandleViewOptionMenu(Int_t)"); 00519 fMenuViewOptionMuc->Connect("Activated(Int_t)","BesClient",this,"HandleViewOptionMenu(Int_t)"); 00520 fMenuViewOptionFull3D->Connect("Activated(Int_t)","BesClient",this,"HandleViewOptionMenu(Int_t)"); 00521 fMenuViewOptionOthers->Connect("Activated(Int_t)","BesClient",this,"HandleViewOptionMenu(Int_t)"); 00522 fMenuViewOptionMdcHits->Connect("Activated(Int_t)","BesClient",this,"HandleViewOptionMenu(Int_t)"); 00523 fMenuViewOptionTofHits->Connect("Activated(Int_t)","BesClient",this,"HandleViewOptionMenu(Int_t)"); 00524 fMenuViewOptionEmcHits->Connect("Activated(Int_t)","BesClient",this,"HandleViewOptionMenu(Int_t)"); 00525 fMenuViewOptionMucHits->Connect("Activated(Int_t)","BesClient",this,"HandleViewOptionMenu(Int_t)"); 00526 fMenuViewOptionTracks->Connect("Activated(Int_t)","BesClient",this,"HandleViewOptionMenu(Int_t)"); 00527 00528 /* 00529 TASImage *asImage = new TASImage("013.gif"); 00530 Pixmap_t pic1 = asImage->GetPixmap(); 00531 //asImage->Draw(); 00532 Pixmap_t pic1 = gVirtualX->ReadGIF(0, 0, "013.gif"); 00533 fMenuBar->SetBackgroundPixmap(pic1); 00534 */ 00535 00536 //fMenuBar->SetBackgroundPixmap(GetPic("background.gif")); 00537 00538 /* 00539 TList *fMenuTitleList = fMenuBar->GetList(); 00540 cout << "Menu title size " << fMenuTitleList->GetSize() << endl; 00541 for (Int_t iTitle = 0; iTitle < fMenuTitleList->GetSize(); iTitle++) { 00542 cout << ((TGMenuTitle*)fMenuTitleList->At(iTitle))->GetName() << endl; 00543 TGFrameElement *el = (TGFrameElement *)fMenuTitleList->At(iTitle); 00544 TGMenuTitle *t = (TGMenuTitle *)el->fFrame; 00545 t->SetBackgroundPixmap(GetPic("test.gif")); 00546 cout << t->GetName() << endl; 00547 t->SetBackgroundColor(kBlack); 00548 if (iTitle == 0) { 00549 //t->SetHeight(10); 00550 t->SetForegroundColor(kWhite); 00551 } 00552 } 00553 */ 00554 }
|
|
|
|
00991 { 00992 // 00993 // Create status bar 00994 Int_t nPart = 3; 00995 Int_t parts[] = {40, 50, 10}; 00996 fStatusBar = new TGStatusBar(this, this->GetWidth(), 20, kHorizontalFrame); 00997 fStatusBar->SetParts(parts, nPart); 00998 fStatusBar->SetBackgroundPixmap(GetPic("StatusBarBckgnd.gif")); 00999 for (Int_t iPart = 0; iPart < nPart; iPart++) { 01000 fStatusBar->GetBarPart(iPart)->SetBackgroundPixmap(GetPic("StatusBarBckgnd.gif")); 01001 } 01002 01003 // Set text 01004 fStatusBar->SetText("Ready", 0); 01005 }
|
|
|
|
01066 { 01067 01068 // 01069 // Create tabs for event list and geometry check button lists 01070 fTabs = new TGTab(fV1, fV1->GetWidth(), fV1->GetHeight()); 01071 //cout << "Tab width " << fV1->GetWidth() << " height " << fV1->GetHeight() << endl; 01072 //fTabs->SetBackgroundPixmap(GetPic("2.gif")); 01073 01074 TGCompositeFrame *tf = 0; 01075 Int_t h, charw, w; 01076 01077 // 01078 // "View" tab 01079 // ================ 01080 tf = fTabs->AddTab("View"); 01081 tf->SetBackgroundPixmap(GetPic("8.gif")); 01082 01083 // 01084 // frame for auto control 01085 // =================== 01086 fAutoFrame = new TGCompositeFrame(tf, tf->GetWidth(), tf->GetHeight(), kVerticalFrame); 01087 fLayout = new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsExpandX , 15, 15, 15, 10); 01088 fWidgets->Add(fLayout); 01089 tf->AddFrame(fAutoFrame, fLayout); 01090 fAutoFrame->SetBackgroundPixmap(GetPic("AutoFrameBckgnd.gif")); 01091 01092 // lable "Auto control" 01093 fAutoTextFrame = new TGCompositeFrame(fAutoFrame, fAutoFrame->GetWidth(), 30, kHorizontalFrame); 01094 fLayout = new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsExpandX, 0, 0, 0, 0); 01095 fWidgets->Add(fLayout); 01096 fAutoFrame->AddFrame(fAutoTextFrame, fLayout); 01097 fAutoTextFrame->SetBackgroundPixmap(GetPic("AutoControlBckgnd.gif")); 01098 01099 fAutoTextLabel = new TGLabel(fAutoTextFrame,"Auto Control "); 01100 fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsLeft | kLHintsExpandX , 2, 73, 4, 0); 01101 fWidgets->Add(fLayout); 01102 fAutoTextFrame->AddFrame(fAutoTextLabel, fLayout); 01103 fAutoTextLabel->SetBackgroundPixmap(GetPic("AutoControlBckgnd.gif")); 01104 01105 // --- Auto rotate --- 01106 fFrameAutoRotate = new TGGroupFrame(fAutoFrame, ""); 01107 fLayout = new TGLayoutHints(kLHintsExpandX, 0, 0, 0, 0); 01108 //fLayout = new TGLayoutHints(kLHintsExpandX, 5, 5, 5, 5); 01109 fWidgets->Add(fLayout); 01110 fAutoFrame->AddFrame(fFrameAutoRotate, fLayout); 01111 01112 // "Auto" 01113 fChkBtnAutoRotate = new TGCheckButton(fFrameAutoRotate, "Auto", kM_Button_AutoRotate); 01114 fLayout = new TGLayoutHints(kLHintsExpandX, 5, 5, 3, 2); 01115 fFrameAutoRotate->AddFrame(fChkBtnAutoRotate, fLayout); 01116 fChkBtnAutoRotate->Connect("Clicked()", "BesClient", this, "HandleButtons()"); 01117 01118 // rotate speed 01119 fRotateSpeedFrame = new TGCompositeFrame(fFrameAutoRotate, fFrameAutoRotate->GetWidth()-20, 30, kHorizontalFrame); 01120 fLayout = new TGLayoutHints(kLHintsLeft | kLHintsTop, 0, 0, 2, 2); 01121 fWidgets->Add(fLayout); 01122 fFrameAutoRotate->AddFrame(fRotateSpeedFrame, fLayout); 01123 01124 // input of rotate speed 01125 fNumEntryRotateSpeed = new TGNumberEntryField( fRotateSpeedFrame, kM_Button_RotateSpeed, 01126 this->GetRotateSpeed(), 01127 (TGNumberFormat::EStyle) 1, (TGNumberFormat::EAttribute) 1 ); 01128 h = fNumEntryRotateSpeed->GetDefaultHeight(); 01129 charw = fNumEntryRotateSpeed->GetCharWidth("0123456"); 01130 w = charw * TMath::Abs(4) / 10 + 8 + 2 * h / 3; // 4 is digit width 01131 fNumEntryRotateSpeed->Resize(w, h); 01132 01133 //fNumEntryRotateSpeed = new TGNumberEntry(fRotateSpeedFrame,this->GetRotateSpeed(), 5 ,kM_Button_RotateSpeed,(TGNumberFormat::EStyle) 1,(TGNumberFormat::EAttribute) 1); 01134 fNumEntryRotateSpeed->SetHeight(20); 01135 fNumEntryRotateSpeed->SetNumber(this->GetRotateSpeed()); 01136 fNumEntryRotateSpeed->Connect("ReturnPressed","BesClient",this,"ExecuteReturn()"); 01137 fNumEntryRotateSpeed->Connect("TabPressed","BesClient",this,"ChangeFocus()"); 01138 fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 4, 4, 2, 2); 01139 fWidgets->Add(fLayout); 01140 fRotateSpeedFrame->AddFrame(fNumEntryRotateSpeed, fLayout); 01141 01142 // label " deg/sec " 01143 fRotateSpeedLabel = new TGLabel(fRotateSpeedFrame," deg/sec "); 01144 fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsRight, 2, 4, 2, 2); 01145 fWidgets->Add(fLayout); 01146 fRotateSpeedFrame->AddFrame(fRotateSpeedLabel, fLayout); 01147 01148 // rotate FPS 01149 fRotateFPSFrame = new TGCompositeFrame(fFrameAutoRotate, fFrameAutoRotate->GetWidth()-20, 30, kHorizontalFrame); 01150 fLayout = new TGLayoutHints(kLHintsLeft | kLHintsTop, 0, 0, 2, 2); 01151 fWidgets->Add(fLayout); 01152 fFrameAutoRotate->AddFrame(fRotateFPSFrame, fLayout); 01153 01154 // input of rotate speed 01155 fNumEntryRotateFPS = new TGNumberEntry(fRotateFPSFrame,this->GetRotateFPS(), 3, kM_Button_RotateFPS,(TGNumberFormat::EStyle) 0,(TGNumberFormat::EAttribute) 1); 01156 fNumEntryRotateFPS->SetHeight(20); 01157 fNumEntryRotateFPS->SetNumber(this->GetRotateFPS()); 01158 fNumEntryRotateFPS->GetNumberEntry()->Connect("ReturnPressed","BesClient",this,"ExecuteReturn()"); 01159 fNumEntryRotateFPS->GetNumberEntry()->Connect("TabPressed","BesClient",this,"ChangeFocus()"); 01160 fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 4, 4, 2, 2); 01161 fWidgets->Add(fLayout); 01162 fRotateFPSFrame->AddFrame(fNumEntryRotateFPS, fLayout); 01163 01164 // label " fps " 01165 fRotateFPSLabel = new TGLabel(fRotateFPSFrame," fps "); 01166 fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsRight, 2, 4, 2, 2); 01167 fWidgets->Add(fLayout); 01168 fRotateFPSFrame->AddFrame(fRotateFPSLabel, fLayout); 01169 01170 01171 // 01172 // frame for view control 01173 // =================== 01174 fViewFrame = new TGCompositeFrame(tf, tf->GetWidth(), tf->GetHeight(), kVerticalFrame); 01175 fLayout = new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsExpandX , 15, 15, 15, 10); 01176 fWidgets->Add(fLayout); 01177 tf->AddFrame(fViewFrame, fLayout); 01178 fViewFrame->SetBackgroundPixmap(GetPic("ViewFrameBckgnd.gif")); 01179 01180 // lable "View control" 01181 fViewTextFrame = new TGCompositeFrame(fViewFrame, fViewFrame->GetWidth(), 30, kHorizontalFrame); 01182 fLayout = new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsExpandX, 0, 0, 0, 0); 01183 fWidgets->Add(fLayout); 01184 fViewFrame->AddFrame(fViewTextFrame, fLayout); 01185 fViewTextFrame->SetBackgroundPixmap(GetPic("ViewControlBckgnd.gif")); 01186 01187 fViewTextLabel = new TGLabel(fViewTextFrame,"View Control "); 01188 fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsLeft | kLHintsExpandX , 2, 73, 4, 4); 01189 fWidgets->Add(fLayout); 01190 fViewTextFrame->AddFrame(fViewTextLabel, fLayout); 01191 fViewTextLabel->SetBackgroundPixmap(GetPic("ViewControlBckgnd.gif")); 01192 01193 01194 // rotate step 01195 fRotateStepFrame = new TGCompositeFrame(fViewFrame, fViewFrame->GetWidth()-20, 30, kHorizontalFrame); 01196 fLayout = new TGLayoutHints(kLHintsLeft | kLHintsTop, 0, 0, 8, 5); 01197 fWidgets->Add(fLayout); 01198 fViewFrame->AddFrame(fRotateStepFrame, fLayout); 01199 01200 // label " Step: " 01201 fRotateStepLabel = new TGLabel(fRotateStepFrame," Step:"); 01202 fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 10, 2, 0, 0); 01203 fWidgets->Add(fLayout); 01204 fRotateStepFrame->AddFrame(fRotateStepLabel, fLayout); 01205 01206 // input of rotate step 01207 fNumEntryRotateStep = new TGNumberEntryField( fRotateStepFrame, kM_Button_RotateStep, 01208 this->GetRotateStep(), 01209 (TGNumberFormat::EStyle) 2, (TGNumberFormat::EAttribute) 1 ); 01210 h = fNumEntryRotateStep->GetDefaultHeight(); 01211 charw = fNumEntryRotateStep->GetCharWidth("0123456"); 01212 w = charw * TMath::Abs(5) / 10 + 8 + 2 * h / 3; // 5 is digit width 01213 fNumEntryRotateStep->Resize(w, h); 01214 01215 fNumEntryRotateStep->SetHeight(20); 01216 fNumEntryRotateStep->SetNumber(this->GetRotateStep()); 01217 fNumEntryRotateStep->Connect("ReturnPressed","BesClient",this,"ExecuteReturn()"); 01218 fNumEntryRotateStep->Connect("TabPressed","BesClient",this,"ChangeFocus()"); 01219 fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 4, 0, 0, 0); 01220 fWidgets->Add(fLayout); 01221 fRotateStepFrame->AddFrame(fNumEntryRotateStep, fLayout); 01222 01223 // label " deg " 01224 fRotateStepUnitLabel = new TGLabel(fRotateStepFrame," deg "); 01225 fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 0, 4, 0, 0); 01226 fWidgets->Add(fLayout); 01227 fRotateStepFrame->AddFrame(fRotateStepUnitLabel, fLayout); 01228 01229 // frame ViewContent 01230 fViewContentFrame = new TGCompositeFrame(fViewFrame, fViewFrame->GetWidth(), fViewFrame->GetHeight()-30, kVerticalFrame); 01231 fLayout = new TGLayoutHints(kLHintsExpandX | kLHintsExpandY , 0, 0, 0, 0); 01232 fWidgets->Add(fLayout); 01233 fViewFrame->AddFrame(fViewContentFrame, fLayout); 01234 01235 // frame ViewContent Line1 01236 fViewContent1Frame = new TGCompositeFrame(fViewContentFrame, fViewFrame->GetWidth(), 39, kHorizontalFrame); 01237 fLayout = new TGLayoutHints(kLHintsLeft | kLHintsTop , 0, 0, 3, 0); 01238 fWidgets->Add(fLayout); 01239 fViewContent1Frame->SetBackgroundPixmap(GetPic("ViewContent1Bckgnd.gif")); 01240 fViewContentFrame->AddFrame(fViewContent1Frame, fLayout); 01241 01242 // button ViewCounterClockwise 01243 fViewCounterClockWiseButton = new BesGPictureButton(fViewContent1Frame, 01244 gClient->GetPicture("ViewCounterClockwise.gif"), 01245 kM_Button_ViewCounterClockWise); 01246 fViewCounterClockWiseButton->SetToolTipText("Rotate Counter Clockwise"); 01247 fViewCounterClockWiseButton->SetHeight(37); 01248 fViewCounterClockWiseButton->SetWidth(37); 01249 fViewCounterClockWiseButton->Connect("Clicked()", "BesClient", this, "HandleButtons()"); 01250 01251 fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 5, 22, 0, 0); 01252 fWidgets->Add(fLayout); 01253 fViewContent1Frame->AddFrame(fViewCounterClockWiseButton, fLayout); 01254 01255 // button ViewMoveUp 01256 fViewMoveUpButton = new BesGPictureButton(fViewContent1Frame, 01257 gClient->GetPicture("ViewMoveUp.gif"), 01258 kM_Button_ViewMoveUp); 01259 fViewMoveUpButton->SetToolTipText("Move Up"); 01260 fViewMoveUpButton->SetHeight(20); 01261 fViewMoveUpButton->SetWidth(23); 01262 fViewMoveUpButton->Connect("Clicked()", "BesClient", this, "HandleButtons()"); 01263 01264 fLayout = new TGLayoutHints(kLHintsBottom | kLHintsCenterX, 5, 5, 0, 0); 01265 fWidgets->Add(fLayout); 01266 fViewContent1Frame->AddFrame(fViewMoveUpButton, fLayout); 01267 01268 // button ViewClockwise 01269 fViewClockWiseButton = new BesGPictureButton(fViewContent1Frame, 01270 gClient->GetPicture("ViewClockwise.gif"), 01271 kM_Button_ViewClockWise); 01272 fViewClockWiseButton->SetToolTipText("Rotate Clockwise"); 01273 fViewClockWiseButton->SetHeight(37); 01274 fViewClockWiseButton->SetWidth(37); 01275 fViewClockWiseButton->Connect("Clicked()", "BesClient", this, "HandleButtons()"); 01276 01277 fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsRight, 22, 5, 0, 0); 01278 fWidgets->Add(fLayout); 01279 fViewContent1Frame->AddFrame(fViewClockWiseButton, fLayout); 01280 01281 // frame ViewContent Line2 01282 fViewContent2Frame = new TGCompositeFrame(fViewContentFrame, fViewFrame->GetWidth(), 23, kHorizontalFrame); 01283 fLayout = new TGLayoutHints(kLHintsLeft | kLHintsTop , 0, 0, 0, 0); 01284 fWidgets->Add(fLayout); 01285 fViewContent2Frame->SetBackgroundPixmap(GetPic("ViewContent2Bckgnd.gif")); 01286 fViewContentFrame->AddFrame(fViewContent2Frame, fLayout); 01287 01288 // button ViewMoveLeft 01289 fViewMoveLeftButton = new BesGPictureButton(fViewContent2Frame, 01290 gClient->GetPicture("ViewMoveLeft.gif"), 01291 kM_Button_ViewMoveLeft); 01292 fViewMoveLeftButton->SetToolTipText("Move Left"); 01293 fViewMoveLeftButton->SetHeight(23); 01294 fViewMoveLeftButton->SetWidth(23); 01295 fViewMoveLeftButton->Connect("Clicked()", "BesClient", this, "HandleButtons()"); 01296 01297 fLayout = new TGLayoutHints(kLHintsBottom | kLHintsCenterX, 49, 2, 0, 0); 01298 fWidgets->Add(fLayout); 01299 fViewContent2Frame->AddFrame(fViewMoveLeftButton, fLayout); 01300 01301 // button ViewMoveMoveCenter 01302 fViewMoveCenterButton = new BesGPictureButton(fViewContent2Frame, 01303 gClient->GetPicture("ViewMoveCenter.gif"), 01304 kM_Button_ViewMoveCenter); 01305 fViewMoveCenterButton->SetToolTipText("Move Center"); 01306 fViewMoveCenterButton->SetHeight(13); 01307 fViewMoveCenterButton->SetWidth(13); 01308 fViewMoveCenterButton->Connect("Clicked()", "BesClient", this, "HandleButtons()"); 01309 01310 fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsCenterX, 0, 0, 0, 0); 01311 fWidgets->Add(fLayout); 01312 fViewContent2Frame->AddFrame(fViewMoveCenterButton, fLayout); 01313 01314 // button ViewMoveRight 01315 fViewMoveRightButton = new BesGPictureButton(fViewContent2Frame, 01316 gClient->GetPicture("ViewMoveRight.gif"), 01317 kM_Button_ViewMoveRight); 01318 fViewMoveRightButton->SetToolTipText("Move Right"); 01319 fViewMoveRightButton->SetHeight(23); 01320 fViewMoveRightButton->SetWidth(23); 01321 fViewMoveRightButton->Connect("Clicked()", "BesClient", this, "HandleButtons()"); 01322 01323 fLayout = new TGLayoutHints(kLHintsBottom | kLHintsCenterX, 2, 49, 0, 0); 01324 fWidgets->Add(fLayout); 01325 fViewContent2Frame->AddFrame(fViewMoveRightButton, fLayout); 01326 01327 // frame ViewContent Line3 01328 fViewContent3Frame = new TGCompositeFrame(fViewContentFrame, fViewFrame->GetWidth(), 32, kHorizontalFrame); 01329 fLayout = new TGLayoutHints(kLHintsLeft | kLHintsTop , 0, 0, 0, 3); 01330 fWidgets->Add(fLayout); 01331 fViewContent3Frame->SetBackgroundPixmap(GetPic("ViewContent3Bckgnd.gif")); 01332 fViewContentFrame->AddFrame(fViewContent3Frame, fLayout); 01333 01334 // button ViewMoveDown 01335 fViewMoveDownButton = new BesGPictureButton(fViewContent3Frame, 01336 gClient->GetPicture("ViewMoveDown.gif"), 01337 kM_Button_ViewMoveDown); 01338 fViewMoveDownButton->SetToolTipText("Move Down"); 01339 fViewMoveDownButton->SetHeight(32); 01340 fViewMoveDownButton->SetWidth(23); 01341 fViewMoveDownButton->Connect("Clicked()", "BesClient", this, "HandleButtons()"); 01342 01343 //fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsCenterX, 69, 69, 0, 0); 01344 fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 69, 0, 0, 0); 01345 fWidgets->Add(fLayout); 01346 fViewContent3Frame->AddFrame(fViewMoveDownButton, fLayout); 01347 01348 // reset angle button 01349 fViewResetAngleButton = new BesGPictureButton(fViewContent3Frame, 01350 gClient->GetPicture("ViewResetAngle.gif"), 01351 kM_Button_ViewResetAngle); 01352 01353 fViewResetAngleButton->SetToolTipText("Reset Angles"); 01354 fViewResetAngleButton->SetHeight(27); 01355 fViewResetAngleButton->SetWidth(27); 01356 fViewResetAngleButton->Connect("Clicked()", "BesClient", this, "HandleButtons()"); 01357 01358 fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 30, 0, 0, 0); 01359 fWidgets->Add(fLayout); 01360 fViewContent3Frame->AddFrame(fViewResetAngleButton, fLayout); 01361 01362 01363 // frame ViewAngle 01364 fViewAngleFrame = new TGCompositeFrame(fViewContentFrame, fViewContentFrame->GetWidth(), 50, kHorizontalFrame); 01365 fLayout = new TGLayoutHints(kLHintsLeft | kLHintsTop , 4, 4, 0, 0); 01366 fWidgets->Add(fLayout); 01367 fViewContentFrame->AddFrame(fViewAngleFrame, fLayout); 01368 01369 // frame ViewAngleTheta 01370 fViewAngleThetaFrame = new TGCompositeFrame(fViewAngleFrame, fViewAngleFrame->GetWidth(), 50, kVerticalFrame); 01371 fLayout = new TGLayoutHints(kLHintsLeft | kLHintsTop , 3, 3, 3, 3); 01372 fWidgets->Add(fLayout); 01373 fViewAngleFrame->AddFrame(fViewAngleThetaFrame, fLayout); 01374 01375 // button ViewAngleThetaMinus 01376 fViewAngleThetaMinusButton = new BesGPictureButton(fViewAngleThetaFrame, 01377 gClient->GetPicture("ViewAngleMinus.gif"), 01378 kM_Button_ViewAngleThetaMinus); 01379 fViewAngleThetaMinusButton->SetToolTipText("Theta -"); 01380 fViewAngleThetaMinusButton->SetHeight(22); 01381 fViewAngleThetaMinusButton->SetWidth(22); 01382 fViewAngleThetaMinusButton->Connect("Clicked()", "BesClient", this, "HandleButtons()"); 01383 01384 fLayout = new TGLayoutHints(kLHintsTop | kLHintsCenterX, 5, 5, 0, 0); 01385 fWidgets->Add(fLayout); 01386 fViewAngleThetaFrame->AddFrame(fViewAngleThetaMinusButton, fLayout); 01387 01388 // slider for ViewAngleTheta 01389 fViewAngleThetaSlider = new TGVSlider(fViewAngleThetaFrame, 120, kSlider2 | kScaleBoth, kM_Slider_ViewAngleTheta); 01390 fViewAngleThetaSlider->Connect("PositionChanged(Int_t)", "BesClient", this, "HandleSliders(Int_t)"); 01391 fViewAngleThetaSlider->SetRange(0, 180); 01392 fViewAngleThetaSlider->SetPosition(0); 01393 fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsCenterX | kLHintsExpandY, 5, 5, 0, 0); 01394 fWidgets->Add(fLayout); 01395 fViewAngleThetaFrame->AddFrame(fViewAngleThetaSlider, fLayout); 01396 01397 // button ViewAngleThetaPlus 01398 fViewAngleThetaPlusButton = new BesGPictureButton(fViewAngleThetaFrame, 01399 gClient->GetPicture("ViewAnglePlus.gif"), 01400 kM_Button_ViewAngleThetaPlus); 01401 fViewAngleThetaPlusButton->SetToolTipText("Theta +"); 01402 fViewAngleThetaPlusButton->SetHeight(22); 01403 fViewAngleThetaPlusButton->SetWidth(22); 01404 fViewAngleThetaPlusButton->Connect("Clicked()", "BesClient", this, "HandleButtons()"); 01405 01406 fLayout = new TGLayoutHints(kLHintsTop | kLHintsCenterX, 5, 5, 0, 0); 01407 fWidgets->Add(fLayout); 01408 fViewAngleThetaFrame->AddFrame(fViewAngleThetaPlusButton, fLayout); 01409 01410 // number ViewAngleTheta 01411 //fViewAngleThetaNumber = new TGNumberEntry( fViewAngleThetaFrame, 0, 3, kM_Button_ViewAngleThetaNumber, 01412 // (TGNumberFormat::EStyle) 6, (TGNumberFormat::EAttribute) 0 ); 01413 fViewAngleThetaNumber = new TGNumberEntryField( fViewAngleThetaFrame, kM_Button_ViewAngleThetaNumber, 01414 fViewAngleThetaSlider->GetPosition(), 01415 (TGNumberFormat::EStyle) 1, (TGNumberFormat::EAttribute) 0 ); 01416 fViewAngleThetaNumber->Connect("ReturnPressed","BesClient",this,"ExecuteReturn()"); 01417 h = fViewAngleThetaNumber->GetDefaultHeight(); 01418 charw = fViewAngleThetaNumber->GetCharWidth("0123456"); 01419 w = charw * TMath::Abs(4) / 10 + 8 + 2 * h / 3; // 4 is digit width 01420 fViewAngleThetaNumber->Resize(w, h); 01421 01422 fLayout = new TGLayoutHints(kLHintsTop | kLHintsCenterX, 2, 2, 2, 0); 01423 fWidgets->Add(fLayout); 01424 fViewAngleThetaFrame->AddFrame(fViewAngleThetaNumber, fLayout); 01425 01426 // label theta 01427 fViewAngleThetaLabel = new TGLabel(fViewAngleThetaFrame,"theta"); 01428 fLayout = new TGLayoutHints(kLHintsTop | kLHintsCenterX, 2, 2, 2, 2); 01429 fWidgets->Add(fLayout); 01430 fViewAngleThetaFrame->AddFrame(fViewAngleThetaLabel, fLayout); 01431 01432 // frame ViewAnglePhi 01433 fViewAnglePhiFrame = new TGCompositeFrame(fViewAngleFrame, fViewAngleFrame->GetWidth(), 50, kVerticalFrame); 01434 fLayout = new TGLayoutHints(kLHintsLeft | kLHintsTop , 3, 3, 3, 3); 01435 fWidgets->Add(fLayout); 01436 fViewAngleFrame->AddFrame(fViewAnglePhiFrame, fLayout); 01437 01438 // button ViewAnglePhiMinus 01439 fViewAnglePhiMinusButton = new BesGPictureButton(fViewAnglePhiFrame, 01440 gClient->GetPicture("ViewAngleMinus.gif"), 01441 kM_Button_ViewAnglePhiMinus); 01442 fViewAnglePhiMinusButton->SetToolTipText("Phi -"); 01443 fViewAnglePhiMinusButton->SetHeight(22); 01444 fViewAnglePhiMinusButton->SetWidth(22); 01445 fViewAnglePhiMinusButton->Connect("Clicked()", "BesClient", this, "HandleButtons()"); 01446 01447 fLayout = new TGLayoutHints(kLHintsTop | kLHintsCenterX, 5, 5, 0, 0); 01448 fWidgets->Add(fLayout); 01449 fViewAnglePhiFrame->AddFrame(fViewAnglePhiMinusButton, fLayout); 01450 01451 // slider for ViewAnglePhi 01452 fViewAnglePhiSlider = new TGVSlider(fViewAnglePhiFrame, 120, kSlider2 | kScaleBoth, kM_Slider_ViewAnglePhi); 01453 fViewAnglePhiSlider->Connect("PositionChanged(Int_t)", "BesClient", this, "HandleSliders(Int_t)"); 01454 fViewAnglePhiSlider->SetRange(0, 360); 01455 fViewAnglePhiSlider->SetPosition(0); 01456 fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsCenterX | kLHintsExpandY, 5, 5, 0, 0); 01457 fWidgets->Add(fLayout); 01458 fViewAnglePhiFrame->AddFrame(fViewAnglePhiSlider, fLayout); 01459 01460 // button ViewAnglePhiPlus 01461 fViewAnglePhiPlusButton = new BesGPictureButton(fViewAnglePhiFrame, 01462 gClient->GetPicture("ViewAnglePlus.gif"), 01463 kM_Button_ViewAnglePhiPlus); 01464 fViewAnglePhiPlusButton->SetToolTipText("Phi +"); 01465 fViewAnglePhiPlusButton->SetHeight(22); 01466 fViewAnglePhiPlusButton->SetWidth(22); 01467 fViewAnglePhiPlusButton->Connect("Clicked()", "BesClient", this, "HandleButtons()"); 01468 01469 fLayout = new TGLayoutHints(kLHintsTop | kLHintsCenterX, 5, 5, 0, 0); 01470 fWidgets->Add(fLayout); 01471 fViewAnglePhiFrame->AddFrame(fViewAnglePhiPlusButton, fLayout); 01472 01473 // number ViewAnglePhi 01474 //fViewAnglePhiNumber = new TGNumberEntry( fViewAnglePhiFrame, 0, 3, kM_Button_ViewAnglePhiNumber, 01475 // (TGNumberFormat::EStyle) 6, (TGNumberFormat::EAttribute) 0 ); 01476 fViewAnglePhiNumber = new TGNumberEntryField( fViewAnglePhiFrame, kM_Button_ViewAnglePhiNumber, 01477 fViewAnglePhiSlider->GetPosition(), 01478 (TGNumberFormat::EStyle) 1, (TGNumberFormat::EAttribute) 0 ); 01479 fViewAnglePhiNumber->Connect("ReturnPressed","BesClient",this,"ExecuteReturn()"); 01480 h = fViewAnglePhiNumber->GetDefaultHeight(); 01481 charw = fViewAnglePhiNumber->GetCharWidth("0123456"); 01482 w = charw * TMath::Abs(4) / 10 + 8 + 2 * h / 3; // 4 is digit width 01483 fViewAnglePhiNumber->Resize(w, h); 01484 01485 fLayout = new TGLayoutHints(kLHintsTop | kLHintsCenterX, 2, 2, 2, 0); 01486 fWidgets->Add(fLayout); 01487 fViewAnglePhiFrame->AddFrame(fViewAnglePhiNumber, fLayout); 01488 01489 // label phi 01490 fViewAnglePhiLabel = new TGLabel(fViewAnglePhiFrame,"phi"); 01491 fLayout = new TGLayoutHints(kLHintsTop | kLHintsCenterX, 2, 2, 2, 2); 01492 fWidgets->Add(fLayout); 01493 fViewAnglePhiFrame->AddFrame(fViewAnglePhiLabel, fLayout); 01494 01495 // frame ViewAnglePsi 01496 fViewAnglePsiFrame = new TGCompositeFrame(fViewAngleFrame, fViewAngleFrame->GetWidth(), 50, kVerticalFrame); 01497 fLayout = new TGLayoutHints(kLHintsLeft | kLHintsTop , 3, 3, 3, 3); 01498 fWidgets->Add(fLayout); 01499 fViewAngleFrame->AddFrame(fViewAnglePsiFrame, fLayout); 01500 01501 // button ViewAnglePsiMinus 01502 fViewAnglePsiMinusButton = new BesGPictureButton(fViewAnglePsiFrame, 01503 gClient->GetPicture("ViewAngleMinus.gif"), 01504 kM_Button_ViewAnglePsiMinus); 01505 fViewAnglePsiMinusButton->SetToolTipText("Psi -"); 01506 fViewAnglePsiMinusButton->SetHeight(22); 01507 fViewAnglePsiMinusButton->SetWidth(22); 01508 fViewAnglePsiMinusButton->Connect("Clicked()", "BesClient", this, "HandleButtons()"); 01509 01510 fLayout = new TGLayoutHints(kLHintsTop | kLHintsCenterX, 5, 5, 0, 0); 01511 fWidgets->Add(fLayout); 01512 fViewAnglePsiFrame->AddFrame(fViewAnglePsiMinusButton, fLayout); 01513 01514 // slider for ViewAnglePsi 01515 fViewAnglePsiSlider = new TGVSlider(fViewAnglePsiFrame, 120, kSlider2 | kScaleBoth, kM_Slider_ViewAnglePsi); 01516 fViewAnglePsiSlider->Connect("PositionChanged(Int_t)", "BesClient", this, "HandleSliders(Int_t)"); 01517 fViewAnglePsiSlider->SetRange(0, 360); 01518 fViewAnglePsiSlider->SetPosition(270); 01519 fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsCenterX | kLHintsExpandY, 5, 5, 0, 0); 01520 fWidgets->Add(fLayout); 01521 fViewAnglePsiFrame->AddFrame(fViewAnglePsiSlider, fLayout); 01522 01523 // button ViewAnglePsiPlus 01524 fViewAnglePsiPlusButton = new BesGPictureButton(fViewAnglePsiFrame, 01525 gClient->GetPicture("ViewAnglePlus.gif"), 01526 kM_Button_ViewAnglePsiPlus); 01527 fViewAnglePsiPlusButton->SetToolTipText("Psi +"); 01528 fViewAnglePsiPlusButton->SetHeight(22); 01529 fViewAnglePsiPlusButton->SetWidth(22); 01530 fViewAnglePsiPlusButton->Connect("Clicked()", "BesClient", this, "HandleButtons()"); 01531 01532 fLayout = new TGLayoutHints(kLHintsTop | kLHintsCenterX, 5, 5, 0, 0); 01533 fWidgets->Add(fLayout); 01534 fViewAnglePsiFrame->AddFrame(fViewAnglePsiPlusButton, fLayout); 01535 01536 // number ViewAnglePsi 01537 //fViewAnglePsiNumber = new TGNumberEntry( fViewAnglePsiFrame, 0, 3, kM_Button_ViewAnglePsiNumber, 01538 // (TGNumberFormat::EStyle) 6, (TGNumberFormat::EAttribute) 0 ); 01539 fViewAnglePsiNumber = new TGNumberEntryField( fViewAnglePsiFrame, kM_Button_ViewAnglePsiNumber, 01540 fViewAnglePsiSlider->GetPosition(), 01541 (TGNumberFormat::EStyle) 1, (TGNumberFormat::EAttribute) 0 ); 01542 fViewAnglePsiNumber->Connect("ReturnPressed","BesClient",this,"ExecuteReturn()"); 01543 h = fViewAnglePsiNumber->GetDefaultHeight(); 01544 charw = fViewAnglePsiNumber->GetCharWidth("0123456"); 01545 w = charw * TMath::Abs(4) / 10 + 8 + 2 * h / 3; // 4 is digit width 01546 fViewAnglePsiNumber->Resize(w, h); 01547 01548 fLayout = new TGLayoutHints(kLHintsTop | kLHintsCenterX, 2, 2, 2, 0); 01549 fWidgets->Add(fLayout); 01550 fViewAnglePsiFrame->AddFrame(fViewAnglePsiNumber, fLayout); 01551 01552 // label psi 01553 fViewAnglePsiLabel = new TGLabel(fViewAnglePsiFrame,"psi"); 01554 fLayout = new TGLayoutHints(kLHintsTop | kLHintsCenterX, 2, 2, 2, 2); 01555 fWidgets->Add(fLayout); 01556 fViewAnglePsiFrame->AddFrame(fViewAnglePsiLabel, fLayout); 01557 01558 // 01559 // "Event" tab 01560 // ================ 01561 tf = fTabs->AddTab("Event"); 01562 tf->SetBackgroundPixmap(GetPic("8.gif")); 01563 01564 // 01565 // frame for event control 01566 // ===================== 01567 fEventControlFrame = new TGCompositeFrame(tf, tf->GetWidth(), tf->GetHeight(), kVerticalFrame); 01568 fLayout = new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsExpandX , 15, 15, 15, 10); 01569 fWidgets->Add(fLayout); 01570 tf->AddFrame(fEventControlFrame, fLayout); 01571 fEventControlFrame->SetBackgroundPixmap(GetPic("EventFrameBckgnd.gif")); 01572 01573 01574 // lable "Event control" 01575 fEventControlTextFrame = new TGCompositeFrame(fEventControlFrame, fEventControlFrame->GetWidth(), 30, kHorizontalFrame); 01576 fLayout = new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsExpandX, 0, 0, 0, 0); 01577 fWidgets->Add(fLayout); 01578 fEventControlFrame->AddFrame(fEventControlTextFrame, fLayout); 01579 fEventControlTextFrame->SetBackgroundPixmap(GetPic("EventControlBckgnd.gif")); 01580 01581 fEventControlTextLabel = new TGLabel(fEventControlTextFrame,"Event Control "); 01582 fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsLeft | kLHintsExpandX , 2, 73, 4, 4); 01583 fWidgets->Add(fLayout); 01584 fEventControlTextFrame->AddFrame(fEventControlTextLabel, fLayout); 01585 fEventControlTextLabel->SetBackgroundPixmap(GetPic("EventControlBckgnd.gif")); 01586 01587 // input of run nr 01588 fBesRunFrame = new TGHorizontalFrame(fEventControlFrame, fEventControlFrame->GetWidth(), 25); 01589 fLayout = new TGLayoutHints(kLHintsLeft | kLHintsExpandX , 4, 4, 4, 4); 01590 fWidgets->Add(fLayout); 01591 fEventControlFrame->AddFrame(fBesRunFrame, fLayout); 01592 fBesRunFrame->SetBackgroundPixmap(GetPic("EventFrameBckgnd.gif")); 01593 01594 fBesLabelRun = new TGLabel(fBesRunFrame, "Run : "); 01595 fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 4, 4, 4, 4); 01596 fWidgets->Add(fLayout); 01597 fBesRunFrame->AddFrame(fBesLabelRun, fLayout); 01598 01599 fNumEntryRunNo = new TGNumberEntry(fBesRunFrame,this->GetBesRunNo(),12,kM_Button_BesRun,(TGNumberFormat::EStyle) 0,(TGNumberFormat::EAttribute) 1); // 16 is ditits number in the entry 01600 fNumEntryRunNo->SetHeight(20); 01601 fNumEntryRunNo->SetNumber(this->GetBesRunNo()); 01602 fNumEntryRunNo->GetNumberEntry()->Connect("ReturnPressed","BesClient",this,"ExecuteReturn()"); 01603 fNumEntryRunNo->GetNumberEntry()->Connect("TabPressed","BesClient",this,"ChangeFocus()"); 01604 fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsRight, 4, 4, 4, 4); 01605 fWidgets->Add(fLayout); 01606 fBesRunFrame->AddFrame(fNumEntryRunNo, fLayout); 01607 01608 // input of Event nr 01609 fBesEventFrame = new TGHorizontalFrame(fEventControlFrame, fEventControlFrame->GetWidth(), 25); 01610 fLayout = new TGLayoutHints(kLHintsLeft | kLHintsExpandX , 4, 4, 4, 4); 01611 fWidgets->Add(fLayout); 01612 fEventControlFrame->AddFrame(fBesEventFrame, fLayout); 01613 01614 fBesLabelEvent = new TGLabel(fBesEventFrame, "Event : "); 01615 fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 4, 4, 4, 4); 01616 fWidgets->Add(fLayout); 01617 fBesEventFrame->AddFrame(fBesLabelEvent, fLayout); 01618 01619 fNumEntryEventNo = new TGNumberEntry(fBesEventFrame,this->GetBesEventNo(),12,kM_Button_BesEvent,(TGNumberFormat::EStyle) 0,(TGNumberFormat::EAttribute) 1); 01620 fNumEntryEventNo->SetHeight(20); 01621 fNumEntryEventNo->SetNumber(this->GetBesEventNo()); 01622 fNumEntryEventNo->GetNumberEntry()->Connect("ReturnPressed","BesClient",this,"ExecuteReturn()"); 01623 fNumEntryEventNo->GetNumberEntry()->Connect("TabPressed","BesClient",this,"ChangeFocus()"); 01624 fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsRight, 4, 4, 4, 4); 01625 fWidgets->Add(fLayout); 01626 fBesEventFrame->AddFrame(fNumEntryEventNo, fLayout); 01627 01628 // 01629 // frame for event play 01630 // ==================== 01631 01632 // slider for event play 01633 fEventPlaySlider = new TGHSlider(fEventControlFrame, 40, kSlider1 | kScaleNo, kM_Slider_EventPlay); 01634 fEventPlaySlider->Connect("PositionChanged(Int_t)", "BesClient", this, "HandleSliders(Int_t)"); 01635 fEventPlaySlider->SetRange(0, 100); 01636 fEventPlaySlider->SetPosition(0); 01637 fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsCenterX | kLHintsExpandX, 5, 5, 5, 0); 01638 fWidgets->Add(fLayout); 01639 fEventControlFrame->AddFrame(fEventPlaySlider, fLayout); 01640 01641 // event play buttons 01642 fEventPlayButtonFrame = new TGCompositeFrame(fEventControlFrame, fEventControlFrame->GetWidth(), 30, kHorizontalFrame); 01643 //fEventNavFrame->SetBackgroundPixmap(GetPic("1.gif")); 01644 fLayout = new TGLayoutHints(kLHintsCenterX | kLHintsTop, 2, 2, 2, 2); 01645 fWidgets->Add(fLayout); 01646 fEventControlFrame->AddFrame(fEventPlayButtonFrame, fLayout); 01647 01648 // prev button 01649 fPrevEventButton = new BesGPictureButton(fEventPlayButtonFrame, 01650 gClient->GetPicture("ButtonEventPrev.gif"), 01651 kM_Button_PrevEvent); 01652 fPrevEventButton->SetToolTipText("Previous Event"); 01653 fPrevEventButton->SetHeight(26); 01654 fPrevEventButton->SetWidth(25); 01655 fPrevEventButton->Connect("Clicked()", "BesClient", this, "HandleButtons()"); 01656 01657 fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 8, 0, 0, 4); 01658 fWidgets->Add(fLayout); 01659 fEventPlayButtonFrame->AddFrame(fPrevEventButton, fLayout); 01660 01661 // next button 01662 fNextEventButton = new BesGPictureButton(fEventPlayButtonFrame, 01663 gClient->GetPicture("ButtonEventNext.gif"), kM_Button_NextEvent); 01664 fNextEventButton->SetToolTipText("Next Event"); 01665 fNextEventButton->SetHeight(26); 01666 fNextEventButton->SetWidth(26); 01667 fNextEventButton->Connect("Clicked()", "BesClient", this, "HandleButtons()"); 01668 01669 fLayout = new TGLayoutHints(kLHintsLeft | kLHintsCenterY, 0, 10, 0, 4); 01670 fWidgets->Add(fLayout); 01671 fEventPlayButtonFrame->AddFrame(fNextEventButton, fLayout); 01672 01673 // play button 01674 fPlayEventButton = new BesGPictureButton(fEventPlayButtonFrame, 01675 gClient->GetPicture("ButtonEventPlay.gif"), 01676 kM_Button_PlayEvent); 01677 fPlayEventButton->SetToolTipText("Play Event"); 01678 fPlayEventButton->SetHeight(35); 01679 fPlayEventButton->SetWidth(34); 01680 fPlayEventButton->Connect("Clicked()", "BesClient", this, "HandleButtons()"); 01681 01682 fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 5, 0, 0, 4); 01683 fWidgets->Add(fLayout); 01684 fEventPlayButtonFrame->AddFrame(fPlayEventButton, fLayout); 01685 01686 // first button 01687 fFirstEventButton = new BesGPictureButton(fEventPlayButtonFrame, 01688 gClient->GetPicture("ButtonEventReturn.gif"), 01689 kM_Button_FirstEvent); 01690 fFirstEventButton->SetToolTipText("First Event"); 01691 fFirstEventButton->SetHeight(35); 01692 fFirstEventButton->SetWidth(25); 01693 fFirstEventButton->Connect("Clicked()", "BesClient", this, "HandleButtons()"); 01694 01695 fLayout = new TGLayoutHints(kLHintsLeft | kLHintsCenterY, 0, 8, 0, 4); 01696 fWidgets->Add(fLayout); 01697 fEventPlayButtonFrame->AddFrame(fFirstEventButton, fLayout); 01698 01699 // lable "Event Play" 01700 fEventPlayTextFrame = new TGCompositeFrame(fEventControlFrame, fEventControlFrame->GetWidth(), 30, kHorizontalFrame); 01701 fLayout = new TGLayoutHints(kLHintsCenterX | kLHintsTop, 2, 2, 2, 2); 01702 fWidgets->Add(fLayout); 01703 fEventControlFrame->AddFrame(fEventPlayTextFrame, fLayout); 01704 01705 fEventPlayTextLabel = new TGLabel(fEventPlayTextFrame,"Prev,Next,Play/Stop,Return"); 01706 fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 5, 4, 2, 5); 01707 fWidgets->Add(fLayout); 01708 fEventPlayTextFrame->AddFrame(fEventPlayTextLabel, fLayout); 01709 01710 01711 // play speed 01712 fEventPlaySpeedFrame = new TGCompositeFrame(fEventControlFrame, fEventControlFrame->GetWidth(), 30, kHorizontalFrame); 01713 fLayout = new TGLayoutHints(kLHintsCenterX | kLHintsTop, 4, 4, 4, 4); 01714 fWidgets->Add(fLayout); 01715 fEventControlFrame->AddFrame(fEventPlaySpeedFrame, fLayout); 01716 01717 // input of speed 01718 fNumEntryEventPlaySpeed = new TGNumberEntry(fEventPlaySpeedFrame,(Double_t)this->GetEventPlaySpeed()/1000.0,4, 01719 kM_Button_EventPlaySpeed, 01720 (TGNumberFormat::EStyle) 1,(TGNumberFormat::EAttribute) 1); 01721 fNumEntryEventPlaySpeed->SetHeight(20); 01722 fNumEntryEventPlaySpeed->SetNumber(this->GetEventPlaySpeed()/1000.0); 01723 fNumEntryEventPlaySpeed->GetNumberEntry()->Connect("ReturnPressed","BesClient",this,"ExecuteReturn()"); 01724 fNumEntryEventPlaySpeed->GetNumberEntry()->Connect("TabPressed","BesClient",this,"ChangeFocus()"); 01725 fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 4, 4, 4, 4); 01726 fWidgets->Add(fLayout); 01727 fEventPlaySpeedFrame->AddFrame(fNumEntryEventPlaySpeed, fLayout); 01728 01729 // label "Play Speed : " 01730 fEventPlaySpeedLabel = new TGLabel(fEventPlaySpeedFrame," sec/event "); 01731 fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsRight, 2, 4, 4, 10); 01732 fWidgets->Add(fLayout); 01733 fEventPlaySpeedFrame->AddFrame(fEventPlaySpeedLabel, fLayout); 01734 01735 01736 /* 01737 // 01738 // frame for file list 01739 // =================== 01740 fEventListFrame = new TGCompositeFrame(tf, tf->GetWidth(), tf->GetHeight(), kVerticalFrame); 01741 fLayout = new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsBottom | kLHintsExpandX | kLHintsExpandY , 15, 15, 10, 200); 01742 fWidgets->Add(fLayout); 01743 //tf->AddFrame(fEventListFrame, fLayout); 01744 fEventListFrame->SetBackgroundPixmap(GetPic("12.gif")); 01745 01746 // lable "File list" 01747 fEventListTextFrame = new TGCompositeFrame(fEventListFrame, fEventListFrame->GetWidth(), 30, kHorizontalFrame); 01748 fLayout = new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsExpandX, 0, 0, 0, 0); 01749 fWidgets->Add(fLayout); 01750 fEventListFrame->AddFrame(fEventListTextFrame, fLayout); 01751 fEventListTextFrame->SetBackgroundPixmap(GetPic("11.gif")); 01752 01753 fEventListTextLabel = new TGLabel(fEventListTextFrame,"Event file list "); 01754 fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsLeft | kLHintsExpandX , 2, 73, 4, 4); 01755 fWidgets->Add(fLayout); 01756 fEventListTextFrame->AddFrame(fEventListTextLabel, fLayout); 01757 fEventListTextLabel->SetBackgroundPixmap(GetPic("11.gif")); 01758 01759 // frame EventListContent 01760 fEventListContentFrame = new TGCompositeFrame(fEventListFrame, fEventListFrame->GetWidth(), fEventListFrame->GetHeight()-30, kVerticalFrame); 01761 fLayout = new TGLayoutHints(kLHintsExpandX | kLHintsExpandY , 10, 10, 10, 10); 01762 fWidgets->Add(fLayout); 01763 fEventListFrame->AddFrame(fEventListContentFrame, fLayout); 01764 01765 fEventListView = new TGCanvas(fEventListContentFrame, 2, 2, kSunkenFrame | kDoubleBorder); 01766 01767 fEventListTree = new TGListTree(fEventListView->GetViewPort(), 2, 2, kHorizontalFrame); 01768 01769 fEventListView->SetContainer(fEventListTree); 01770 fEventListTree->SetCanvas(fEventListView); 01771 fLayout = new TGLayoutHints(kLHintsExpandX | kLHintsExpandY, 0, 0, 0, 0); 01772 fWidgets->Add(fLayout); 01773 fEventListContentFrame->AddFrame(fEventListView, fLayout); 01774 01775 // Connect event list tree 01776 fEventListTree->Connect("Clicked(TGListTreeItem*, Int_t)", 01777 "BesClient", this, 01778 "HandleEventList(TGListTreeItem*, Int_t)"); 01779 01780 // init active tree item 01781 fItem = 0; 01782 fRunItem = 0; 01783 */ 01784 01785 01786 // "Show DST Info" tab 01787 // ================ 01788 tf = fTabs->AddTab("REC"); 01789 //tf = fTabs->AddTab("DST"); 01790 tf->SetBackgroundPixmap(GetPic("8.gif")); 01791 01792 //Header 01793 fFrameHeader =new TGGroupFrame(tf, "Header"); 01794 fLayout = new TGLayoutHints(kLHintsExpandX, 15, 15, 15, 15); 01795 fWidgets->Add(fLayout); 01796 tf->AddFrame(fFrameHeader, fLayout); 01797 fChkBtnHeaderGlobal = new TGCheckButton(fFrameHeader, "Header", kM_Header_Global); 01798 fFrameHeader->AddFrame(fChkBtnHeaderGlobal); 01799 fChkBtnHeaderGlobal->Connect("Clicked()", "BesClient", this, "SetState()"); 01800 01801 // Hits 01802 fFrameHits = new TGGroupFrame(tf, "Hits"); 01803 fLayout = new TGLayoutHints(kLHintsExpandX, 15, 15, 15, 15); 01804 fWidgets->Add(fLayout); 01805 tf->AddFrame(fFrameHits, fLayout); 01806 01807 fChkBtnMdcHitsGlobal = new TGCheckButton(fFrameHits, "Mdc hits", kM_MdcHits_Global); 01808 fFrameHits->AddFrame(fChkBtnMdcHitsGlobal); 01809 01810 fChkBtnTofHitsGlobal = new TGCheckButton(fFrameHits, "Tof hits", kM_TofHits_Global); 01811 fFrameHits->AddFrame(fChkBtnTofHitsGlobal); 01812 01813 fChkBtnTofHitsEast = new TGCheckButton(fFrameHits, " East ", kM_TofHits_East); 01814 fLayout = new TGLayoutHints(kLHintsLeft, 20, 0, 0, 0); 01815 fWidgets->Add(fLayout); 01816 fFrameHits->AddFrame(fChkBtnTofHitsEast, fLayout); 01817 01818 fChkBtnTofHitsBarrel = new TGCheckButton(fFrameHits, " Barrel ", kM_TofHits_Barrel); 01819 fFrameHits->AddFrame(fChkBtnTofHitsBarrel, fLayout); 01820 01821 fChkBtnTofHitsWest = new TGCheckButton(fFrameHits, " West ", kM_TofHits_West); 01822 fFrameHits->AddFrame(fChkBtnTofHitsWest, fLayout); 01823 01824 fChkBtnEmcHitsGlobal = new TGCheckButton(fFrameHits, "Emc hits", kM_EmcHits_Global); 01825 fFrameHits->AddFrame(fChkBtnEmcHitsGlobal); 01826 01827 fChkBtnEmcHitsEast = new TGCheckButton(fFrameHits, " East ", kM_EmcHits_East); 01828 fLayout = new TGLayoutHints(kLHintsLeft, 20, 0, 0, 0); 01829 fWidgets->Add(fLayout); 01830 fFrameHits->AddFrame(fChkBtnEmcHitsEast, fLayout); 01831 01832 fChkBtnEmcHitsBarrel = new TGCheckButton(fFrameHits, " Barrel ", kM_EmcHits_Barrel); 01833 fFrameHits->AddFrame(fChkBtnEmcHitsBarrel, fLayout); 01834 01835 fChkBtnEmcHitsWest = new TGCheckButton(fFrameHits, " West ", kM_EmcHits_West); 01836 fFrameHits->AddFrame(fChkBtnEmcHitsWest, fLayout); 01837 01838 fChkBtnEmcHitsSide = new TGCheckButton(fFrameHits, " Side ", kM_EmcHits_Side); 01839 fFrameHits->AddFrame(fChkBtnEmcHitsSide, fLayout); 01840 01841 fChkBtnMucHitsGlobal = new TGCheckButton(fFrameHits, "Muc hits", kM_MucHits_Global); 01842 fFrameHits->AddFrame(fChkBtnMucHitsGlobal); 01843 01844 fChkBtnMucHitsEast = new TGCheckButton(fFrameHits, " East ", kM_MucHits_East); 01845 fLayout = new TGLayoutHints(kLHintsLeft, 20, 0, 0, 0); 01846 fWidgets->Add(fLayout); 01847 fFrameHits->AddFrame(fChkBtnMucHitsEast, fLayout); 01848 01849 fChkBtnMucHitsBarrel = new TGCheckButton(fFrameHits, " Barrel ", kM_MucHits_Barrel); 01850 fFrameHits->AddFrame(fChkBtnMucHitsBarrel, fLayout); 01851 01852 fChkBtnMucHitsWest = new TGCheckButton(fFrameHits, " West ", kM_MucHits_West); 01853 fFrameHits->AddFrame(fChkBtnMucHitsWest, fLayout); 01854 01855 fChkBtnMdcHitsGlobal->Connect("Clicked()", "BesClient", this, "SetState()"); 01856 fChkBtnTofHitsGlobal->Connect("Clicked()", "BesClient", this, "SetState()"); 01857 fChkBtnTofHitsEast ->Connect("Clicked()", "BesClient", this, "SetState()"); 01858 fChkBtnTofHitsBarrel->Connect("Clicked()", "BesClient", this, "SetState()"); 01859 fChkBtnTofHitsWest ->Connect("Clicked()", "BesClient", this, "SetState()"); 01860 fChkBtnEmcHitsGlobal->Connect("Clicked()", "BesClient", this, "SetState()"); 01861 fChkBtnEmcHitsEast ->Connect("Clicked()", "BesClient", this, "SetState()"); 01862 fChkBtnEmcHitsBarrel->Connect("Clicked()", "BesClient", this, "SetState()"); 01863 fChkBtnEmcHitsWest ->Connect("Clicked()", "BesClient", this, "SetState()"); 01864 fChkBtnEmcHitsSide ->Connect("Clicked()", "BesClient", this, "SetState()"); 01865 fChkBtnMucHitsGlobal->Connect("Clicked()", "BesClient", this, "SetState()"); 01866 fChkBtnMucHitsEast ->Connect("Clicked()", "BesClient", this, "SetState()"); 01867 fChkBtnMucHitsBarrel->Connect("Clicked()", "BesClient", this, "SetState()"); 01868 fChkBtnMucHitsWest ->Connect("Clicked()", "BesClient", this, "SetState()"); 01869 01870 // Tracks 01871 fFrameTracks = new TGGroupFrame(tf, "Tracks"); 01872 fLayout = new TGLayoutHints(kLHintsExpandX, 15, 15, 15, 15); 01873 fWidgets->Add(fLayout); 01874 tf->AddFrame(fFrameTracks, fLayout); 01875 01876 fChkBtnTracksGlobal = new TGCheckButton(fFrameTracks, "Tracks", kM_Tracks_Global); 01877 fFrameTracks->AddFrame(fChkBtnTracksGlobal); 01878 01879 fChkBtnTracksMdc = new TGCheckButton(fFrameTracks, " Mdc ", kM_Tracks_Mdc); 01880 fLayout = new TGLayoutHints(kLHintsLeft, 20, 0, 0, 0); 01881 fWidgets->Add(fLayout); 01882 fFrameTracks->AddFrame(fChkBtnTracksMdc, fLayout); 01883 01884 fChkBtnTracksTof = new TGCheckButton(fFrameTracks, " Tof ", kM_Tracks_Tof); 01885 fFrameTracks->AddFrame(fChkBtnTracksTof, fLayout); 01886 01887 fChkBtnTracksEmc = new TGCheckButton(fFrameTracks, " Emc ", kM_Tracks_Emc); 01888 fFrameTracks->AddFrame(fChkBtnTracksEmc, fLayout); 01889 01890 fChkBtnTracksMuc = new TGCheckButton(fFrameTracks, " Muc ", kM_Tracks_Muc); 01891 fFrameTracks->AddFrame(fChkBtnTracksMuc, fLayout); 01892 01893 fChkBtnTracksExt = new TGCheckButton(fFrameTracks, " Ext ", kM_Tracks_Ext); 01894 fFrameTracks->AddFrame(fChkBtnTracksExt, fLayout); 01895 01896 fChkBtnTracksGlobal->Connect("Clicked()", "BesClient", this, "SetState()"); 01897 fChkBtnTracksMdc->Connect("Clicked()", "BesClient", this, "SetState()"); 01898 fChkBtnTracksTof->Connect("Clicked()", "BesClient", this, "SetState()"); 01899 fChkBtnTracksEmc->Connect("Clicked()", "BesClient", this, "SetState()"); 01900 fChkBtnTracksMuc->Connect("Clicked()", "BesClient", this, "SetState()"); 01901 fChkBtnTracksExt->Connect("Clicked()", "BesClient", this, "SetState()"); 01902 01903 // 01904 // "Show Detector" tab 01905 // =================== 01906 tf = fTabs->AddTab("Detector"); 01907 tf->SetBackgroundPixmap(GetPic("8.gif")); 01908 //tf->SetBackgroundPixmap(GetPic("3.gif")); 01909 01910 fFrameSubDetector = new TGGroupFrame(tf, "Sub-Detector"); 01911 01912 // SubDetector 01913 fLayout = new TGLayoutHints(kLHintsExpandX, 15, 15, 15, 15); 01914 fWidgets->Add(fLayout); 01915 tf->AddFrame(fFrameSubDetector, fLayout); 01916 01917 // Mdc 01918 fChkBtnMdcGlobal = new TGCheckButton(fFrameSubDetector, "Mdc", kM_Mdc_Global); 01919 fLayout = new TGLayoutHints(kLHintsExpandX, 0, 0, 10, 0); 01920 fFrameSubDetector->AddFrame(fChkBtnMdcGlobal, fLayout); 01921 fChkBtnMdcGlobal->Connect("Clicked()", "BesClient", this, "SetState()"); 01922 01923 fChkBtnMdcTubes = new TGCheckButton(fFrameSubDetector, "Tubes", kM_Mdc_Tubes); 01924 fLayout = new TGLayoutHints(kLHintsLeft, 20, 0, 0, 0); 01925 fFrameSubDetector->AddFrame(fChkBtnMdcTubes, fLayout); 01926 fChkBtnMdcTubes->Connect("Clicked()", "BesClient", this, "SetState()"); 01927 01928 fChkBtnMdcWires = new TGCheckButton(fFrameSubDetector, "Wires", kM_Mdc_Wires); 01929 fFrameSubDetector->AddFrame(fChkBtnMdcWires, fLayout); 01930 fChkBtnMdcWires->Connect("Clicked()", "BesClient", this, "SetState()"); 01931 01932 // Tof 01933 fChkBtnTofGlobal = new TGCheckButton(fFrameSubDetector, "Tof", kM_Tof_Global); 01934 fLayout = new TGLayoutHints(kLHintsExpandX, 0, 0, 10, 0); 01935 fFrameSubDetector->AddFrame(fChkBtnTofGlobal, fLayout); 01936 fChkBtnTofGlobal->Connect("Clicked()", "BesClient", this, "SetState()"); 01937 01938 fChkBtnTofEast = new TGCheckButton(fFrameSubDetector, "East EC", kM_Tof_East); 01939 fLayout = new TGLayoutHints(kLHintsLeft, 20, 0, 0, 0); 01940 fFrameSubDetector->AddFrame(fChkBtnTofEast, fLayout); 01941 fChkBtnTofEast->Connect("Clicked()", "BesClient", this, "SetState()"); 01942 01943 fChkBtnTofBarrel = new TGCheckButton(fFrameSubDetector, "Barrel", kM_Tof_Barrel); 01944 fFrameSubDetector->AddFrame(fChkBtnTofBarrel, fLayout); 01945 fChkBtnTofBarrel->Connect("Clicked()", "BesClient", this, "SetState()"); 01946 01947 fChkBtnTofWest = new TGCheckButton(fFrameSubDetector, "West EC", kM_Tof_West); 01948 fFrameSubDetector->AddFrame(fChkBtnTofWest, fLayout); 01949 fChkBtnTofWest->Connect("Clicked()", "BesClient", this, "SetState()"); 01950 01951 // Emc 01952 fChkBtnEmcGlobal = new TGCheckButton(fFrameSubDetector, "Emc", kM_Emc_Global); 01953 fLayout = new TGLayoutHints(kLHintsExpandX, 0, 0, 10, 0); 01954 fFrameSubDetector->AddFrame(fChkBtnEmcGlobal, fLayout); 01955 fChkBtnEmcGlobal->Connect("Clicked()", "BesClient", this, "SetState()"); 01956 01957 fChkBtnEmcEast = new TGCheckButton(fFrameSubDetector, "East EC", kM_Emc_East); 01958 fLayout = new TGLayoutHints(kLHintsLeft, 20, 0, 0, 0); 01959 fFrameSubDetector->AddFrame(fChkBtnEmcEast, fLayout); 01960 fChkBtnEmcEast->Connect("Clicked()", "BesClient", this, "SetState()"); 01961 01962 fChkBtnEmcBarrel = new TGCheckButton(fFrameSubDetector, "Barrel", kM_Emc_Barrel); 01963 fFrameSubDetector->AddFrame(fChkBtnEmcBarrel, fLayout); 01964 fChkBtnEmcBarrel->Connect("Clicked()", "BesClient", this, "SetState()"); 01965 01966 fChkBtnEmcWest = new TGCheckButton(fFrameSubDetector, "West EC", kM_Emc_West); 01967 fFrameSubDetector->AddFrame(fChkBtnEmcWest, fLayout); 01968 fChkBtnEmcWest->Connect("Clicked()", "BesClient", this, "SetState()"); 01969 01970 fChkBtnEmcSide = new TGCheckButton(fFrameSubDetector, "Side ", kM_Emc_Side); 01971 fFrameSubDetector->AddFrame(fChkBtnEmcSide, fLayout); 01972 fChkBtnEmcSide->Connect("Clicked()", "BesClient", this, "SetState()"); 01973 01974 // Muc 01975 fChkBtnMucGlobal = new TGCheckButton(fFrameSubDetector, "Muc", kM_Muc_Global); 01976 fLayout = new TGLayoutHints(kLHintsExpandX, 0, 0, 10, 0); 01977 fFrameSubDetector->AddFrame(fChkBtnMucGlobal, fLayout); 01978 fChkBtnMucGlobal->Connect("Clicked()", "BesClient", this, "SetState()"); 01979 01980 fChkBtnMucEast = new TGCheckButton(fFrameSubDetector, "East EC", kM_Muc_East); 01981 fLayout = new TGLayoutHints(kLHintsLeft, 20, 0, 0, 0); 01982 fFrameSubDetector->AddFrame(fChkBtnMucEast, fLayout); 01983 fChkBtnMucEast->Connect("Clicked()", "BesClient", this, "SetState()"); 01984 01985 fChkBtnMucBarrel = new TGCheckButton(fFrameSubDetector, "Barrel", kM_Muc_Barrel); 01986 fFrameSubDetector->AddFrame(fChkBtnMucBarrel, fLayout); 01987 fChkBtnMucBarrel->Connect("Clicked()", "BesClient", this, "SetState()"); 01988 01989 fChkBtnMucWest = new TGCheckButton(fFrameSubDetector, "West EC", kM_Muc_West); 01990 fFrameSubDetector->AddFrame(fChkBtnMucWest, fLayout); 01991 fChkBtnMucWest->Connect("Clicked()", "BesClient", this, "SetState()"); 01992 01993 fChkBtnMucStrips = new TGCheckButton(fFrameSubDetector, "Strips", kM_Muc_Strips); 01994 fFrameSubDetector->AddFrame(fChkBtnMucStrips, fLayout); 01995 fChkBtnMucStrips->Connect("Clicked()", "BesClient", this, "SetState()"); 01996 01997 // Other parts 01998 fFrameOthers = new TGGroupFrame (tf, "Others"); 01999 fLayout = new TGLayoutHints (kLHintsExpandX, 15, 15, 15, 15); 02000 fWidgets->Add(fLayout); 02001 tf->AddFrame (fFrameOthers, fLayout); 02002 02003 fChkBtnBeamPipe = new TGCheckButton (fFrameOthers, "Beam Pipe", kM_BeamPipe); 02004 fFrameOthers->AddFrame (fChkBtnBeamPipe); 02005 fChkBtnBeamPipe->Connect("Clicked()", "BesClient", this, "SetState()"); 02006 02007 fChkBtnZRPlaneOnXY = new TGCheckButton (fFrameOthers, "ZR plane on XY", kM_ZRPlaneOnXY); 02008 fFrameOthers->AddFrame (fChkBtnZRPlaneOnXY); 02009 fChkBtnZRPlaneOnXY->Connect("Clicked()", "BesClient", this, "SetState()"); 02010 02011 fChkBtnAxis = new TGCheckButton (fFrameOthers, "Axis", kM_Axis); 02012 fFrameOthers->AddFrame (fChkBtnAxis); 02013 fChkBtnAxis->Connect("Clicked()", "BesClient", this, "SetState()"); 02014 02015 // 02016 // "Others" tab 02017 // ================ 02018 tf = fTabs->AddTab("Others"); 02019 tf->SetBackgroundPixmap(GetPic("8.gif")); 02020 02021 //Mdc TQMatch 02022 fFrameMdcMatch =new TGGroupFrame(tf, "Mdc TQ Match"); 02023 fLayout = new TGLayoutHints(kLHintsExpandX, 15, 15, 15, 15); 02024 fWidgets->Add(fLayout); 02025 tf->AddFrame(fFrameMdcMatch, fLayout); 02026 02027 fChkBtnMdcTMatchGlobal = new TGCheckButton(fFrameMdcMatch, "T Match", kM_Mdc_TMatch_Global); 02028 fChkBtnMdcTMatchGlobal->SetState(kButtonDown); 02029 //fChkBtnMdcTMatchGlobal->SetOn(); 02030 fFrameMdcMatch->AddFrame(fChkBtnMdcTMatchGlobal); 02031 fChkBtnMdcTMatchGlobal->Connect("Clicked()", "BesClient", this, "SetState()"); 02032 02033 fChkBtnMdcQMatchGlobal = new TGCheckButton(fFrameMdcMatch, "Q Match", kM_Mdc_QMatch_Global); 02034 fChkBtnMdcQMatchGlobal->SetState(kButtonDown); 02035 //fChkBtnMdcQMatchGlobal->SetOn(); 02036 fFrameMdcMatch->AddFrame(fChkBtnMdcQMatchGlobal); 02037 fChkBtnMdcQMatchGlobal->Connect("Clicked()", "BesClient", this, "SetState()"); 02038 02039 //Tof TQMatch 02040 fFrameTofMatch =new TGGroupFrame(tf, "Tof TQ Match"); 02041 fLayout = new TGLayoutHints(kLHintsExpandX, 15, 15, 15, 15); 02042 fWidgets->Add(fLayout); 02043 tf->AddFrame(fFrameTofMatch, fLayout); 02044 02045 fChkBtnTofTMatchGlobal = new TGCheckButton(fFrameTofMatch, "T Match", kM_Tof_TMatch_Global); 02046 fChkBtnTofTMatchGlobal->SetState(kButtonDown); 02047 //fChkBtnTofTMatchGlobal->SetOn(); 02048 fFrameTofMatch->AddFrame(fChkBtnTofTMatchGlobal); 02049 fChkBtnTofTMatchGlobal->Connect("Clicked()", "BesClient", this, "SetState()"); 02050 02051 fChkBtnTofQMatchGlobal = new TGCheckButton(fFrameTofMatch, "Q Match", kM_Tof_QMatch_Global); 02052 fChkBtnTofQMatchGlobal->SetState(kButtonDown); 02053 //fChkBtnTofQMatchGlobal->SetOn(); 02054 fFrameTofMatch->AddFrame(fChkBtnTofQMatchGlobal); 02055 fChkBtnTofQMatchGlobal->Connect("Clicked()", "BesClient", this, "SetState()"); 02056 02057 // Magnetic field 02058 fFrameMagnetic =new TGGroupFrame(tf, "Magnetic Field(Tesla)"); 02059 fLayout = new TGLayoutHints(kLHintsExpandX, 15, 15, 15, 15); 02060 fWidgets->Add(fLayout); 02061 tf->AddFrame(fFrameMagnetic, fLayout); 02062 02063 // input of Magnetic field 02064 fNumEntryMagnetic = new TGNumberEntry(fFrameMagnetic, 02065 1.0, 4, 02066 kM_Button_Magnetic, 02067 TGNumberFormat::kNESRealTwo, 02068 TGNumberFormat::kNEAAnyNumber); 02069 fNumEntryMagnetic->SetHeight(20); 02070 fNumEntryMagnetic->SetNumber(1.0); 02071 fNumEntryMagnetic->GetNumberEntry() 02072 ->Connect("ReturnPressed","BesClient",this,"ExecuteReturn()"); 02073 fNumEntryMagnetic->GetNumberEntry() 02074 ->Connect("TabPressed","BesClient",this,"ChangeFocus()"); 02075 fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 4, 4, 4, 4); 02076 fWidgets->Add(fLayout); 02077 fFrameMagnetic->AddFrame(fNumEntryMagnetic, fLayout); 02078 02079 02080 for (Int_t iTab = 0; iTab < fTabs->GetNumberOfTabs(); iTab++) { 02081 fTabs->GetTabTab(iTab)->SetBackgroundPixmap(GetPic("8.gif")); 02082 } 02083 }
|
|
|
|
00981 { 00982 // 00983 // Create the title bar 00984 00985 // Create frame 00986 fTitleFrame = new TGHorizontalFrame(this, this->GetWidth(), 10); 00987 }
|
|
|
|
00851 { 00852 00853 fToolBarFrame = new TGCompositeFrame(this, 300, 25, kHorizontalFrame); 00854 fToolBarFrame->SetBackgroundPixmap(GetPic("ToolButtonBarBckgnd.gif")); 00855 00856 fToolBarFirstItemLayout = new TGLayoutHints(kLHintsTop | kLHintsLeft, 10, 0, 1, 2); 00857 fToolBarItemLayout = new TGLayoutHints(kLHintsTop | kLHintsLeft, 0, 0, 1, 2); 00858 fToolBarLastItemLayout = new TGLayoutHints(kLHintsTop | kLHintsLeft, 0, 14, 1, 2); 00859 00860 Int_t width = 23, height = 22; 00861 Int_t nToolSplitter = 0; 00862 00863 // Tool Button Splitter 00864 for (Int_t i = 0; i < kNToolSplitter; i++) { 00865 fToolButtonSplitter[i] = new BesGPictureButton(fToolBarFrame, 00866 gClient->GetPicture("ToolButtonSplitter.gif")); 00867 fToolButtonSplitter[i]->SetHeight(20); 00868 fToolButtonSplitter[i]->SetWidth(5); 00869 fToolButtonSplitter[i]->SetState(kButtonDisabled); 00870 } 00871 00872 // Switch Pad 00873 fSwitchPadButton = new BesGPictureButton(fToolBarFrame, 00874 gClient->GetPicture("ButtonSwitchPad.gif"), 00875 kM_Button_SwitchPad); 00876 fSwitchPadButton->SetPictureHL(gClient->GetPicture("ButtonSwitchPadHL.gif")); 00877 fSwitchPadButton->SetToolTipText("Switch Among Pads"); 00878 fSwitchPadButton->SetHeight(height); 00879 fSwitchPadButton->SetWidth(width); 00880 fSwitchPadButton->Connect("Clicked()", "BesClient", this, "HandleButtons()"); 00881 fToolBarFrame->AddFrame(fSwitchPadButton, fToolBarFirstItemLayout); 00882 00883 // Tool Button Splitter 00884 fToolBarFrame->AddFrame(fToolButtonSplitter[nToolSplitter], fToolBarItemLayout); 00885 nToolSplitter++; 00886 00887 // Show Info 00888 fShowInfoButton = new BesGPictureButton(fToolBarFrame, 00889 gClient->GetPicture("ButtonShowInfoST.gif"), 00890 kM_Button_ShowInfo); 00891 fShowInfoButton->SetState(true); 00892 fShowInfoButton->SetPictureHL(gClient->GetPicture("ButtonShowInfoHL.gif")); 00893 fShowInfoButton->SetToolTipText("Show Info"); 00894 fShowInfoButton->SetHeight(height); 00895 fShowInfoButton->SetWidth(width); 00896 fShowInfoButton->Connect("Clicked()", "BesClient", this, "HandleButtons()"); 00897 fToolBarFrame->AddFrame(fShowInfoButton, fToolBarItemLayout); 00898 00899 // Show Axis 00900 fShowAxisButton = new BesGPictureButton(fToolBarFrame, 00901 gClient->GetPicture("ButtonShowAxis.gif"), 00902 kM_Button_ShowAxis); 00903 fShowAxisButton->SetPictureHL(gClient->GetPicture("ButtonShowAxisHL.gif")); 00904 fShowAxisButton->SetToolTipText("Show Axis"); 00905 fShowAxisButton->SetHeight(height); 00906 fShowAxisButton->SetWidth(width); 00907 fShowAxisButton->Connect("Clicked()", "BesClient", this, "HandleButtons()"); 00908 fToolBarFrame->AddFrame(fShowAxisButton, fToolBarItemLayout); 00909 00910 // Tool Button Splitter 00911 fToolBarFrame->AddFrame(fToolButtonSplitter[nToolSplitter], fToolBarItemLayout); 00912 nToolSplitter++; 00913 00914 // FishEye View 00915 fFishEyeViewButton = new BesGPictureButton(fToolBarFrame, 00916 gClient->GetPicture("ButtonFishEyeView.gif"), 00917 kM_Button_FishEyeView); 00918 fFishEyeViewButton->SetPictureHL(gClient->GetPicture("ButtonFishEyeViewHL.gif")); 00919 fFishEyeViewButton->SetToolTipText("FishEye View"); 00920 fFishEyeViewButton->SetHeight(height); 00921 fFishEyeViewButton->SetWidth(width); 00922 fFishEyeViewButton->Connect("Clicked()", "BesClient", this, "HandleButtons()"); 00923 fToolBarFrame->AddFrame(fFishEyeViewButton, fToolBarItemLayout); 00924 00925 // ParallelView 00926 fParallelViewButton = new BesGPictureButton(fToolBarFrame, 00927 gClient->GetPicture("ButtonParallelViewST.gif"), 00928 kM_Button_ParallelView); 00929 fParallelViewButton->SetState(true); 00930 fParallelViewButton->SetPictureHL(gClient->GetPicture("ButtonParallelViewHL.gif")); 00931 fParallelViewButton->SetToolTipText("Parallel View"); 00932 fParallelViewButton->SetHeight(height); 00933 fParallelViewButton->SetWidth(width); 00934 fParallelViewButton->Connect("Clicked()", "BesClient", this, "HandleButtons()"); 00935 fToolBarFrame->AddFrame(fParallelViewButton, fToolBarItemLayout); 00936 00937 // Perspective View 00938 fPerspectiveViewButton = new BesGPictureButton(fToolBarFrame, 00939 gClient->GetPicture("ButtonPerspectiveView.gif"), 00940 kM_Button_PerspectiveView); 00941 fPerspectiveViewButton->SetPictureHL(gClient->GetPicture("ButtonPerspectiveViewHL.gif")); 00942 fPerspectiveViewButton->SetToolTipText("Perspective View"); 00943 fPerspectiveViewButton->SetHeight(height); 00944 fPerspectiveViewButton->SetWidth(width); 00945 fPerspectiveViewButton->Connect("Clicked()", "BesClient", this, "HandleButtons()"); 00946 fToolBarFrame->AddFrame(fPerspectiveViewButton, fToolBarItemLayout); 00947 00948 // Tool Button Splitter 00949 fToolBarFrame->AddFrame(fToolButtonSplitter[nToolSplitter], fToolBarItemLayout); 00950 nToolSplitter++; 00951 00952 // OpenGL 00953 fOpenGLButton = new BesGPictureButton(fToolBarFrame, 00954 gClient->GetPicture("ButtonOpenGL.gif"), 00955 kM_Button_OpenGL); 00956 fOpenGLButton->SetPictureHL(gClient->GetPicture("ButtonOpenGLHL.gif")); 00957 fOpenGLButton->SetToolTipText("OpenGL View"); 00958 fOpenGLButton->SetHeight(height); 00959 fOpenGLButton->SetWidth(width); 00960 fOpenGLButton->Connect("Clicked()", "BesClient", this, "HandleButtons()"); 00961 fToolBarFrame->AddFrame(fOpenGLButton, fToolBarItemLayout); 00962 00963 // X3D 00964 fX3DButton = new BesGPictureButton(fToolBarFrame, 00965 gClient->GetPicture("ButtonX3D.gif"), 00966 kM_Button_X3D); 00967 fX3DButton->SetPictureHL(gClient->GetPicture("ButtonX3DHL.gif")); 00968 fX3DButton->SetToolTipText("X3D View"); 00969 fX3DButton->SetHeight(height); 00970 fX3DButton->SetWidth(width); 00971 fX3DButton->Connect("Clicked()", "BesClient", this, "HandleButtons()"); 00972 fToolBarFrame->AddFrame(fX3DButton, fToolBarItemLayout); 00973 00974 // Tool Button Splitter 00975 fToolBarFrame->AddFrame(fToolButtonSplitter[nToolSplitter], fToolBarLastItemLayout); 00976 nToolSplitter++; 00977 }
|
|
|
|
00558 { 00559 // 00560 fUpButtonBarFrame = new TGCompositeFrame(this, 300, 25, kHorizontalFrame); 00561 fUpButtonBarFrame->SetBackgroundPixmap(GetPic("UpButtonBarBckgnd.gif")); 00562 00563 fUpButtonBarFirstItemLayout = new TGLayoutHints(kLHintsTop | kLHintsLeft, 15, 0, 1, 2); 00564 fUpButtonBarItemLayout = new TGLayoutHints(kLHintsTop | kLHintsLeft, 0, 0, 1, 2); 00565 fUpButtonBarLastItemLayout = new TGLayoutHints(kLHintsTop | kLHintsLeft, 0, 13, 1, 2); 00566 00567 Int_t width = 23, height = 22; 00568 Int_t h, charw, w; // of number entry 00569 Int_t nUpSplitter = 0; 00570 00571 // Up Button Splitter 00572 for (Int_t i = 0; i < kNUpSplitter; i++) { 00573 fUpButtonSplitter[i] = new BesGPictureButton(fUpButtonBarFrame, 00574 gClient->GetPicture("UpButtonSplitter.gif")); 00575 fUpButtonSplitter[i]->SetHeight(20); 00576 fUpButtonSplitter[i]->SetWidth(5); 00577 fUpButtonSplitter[i]->SetState(kButtonDisabled); 00578 } 00579 00580 // Load Geo File 00581 fLoadGeoFileButton = new BesGPictureButton(fUpButtonBarFrame, 00582 gClient->GetPicture("ButtonLoadGeoFile.gif"), 00583 kM_Button_LoadGeoFile); 00584 fLoadGeoFileButton->SetPictureHL(gClient->GetPicture("ButtonLoadGeoFileHL.gif")); 00585 fLoadGeoFileButton->SetToolTipText("Load Geometry File"); 00586 fLoadGeoFileButton->SetHeight(height); 00587 fLoadGeoFileButton->SetWidth(width); 00588 fLoadGeoFileButton->Connect("Clicked()", "BesClient", this, "HandleButtons()"); 00589 fUpButtonBarFrame->AddFrame(fLoadGeoFileButton, fUpButtonBarFirstItemLayout); 00590 00591 // Open Event File 00592 fOpenEventFileButton = new BesGPictureButton(fUpButtonBarFrame, 00593 gClient->GetPicture("ButtonOpenEventFile.gif"), 00594 kM_Button_OpenEventFile); 00595 fOpenEventFileButton->SetPictureHL(gClient->GetPicture("ButtonOpenEventFileHL.gif")); 00596 fOpenEventFileButton->SetToolTipText("Open Event File"); 00597 fOpenEventFileButton->SetHeight(height); 00598 fOpenEventFileButton->SetWidth(width); 00599 fOpenEventFileButton->Connect("Clicked()", "BesClient", this, "HandleButtons()"); 00600 fUpButtonBarFrame->AddFrame(fOpenEventFileButton, fUpButtonBarItemLayout); 00601 00602 // Save Pic As 00603 fSavePicAsButton = new BesGPictureButton(fUpButtonBarFrame, 00604 gClient->GetPicture("ButtonSavePicAs.gif"), 00605 kM_Button_SavePicAs); 00606 fSavePicAsButton->SetPictureHL(gClient->GetPicture("ButtonSavePicAsHL.gif")); 00607 fSavePicAsButton->SetToolTipText("Save Picture as"); 00608 fSavePicAsButton->SetHeight(height); 00609 fSavePicAsButton->SetWidth(width); 00610 fSavePicAsButton->Connect("Clicked()", "BesClient", this, "HandleButtons()"); 00611 fUpButtonBarFrame->AddFrame(fSavePicAsButton, fUpButtonBarItemLayout); 00612 00613 // Save Pic As PS 00614 fSavePicAsPSButton = new BesGPictureButton(fUpButtonBarFrame, 00615 gClient->GetPicture("ButtonSavePicAsPS.gif"), 00616 kM_Button_SavePicAsPS); 00617 fSavePicAsPSButton->SetPictureHL(gClient->GetPicture("ButtonSavePicAsPSHL.gif")); 00618 fSavePicAsPSButton->SetToolTipText("Save Picture as besvis.ps"); 00619 fSavePicAsPSButton->SetHeight(height); 00620 fSavePicAsPSButton->SetWidth(width); 00621 fSavePicAsPSButton->Connect("Clicked()", "BesClient", this, "HandleButtons()"); 00622 fUpButtonBarFrame->AddFrame(fSavePicAsPSButton, fUpButtonBarItemLayout); 00623 00624 // Up Button Splitter 00625 fUpButtonBarFrame->AddFrame(fUpButtonSplitter[nUpSplitter], fUpButtonBarItemLayout); 00626 nUpSplitter++; 00627 00628 // Refresh 00629 fRefreshButton = new BesGPictureButton(fUpButtonBarFrame, 00630 gClient->GetPicture("ButtonRefresh.gif"), 00631 kM_Button_Refresh); 00632 fRefreshButton->SetPictureHL(gClient->GetPicture("ButtonRefreshHL.gif")); 00633 fRefreshButton->SetToolTipText("Refresh"); 00634 fRefreshButton->SetHeight(height); 00635 fRefreshButton->SetWidth(width); 00636 fRefreshButton->Connect("Clicked()", "BesClient", this, "HandleButtons()"); 00637 fUpButtonBarFrame->AddFrame(fRefreshButton, fUpButtonBarItemLayout); 00638 00639 // Reset Current 00640 fResetCurrentButton = new BesGPictureButton(fUpButtonBarFrame, 00641 gClient->GetPicture("ButtonResetCurrent.gif"), 00642 kM_Button_ResetCurrent); 00643 fResetCurrentButton->SetPictureHL(gClient->GetPicture("ButtonResetCurrentHL.gif")); 00644 fResetCurrentButton->SetToolTipText("Reset Current Pad"); 00645 fResetCurrentButton->SetHeight(height); 00646 fResetCurrentButton->SetWidth(width); 00647 fResetCurrentButton->Connect("Clicked()", "BesClient", this, "HandleButtons()"); 00648 fUpButtonBarFrame->AddFrame(fResetCurrentButton, fUpButtonBarItemLayout); 00649 00650 // Reset All 00651 fResetAllButton = new BesGPictureButton(fUpButtonBarFrame, 00652 gClient->GetPicture("ButtonResetAll.gif"), 00653 kM_Button_ResetAll); 00654 fResetAllButton->SetPictureHL(gClient->GetPicture("ButtonResetAllHL.gif")); 00655 fResetAllButton->SetToolTipText("Reset All Pads"); 00656 fResetAllButton->SetHeight(height); 00657 fResetAllButton->SetWidth(width); 00658 fResetAllButton->Connect("Clicked()", "BesClient", this, "HandleButtons()"); 00659 fUpButtonBarFrame->AddFrame(fResetAllButton, fUpButtonBarItemLayout); 00660 00661 // Up Button Splitter 00662 fUpButtonBarFrame->AddFrame(fUpButtonSplitter[nUpSplitter], fUpButtonBarItemLayout); 00663 nUpSplitter++; 00664 00665 // Zoom Out 00666 fZoomOutButton = new BesGPictureButton(fUpButtonBarFrame, 00667 gClient->GetPicture("ButtonZoomOut.gif"), 00668 kM_Button_ZoomOut); 00669 fZoomOutButton->SetPictureHL(gClient->GetPicture("ButtonZoomOutHL.gif")); 00670 fZoomOutButton->SetToolTipText("Zoom Out"); 00671 fZoomOutButton->SetHeight(height); 00672 fZoomOutButton->SetWidth(width); 00673 fZoomOutButton->Connect("Clicked()", "BesClient", this, "HandleButtons()"); 00674 fUpButtonBarFrame->AddFrame(fZoomOutButton, fUpButtonBarItemLayout); 00675 00676 // Zoom Ratio number 00677 fZoomRatioNumber = new TGNumberEntryField( fUpButtonBarFrame, kM_Button_ZoomRatioNumber, 00678 100.0, 00679 (TGNumberFormat::EStyle) 1, (TGNumberFormat::EAttribute) 0 ); 00680 fZoomRatioNumber->Connect("ReturnPressed","BesClient",this,"ExecuteReturn()"); 00681 h = Int_t(fZoomRatioNumber->GetDefaultHeight()/1.2); // default height 22 00682 charw = fZoomRatioNumber->GetCharWidth("0123456"); 00683 w = charw * TMath::Abs(5) / 10 + 8 + 2 * h / 3 + 2; // 5 is digit width, default width 46 00684 //cout << h << " " << w << endl; 00685 fZoomRatioNumber->Resize(w, h); 00686 00687 fLayout = new TGLayoutHints(kLHintsCenterX | kLHintsCenterY); 00688 fWidgets->Add(fLayout); 00689 fUpButtonBarFrame->AddFrame(fZoomRatioNumber, fLayout); 00690 00691 // "%" 00692 fZoomRatioPercentButton = new BesGPictureButton(fUpButtonBarFrame, 00693 gClient->GetPicture("ButtonZoomRatioPercent.gif")); 00694 fZoomRatioPercentButton->SetHeight(20); 00695 fZoomRatioPercentButton->SetWidth(10); 00696 fZoomRatioPercentButton->SetState(kButtonDisabled); 00697 fUpButtonBarFrame->AddFrame(fZoomRatioPercentButton, fUpButtonBarItemLayout); 00698 00699 // Zoom In 00700 fZoomInButton = new BesGPictureButton(fUpButtonBarFrame, 00701 gClient->GetPicture("ButtonZoomIn.gif"), 00702 kM_Button_ZoomIn); 00703 fZoomInButton->SetPictureHL(gClient->GetPicture("ButtonZoomInHL.gif")); 00704 fZoomInButton->SetToolTipText("Zoom In"); 00705 fZoomInButton->SetHeight(height); 00706 fZoomInButton->SetWidth(width); 00707 fZoomInButton->Connect("Clicked()", "BesClient", this, "HandleButtons()"); 00708 fUpButtonBarFrame->AddFrame(fZoomInButton, fUpButtonBarItemLayout); 00709 00710 // Cursor Pick 00711 fCursorButton[0] = new BesGPictureButton(fUpButtonBarFrame, 00712 gClient->GetPicture("ButtonCursorPickST.gif"), 00713 kM_Button_CursorPick); 00714 fCursorButton[0]->SetState(true); // with "Button***ST" should set state on 00715 fCursorButton[0]->SetPictureHL(gClient->GetPicture("ButtonCursorPickHL.gif")); 00716 fCursorButton[0]->SetToolTipText("Select Tool"); 00717 //fCursorButton[0]->SetState(kButtonEngaged); 00718 00719 // Cursor Hand 00720 fCursorButton[1] = new BesGPictureButton(fUpButtonBarFrame, 00721 gClient->GetPicture("ButtonCursorHand.gif"), 00722 kM_Button_CursorHand); 00723 fCursorButton[1]->SetPictureHL(gClient->GetPicture("ButtonCursorHandHL.gif")); 00724 fCursorButton[1]->SetToolTipText("Hand Tool"); 00725 00726 for (int i = 0; i < kNCursorState; i++) { 00727 fCursorButton[i]->SetHeight(height); 00728 fCursorButton[i]->SetWidth(width); 00729 fCursorButton[i]->Connect("Clicked()", "BesClient", this, "HandleButtons()"); 00730 fUpButtonBarFrame->AddFrame(fCursorButton[i], fUpButtonBarItemLayout); 00731 } 00732 00733 // Up Button Splitter 00734 fUpButtonBarFrame->AddFrame(fUpButtonSplitter[nUpSplitter], fUpButtonBarItemLayout); 00735 nUpSplitter++; 00736 00737 // Switch Display Mode 00738 fSwitchDisplayModeButton = new BesGPictureButton(fUpButtonBarFrame, 00739 gClient->GetPicture("ButtonSwitchDisplayMode.gif"), 00740 kM_Button_SwitchDisplayMode); 00741 fSwitchDisplayModeButton->SetPictureHL(gClient->GetPicture("ButtonSwitchDisplayModeHL.gif")); 00742 fSwitchDisplayModeButton->SetToolTipText("Switch Display Mode"); 00743 fSwitchDisplayModeButton->SetHeight(height); 00744 fSwitchDisplayModeButton->SetWidth(width); 00745 fSwitchDisplayModeButton->Connect("Clicked()", "BesClient", this, "HandleButtons()"); 00746 fUpButtonBarFrame->AddFrame(fSwitchDisplayModeButton, fUpButtonBarItemLayout); 00747 00748 // Set Home 00749 fSetHomeButton = new BesGPictureButton(fUpButtonBarFrame, 00750 gClient->GetPicture("ButtonSetHome.gif"), 00751 kM_Button_SetHome); 00752 fSetHomeButton->SetPictureHL(gClient->GetPicture("ButtonSetHomeHL.gif")); 00753 fSetHomeButton->SetToolTipText("Set home position"); 00754 fSetHomeButton->SetHeight(height); 00755 fSetHomeButton->SetWidth(width); 00756 fSetHomeButton->Connect("Clicked()", "BesClient", this, "HandleButtons()"); 00757 fUpButtonBarFrame->AddFrame(fSetHomeButton, fUpButtonBarItemLayout); 00758 00759 // Go Home 00760 fGoHomeButton = new BesGPictureButton(fUpButtonBarFrame, 00761 gClient->GetPicture("ButtonGoHome.gif"), 00762 kM_Button_GoHome); 00763 fGoHomeButton->SetPictureHL(gClient->GetPicture("ButtonGoHomeHL.gif")); 00764 fGoHomeButton->SetToolTipText("Go to home position"); 00765 fGoHomeButton->SetHeight(height); 00766 fGoHomeButton->SetWidth(width); 00767 fGoHomeButton->Connect("Clicked()", "BesClient", this, "HandleButtons()"); 00768 fUpButtonBarFrame->AddFrame(fGoHomeButton, fUpButtonBarItemLayout); 00769 00770 // Save My style 00771 fSaveMyConfigButton = new BesGPictureButton(fUpButtonBarFrame, 00772 gClient->GetPicture("ButtonSaveMyConfig.gif"), 00773 kM_Button_SaveMyConfig); 00774 fSaveMyConfigButton->SetPictureHL(gClient->GetPicture("ButtonSaveMyConfigHL.gif")); 00775 fSaveMyConfigButton->SetToolTipText("Save My Style"); 00776 fSaveMyConfigButton->SetHeight(height); 00777 fSaveMyConfigButton->SetWidth(width); 00778 fSaveMyConfigButton->Connect("Clicked()", "BesClient", this, "HandleButtons()"); 00779 fUpButtonBarFrame->AddFrame(fSaveMyConfigButton, fUpButtonBarItemLayout); 00780 00781 // Load My style 00782 fLoadMyConfigButton = new BesGPictureButton(fUpButtonBarFrame, 00783 gClient->GetPicture("ButtonLoadMyConfig.gif"), 00784 kM_Button_LoadMyConfig); 00785 fLoadMyConfigButton->SetPictureHL(gClient->GetPicture("ButtonLoadMyConfigHL.gif")); 00786 fLoadMyConfigButton->SetToolTipText("Load My Style"); 00787 fLoadMyConfigButton->SetHeight(height); 00788 fLoadMyConfigButton->SetWidth(width); 00789 fLoadMyConfigButton->Connect("Clicked()", "BesClient", this, "HandleButtons()"); 00790 fUpButtonBarFrame->AddFrame(fLoadMyConfigButton, fUpButtonBarItemLayout); 00791 00792 // Up Button Splitter 00793 fUpButtonBarFrame->AddFrame(fUpButtonSplitter[nUpSplitter], fUpButtonBarItemLayout); 00794 nUpSplitter++; 00795 00796 // Help 00797 fHelpButton = new BesGPictureButton(fUpButtonBarFrame, 00798 gClient->GetPicture("ButtonHelp.gif"), 00799 kM_Button_Help); 00800 fHelpButton->SetPictureHL(gClient->GetPicture("ButtonHelpHL.gif")); 00801 fHelpButton->SetToolTipText("Help"); 00802 fHelpButton->SetHeight(height); 00803 fHelpButton->SetWidth(width); 00804 fHelpButton->Connect("Clicked()", "BesClient", this, "HandleButtons()"); 00805 fUpButtonBarFrame->AddFrame(fHelpButton, fUpButtonBarLastItemLayout); 00806 }
|
|
|
|
00236 { 00237 // 00238 // Create display 00239 00240 //CreateHorizontalRuler(); 00241 00242 // Create menu bar 00243 CreateMenuBar(); 00244 //fLayout = new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsExpandX, 10, 100, 2, 2); 00245 fLayout = new TGLayoutHints(kLHintsTop | kLHintsLeft, 0, 0, 1, 0); 00246 fWidgets->Add(fLayout); 00247 this->AddFrame(fMenuBar, fLayout); 00248 00249 //CreateHorizontalRuler(); 00250 00251 // Create upButton bar 00252 CreateUpButtonBar(); 00253 fLayout = new TGLayoutHints(kLHintsTop | kLHintsLeft, 10, 0, 0, 1); 00254 fWidgets->Add(fLayout); 00255 this->AddFrame(fUpButtonBarFrame, fLayout); 00256 00257 //CreateHorizontalRuler(); 00258 00259 // Create title bar 00260 CreateTitleBar(); 00261 fLayout = new TGLayoutHints(kLHintsCenterX | kLHintsExpandX, 5, 5, 0, 0); 00262 fWidgets->Add(fLayout); 00263 this->AddFrame(fTitleFrame, fLayout); 00264 00265 //CreateHorizontalRuler(); 00266 00267 // Create main frame 00268 CreateMainFrame(); 00269 fLayout = new TGLayoutHints(kLHintsExpandX | kLHintsExpandY, 0, 0, 0, 0); 00270 fWidgets->Add(fLayout); 00271 this->AddFrame(fMainFrame, fLayout); 00272 00273 // Create display mode bar 00274 CreateDisplayModeBar(); 00275 fLayout = new TGLayoutHints(kLHintsTop | kLHintsLeft, 0, 0, 0, 0); 00276 fWidgets->Add(fLayout); 00277 this->AddFrame(fDisplayModeBarFrame, fLayout); 00278 00279 // Create toolbar 00280 CreateToolBar(); 00281 fLayout = new TGLayoutHints(kLHintsTop | kLHintsLeft, 3, 0, 1, 0); 00282 fWidgets->Add(fLayout); 00283 this->AddFrame(fToolBarFrame, fLayout); 00284 00285 // Create status bar 00286 CreateStatusBar(); 00287 fLayout = new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsExpandX, 0, 0, 0, 0); 00288 fWidgets->Add(fLayout); 00289 this->AddFrame(fStatusBar, fLayout); 00290 00291 // Toplevel widget layout 00292 TString ttitle(title); 00293 ttitle.Append("@"); 00294 ttitle.Append(gSystem->HostName()); 00295 SetWindowName(ttitle); 00296 SetIconName(title); 00297 SetIconPixmap( (fBesVisPath + TString("/icons/LogoBesVisMini.gif")).Data() ); 00298 SetClassHints("BesVis", "Bes Event Visualisation"); 00299 00300 SetWMPosition(10, 10); // position of the window 00301 SetMWMHints(kMWMDecorAll, kMWMFuncAll, kMWMInputModeless); 00302 MapSubwindows(); 00303 Resize(GetDefaultSize()); 00304 Resize(width, height); 00305 MapWindow(); 00306 }
|
|
|
|
03891 { 03892 // 03893 // Actions in reponse to mouse button events 03894 03895 // Get view from current pad 03896 if ( !gBesGeometry ) { 03897 cout << "there is not BesGeometry" << endl; // added by tianhl to debug event 03898 return; 03899 } 03900 03901 03902 BesView *view = (BesView*)gPad->GetView(); 03903 TString viewInfo; 03904 if (view) viewInfo = TString(view->GetObjectInfo(px, py)); 03905 03906 switch (event) { 03907 03908 case kKeyPress: 03909 // px = char code of pressed key 03910 // py = counter 03911 if ( py <= 0 ) py = 1; // Reset counter 03912 switch ( Char_t(px) ) { 03913 case '-': // Zoom out 03914 case 'k': 03915 case 'K': 03916 case 'q': 03917 case 'Q': 03918 view->ZoomOut(); 03919 break; 03920 case '+': // Zoom in 03921 case 'j': 03922 case 'J': 03923 case 'e': 03924 case 'E': 03925 view->ZoomIn(); 03926 break; 03927 case 'h': // Move to the left 03928 case 'H': 03929 case 'a': 03930 case 'A': 03931 view->Move(-10,0); 03932 fEmbeddedCanvas->GetCanvas()->Update(); 03933 break; 03934 case 'l': // Move to the right 03935 case 'L': 03936 case 'd': 03937 case 'D': 03938 view->Move(10,0); 03939 fEmbeddedCanvas->GetCanvas()->Update(); 03940 break; 03941 case 'u': // Move up 03942 case 'U': 03943 case 'w': 03944 case 'W': 03945 view->Move(0,-10); 03946 fEmbeddedCanvas->GetCanvas()->Update(); 03947 break; 03948 case 'i': // Move down 03949 case 'I': 03950 case 's': 03951 case 'S': 03952 view->Move(0,10); 03953 fEmbeddedCanvas->GetCanvas()->Update(); 03954 break; 03955 case 'n': 03956 case 'N': 03957 this->NextEvent(); 03958 break; 03959 case 'p': 03960 case 'P': 03961 this->PrevEvent(); 03962 break; 03963 case 'g': 03964 case 'G': 03965 this->SavePicAs(); 03966 default: 03967 break; 03968 } 03969 break; 03970 03971 default: 03972 if ( sel != 0 ) { 03973 //if ( !gPad->InheritsFrom("BesCanvas") ) { 03974 if ( gPad->GetName() != TString("PadHeader")) { 03975 TString info(sel->GetTitle()); 03976 info.Append(": "); 03977 info.Append(sel->GetObjectInfo(px, py)); 03978 //info.Append(viewInfo); 03979 HandleInfoBar(info.Data()); 03980 } 03981 } 03982 break; 03983 } 03984 03985 UpdateBesInputFields(); 03986 }
|
|
|
|
05228 { 05229 // 05230 // execute if return was pressed 05231 if (gDebug) cout << "BesClient::ExecuteReturn called!" << endl; 05232 05233 BesView *view = (BesView*)gPad->GetView(); 05234 //Double_t theta, phi, psi; 05235 Int_t iret; 05236 05237 if ( gTQSender == fZoomRatioNumber ) { 05238 if (view) view->SetZoomRatio(fZoomRatioNumber->GetNumber()/100.0); 05239 } 05240 05241 if ( gTQSender == fNumEntryEventNo->GetNumberEntry() ) { 05242 fBesEventNo = fNumEntryEventNo->GetIntNumber(); 05243 this->GetEvent(fBesEventNo); 05244 } 05245 05246 else if ( gTQSender == fNumEntryEventPlaySpeed->GetNumberEntry() ) { 05247 fEventPlaySpeed = Int_t(fNumEntryEventPlaySpeed->GetNumber() * 1000); 05248 fAutoDisplayEventTimer->SetTime(fEventPlaySpeed); 05249 } 05250 05251 else if ( gTQSender == fNumEntryRotateSpeed ) { 05252 fRotateSpeed = fNumEntryRotateSpeed->GetNumber(); 05253 this->SetRotateStep(); 05254 cout << "fRotateSpeed " << fRotateSpeed << " fRotateStep " << fRotateStep << endl; 05255 //fAutoRotateTimer->SetTime((Int_t)1000/this->GetRotateFPS()); 05256 } 05257 05258 else if ( gTQSender == fNumEntryRotateFPS->GetNumberEntry() ) { 05259 fRotateFPS = fNumEntryRotateFPS->GetIntNumber(); 05260 this->SetRotateSpeed(); 05261 fAutoRotateTimer->SetTime((Int_t)1000/fRotateFPS); 05262 cout << "fRotateFPS " << fRotateFPS << " fRotateStep " << fRotateStep << endl; 05263 } 05264 05265 else if ( gTQSender == fNumEntryMagnetic->GetNumberEntry() ) { 05266 if (gEvent){ 05267 gEvent->SetMagnetic(fNumEntryMagnetic->GetNumber()); 05268 } 05269 } 05270 05271 else if ( gTQSender == fNumEntryRotateStep ) { 05272 fRotateStep = fNumEntryRotateStep->GetNumber(); 05273 fRotateSpeed = fRotateStep * fRotateFPS; 05274 cout << "fRotateSpeed " << fRotateSpeed << " fRotateStep " << fRotateStep << endl; 05275 } 05276 05277 else if ( gTQSender == fViewAngleThetaNumber ) { 05278 if (view) { 05279 view->SetView(view->GetLongitude(), fViewAngleThetaNumber->GetNumber(), view->GetPsi(), iret); 05280 } 05281 } 05282 05283 else if ( gTQSender == fViewAnglePhiNumber ) { 05284 if (view) { 05285 view->SetView(fViewAnglePhiNumber->GetNumber(), view->GetLatitude(), view->GetPsi(), iret); 05286 } 05287 } 05288 05289 else if ( gTQSender == fViewAnglePsiNumber ) { 05290 if (view && view->GetViewType() == k3DView) { 05291 view->SetView(view->GetLongitude(), view->GetLatitude(), fViewAnglePsiNumber->GetNumber(), iret); 05292 } 05293 } 05294 05295 fEmbeddedCanvas->RequestFocus(); // RequestFocus to let Hot Key "QWEASD.." work in ExecuteEvent, or it doesnt work after input 05296 UpdateCurrentPad(); 05297 UpdateBesInputFields(); 05298 }
|
|
|
|
05313 { 05314 // gSystem return 0 if exist, 1 for not exist 05315 return (!gSystem->AccessPathName(fname, kFileExists)); 05316 }
|
|
|
|
03670 { 03671 Bool_t status; 03672 if ( f_bossMode == false){ 03673 fBesEventNo = 0; 03674 status = GetEvent(fBesEventNo); 03675 } 03676 else if ( f_bossMode == true){ 03677 // add error box 03678 this->HandleError("Boss Mode can not get first event!"); 03679 } 03680 return status; 03681 }
|
|
00673 { return fBesEventNo; }
|
|
00673 { return fBesEventNo; }
|
|
00672 { return fBesRunNo; }
|
|
00672 { return fBesRunNo; }
|
|
|
|
03318 { 03319 if (fEventTree) { 03320 03321 Long64_t nEvents = fEventTree->GetEntries(); 03322 if (i >= 0 && i < nEvents) { 03323 03324 fDigiEvent = 0; 03325 fEvtHeader = 0; 03326 //fTrigEvent = 0; 03327 TDisTrack * fRecEvent = new TDisTrack(); 03328 if (f_bossMode == true){ 03329 TBranch *digiEvent = fEventTree->GetBranch("TDigiEvent"); 03330 TBranch *evtHeader = fEventTree->GetBranch("TEvtHeader"); 03331 //TBranch *trigEvent = fEventTree->GetBranch("TTrigEvent"); 03332 TBranch *disTrack = fEventTree->GetBranch("TDisTrack"); 03333 digiEvent->SetAddress(&fDigiEvent); 03334 evtHeader->SetAddress(&fEvtHeader); 03335 //trigEvent->SetAddress(&fTrigEvent); 03336 disTrack->SetAddress(&fRecEvent); 03337 disTrack->GetEntry(i); 03338 digiEvent->GetEntry(i); 03339 evtHeader->GetEntry(i); 03340 //trigEvent->GetEntry(i); 03341 } 03342 03343 if (f_bossMode == false){ 03344 fEventTree->GetEntry(i); 03345 if (recTrack1){ 03346 delete [] recTrack1; 03347 recTrack1 = NULL; 03348 } 03349 03350 int no = 0; 03351 03352 recTrack1 = new TRecMdcTrack[20]; 03353 03354 if (fRecEvent_1){ 03355 if (fRecEvent_1->getRecMdcTrackCol()){ 03356 no=(fRecEvent_1->getRecMdcTrackCol())->GetEntries(); 03357 } 03358 if (no>20) no=20; 03359 for (int i=0;i<no;i++){ 03360 const TRecMdcTrack* recTrack =fRecEvent_1->getRecMdcTrack(i); 03361 (recTrack1+i)->setTRecMdcTrack(recTrack); 03362 fRecEvent->addRecMdcTrack(recTrack1+i); 03363 } 03364 03365 if (tofTrack){ 03366 delete [] tofTrack; 03367 tofTrack = NULL; 03368 } 03369 tofTrack = new TRecTofTrack[200]; 03370 no=0; 03371 if (fRecEvent_1->getTofTrackCol()){ 03372 no = (fRecEvent_1->getTofTrackCol())->GetEntries(); 03373 } 03374 03375 if (no>200) no =200; 03376 for (int i=0;i<no;i++){ 03377 const TRecTofTrack* tofTrack1 =fRecEvent_1->getTofTrack(i); 03378 (tofTrack+i)->setTRecTofTrack(tofTrack1); 03379 fRecEvent->addTofTrack(tofTrack+i); 03380 } 03381 03382 if (mdchit){ 03383 delete [] mdchit; 03384 mdchit = NULL; 03385 } 03386 mdchit = new TRecMdcHit[1000]; 03387 no=0; 03388 if (fRecEvent_1->getRecMdcHitCol()){ 03389 no = (fRecEvent_1->getRecMdcHitCol())->GetEntries(); 03390 } 03391 if (no>1000) no =1000; 03392 for (int i=0;i<no;i++){ 03393 const TRecMdcHit* mdchit1 =fRecEvent_1->getRecMdcHit(i); 03394 (mdchit+i)->setTRecMdcHit(mdchit1); 03395 fRecEvent->addRecMdcHit(mdchit+i); 03396 } 03397 03398 if (muctrk){ 03399 delete [] muctrk; 03400 muctrk= NULL; 03401 } 03402 muctrk = new TRecMucTrack[20]; 03403 no=0; 03404 if (fRecEvent_1->getMucTrackCol()){ 03405 no = (fRecEvent_1->getMucTrackCol())->GetEntries(); 03406 } 03407 if (no>20) no=20; 03408 for (int i=0;i<no;i++){ 03409 const TRecMucTrack* mucTrack1 =fRecEvent_1->getMucTrack(i); 03410 (muctrk+i)->setTRecMucTrack(mucTrack1); 03411 fRecEvent->addMucTrack(muctrk+i); 03412 } 03413 03414 if (emcshower){ 03415 delete [] emcshower; 03416 emcshower=NULL; 03417 } 03418 emcshower = new TRecEmcShower[20]; 03419 no=0; 03420 if (fRecEvent_1->getEmcShowerCol()){ 03421 no = (fRecEvent_1->getEmcShowerCol())->GetEntries(); 03422 } 03423 if (no>20) no=20; 03424 for (int i=0;i<no;i++){ 03425 const TRecEmcShower* rec_emc =fRecEvent_1->getEmcShower(i); 03426 (emcshower+i)->setTRecEmcShower(rec_emc); 03427 fRecEvent->addEmcShower(emcshower+i); 03428 } 03429 } 03430 } 03431 03432 03433 //fEvent->SetEvent(fDigiEvent, fRecEvent, fEvtHeader, fTrigEvent); 03434 fEvent->SetEvent(fDigiEvent, fRecEvent, fEvtHeader ); 03435 //delete fRecEvent; 03436 UpdateAllView(); 03437 UpdateStatus(); 03438 return true; 03439 } 03440 else { 03441 fAutoDisplayEvent = kFALSE; 03442 if (fAutoDisplayEventTimer) { 03443 fAutoDisplayEventTimer->TurnOff(); 03444 fPlayEventButton->SetPicture(gClient->GetPicture("ButtonEventPlay.gif")); 03445 } 03446 03447 ostringstream s; 03448 s << "Request event entry " << i 03449 << " does not exist ! \n valid (" 03450 << 0 << "~" << nEvents - 1 << ")"; 03451 this->HandleError(s.str().c_str()); 03452 return false; 03453 } 03454 } 03455 else { 03456 fAutoDisplayEvent = kFALSE; 03457 if (fAutoDisplayEventTimer) fAutoDisplayEventTimer->TurnOff(); 03458 this->HandleError("Event Tree does not exist !"); 03459 return false; 03460 } 03461 }
|
|
00674 { return fEventPlaySpeed; }
|
|
00674 { return fEventPlaySpeed; }
|
|
|
|
05301 { 05302 TString filePath = fBesVisPath; 05303 filePath += "/icons/"; 05304 filePath += file; 05305 05306 TASImage asImage(filePath); 05307 Pixmap_t pic = asImage.GetPixmap(); 05308 //asImage->Draw(); 05309 return pic; 05310 }
|
|
|
|
03463 { 03464 int semid, shmid, n, runNo; 03465 int *shmptr; 03466 int sem_value_F, sem_value_O; 03467 03468 // set autodisplay on 03469 if (fAutoDisplayEvent){ 03470 if (fAutoDisplayEventTimer) 03471 fAutoDisplayEventTimer->TurnOn(); 03472 fPlayEventButton->SetPicture(gClient->GetPicture("ButtonEventStop.gif")); 03473 } 03474 03475 // access semaphore 03476 if ((semid = semget(f_pid, 2, 0)) == -1){ 03477 perror("concumer -- access -- semget"); 03478 exit(0); 03479 } 03480 else { 03481 acquire.sem_num = OUTPUT_STORE; 03482 //******************************* 03483 // Debug information 03484 //******************************* 03485 //std::cout << "acquire.sem_num: " << OUTPUT_STORE << std::endl; 03486 //std::cout << "acquire.sem_num: " << acquire.sem_num << std::endl; 03487 //std::cout << "acquire.sem_op: " << acquire.sem_op << std::endl; 03488 // 03489 //std::cout << "Current Event No. : " << fCurrentEvent << std::endl; 03490 //std::cout << "besvis has gotten semid: " << semid << std::endl; 03491 //std::cout << "before change OUTPUT_STORE" << std::endl; 03492 03493 //if ((sem_value_F = semctl(semid, FREE_SPACE, GETVAL, 0)) == -1){ 03494 // perror("Can not get FREE_SPACE"); 03495 //} 03497 //std::cout << "Semaphore FREE_SPACE has value of(refer 0) " << sem_value_F << std::endl; 03498 03499 03500 //std::cout << "OUTPUT_STORE will decrease from 1 to 0" << std::endl; 03501 //******************************* 03502 // operate semaphore:OUTPUT_STORE 03503 //******************************* 03504 if ((sem_value_O = semctl(semid, OUTPUT_STORE, GETVAL, 0)) == -1){ 03505 perror("Can not get OUTPUT_STORE"); 03506 } 03507 //std::cout << "Semaphore OUTPUT_STORE has value of(refer 1) " << sem_value_O << std::endl; 03508 if (sem_value_O == 0) return true; 03509 if (f_runStatus == RUN_ERROR){ 03510 release.sem_num = FREE_SPACE; 03511 if (semop(semid, &release, 1) == -1){ 03512 perror("consumer -- increase -- freeSpace"); 03513 exit(0); 03514 } 03515 std::cout << "read data error " << std::endl; 03516 f_runStatus = RUN_SMOOTH; 03517 return true; 03518 } 03519 f_runStatus = RUN_ERROR; 03520 03521 if (semop(semid, &acquire, 1) == -1){ 03522 perror("consumer -- decrease -- storage"); 03523 exit(0); 03524 } 03525 03526 //******************************* 03527 // Debug information 03528 //******************************* 03529 //std::cout << "Current Event No. : " << fCurrentEvent << std::endl; 03530 //std::cout << "besvis has gotten semid: " << semid << std::endl; 03531 //std::cout << "besvis will read data" << std::endl; 03532 //std::cout << "OUTPUT_STORE must decrease from 1 to 0" << std::endl; 03533 03534 //if ((sem_value_F = semctl(semid, FREE_SPACE, GETVAL, 0)) == -1){ 03535 // perror("Can not get FREE_SPACE"); 03536 //} 03537 //std::cout << "Semaphore FREE_SPACE has value of(refer 0) " << sem_value_F << std::endl; 03538 // 03539 //if ((sem_value_O = semctl(semid, OUTPUT_STORE, GETVAL, 0)) == -1){ 03540 // perror("Can not get OUTPUT_STORE"); 03541 //} 03542 //std::cout << "Semaphore OUTPUT_STORE has value of(refer 0) " << sem_value_O << std::endl; 03543 //******************************* 03544 if (fCurrentEvent >= 1){ 03545 if (fDigiEvent){ 03546 //fDigiEvent->Clear(); 03547 delete fDigiEvent; 03548 fDigiEvent=0; 03549 } 03550 if (fEvtHeader){ 03551 fEvtHeader->Clear(); 03552 delete fEvtHeader; 03553 fEvtHeader=0; 03554 } 03555 //if (fTrigEvent){ 03556 // //fTrigEvent->Clear(); 03557 // delete fTrigEvent; 03558 // fTrigEvent=0; 03559 //} 03560 if (fEvent){ 03561 delete fEvent; 03562 fEvent = NULL; 03563 } 03564 } 03565 03566 03567 //******************************* 03568 // read from share file 03569 //******************************* 03570 OpenEventFile(f_evtFile); 03571 if (fEventFile == NULL){ 03572 return true; 03573 } 03574 if (fEventTree) 03575 delete fEventTree; 03576 fEventFile->Close(); 03577 delete fEventFile; 03578 //******************************* 03579 03580 release.sem_num = FREE_SPACE; 03581 //******************************* 03582 // Debug information 03583 //******************************* 03584 //std::cout << "release.sem_num: " << FREE_SPACE << std::endl; 03585 //std::cout << "release.sem_num: " << release.sem_num << std::endl; 03586 //std::cout << "release.sem_op: " << release.sem_op << std::endl; 03587 // 03588 //std::cout << "Current Event No. : " << fCurrentEvent << std::endl; 03589 //std::cout << "besvis has gotten semid: " << semid << std::endl; 03590 //std::cout << "besvis has read data" << std::endl; 03591 //std::cout << "before change FREE_SPACE" << std::endl; 03592 03593 //if ((sem_value_F = semctl(semid, FREE_SPACE, GETVAL, 0)) == -1){ 03594 // perror("Can not get FREE_SPACE"); 03595 //} 03596 //std::cout << "Semaphore FREE_SPACE has value of(refer 0) " << sem_value_F << std::endl; 03597 // 03598 //if ((sem_value_O = semctl(semid, OUTPUT_STORE, GETVAL, 0)) == -1){ 03599 // perror("Can not get OUTPUT_STORE"); 03600 //} 03601 //std::cout << "Semaphore OUTPUT_STORE has value of(refer 0) " << sem_value_O << std::endl; 03602 // 03603 //std::cout << "FREE_SPACE will increase from 0 to 1" << std::endl; 03604 //******************************* 03605 // operate semaphore:FREE_SPACE 03606 //******************************* 03607 if (semop(semid, &release, 1) == -1){ 03608 perror("consumer -- increase -- freeSpace"); 03609 exit(0); 03610 } 03611 std::cout << "Current Event No. : " << fCurrentEvent++ << std::endl; 03612 //******************************* 03613 // Debug information 03614 //******************************* 03615 //std::cout << "besvis has gotten semid: " << semid << std::endl; 03616 //std::cout << "besvis has read data" << std::endl; 03617 //std::cout << "FREE_SPACE must increase from 0 to 1" << std::endl; 03618 03619 //if ((sem_value_F = semctl(semid, FREE_SPACE, GETVAL, 0)) == -1){ 03620 // perror("Can not get FREE_SPACE"); 03621 //} 03622 //std::cout << "Semaphore FREE_SPACE has value of(refer 1) " << sem_value_F << std::endl; 03623 // 03624 //if ((sem_value_O = semctl(semid, OUTPUT_STORE, GETVAL, 0)) == -1){ 03625 // perror("Can not get OUTPUT_STORE"); 03626 //} 03627 //std::cout << "Semaphore OUTPUT_STORE has value of(refer 0) " << sem_value_O << std::endl; 03628 //******************************* 03629 } 03630 f_runStatus = RUN_SMOOTH; 03631 return true; 03632 }
|
|
00676 { return fRotateFPS; }
|
|
00676 { return fRotateFPS; }
|
|
00677 { return fRotateSpeed; }
|
|
00677 { return fRotateSpeed; }
|
|
00678 { return fRotateStep; }
|
|
00678 { return fRotateStep; }
|
|
|
|
03104 { 03105 03106 BesView *view = (BesView*)gPad->GetView(); 03107 if (view) { 03108 Double_t x1, y1, x2, y2, dx, dy; 03109 gPad->GetRange(x1, y1, x2, y2); 03110 dx = x2 - x1; 03111 dy = y2 - y1; 03112 03113 Int_t iPad = 0; 03114 if (view->GetViewType() == kXYView) iPad = 0; 03115 else if (view->GetViewType() == kZRView) iPad = 1; 03116 else if (view->GetViewType() == k3DView) iPad = 2; 03117 03118 gPad->Range(fHomeX[iPad]-0.5*dx, fHomeY[iPad]-0.5*dy, fHomeX[iPad]+0.5*dx, fHomeY[iPad]+0.5*dy); 03119 } 03120 }
|
|
|
|
04625 { 04626 // 04627 // Handle different buttons 04628 if (id == -1) { 04629 TGButton *btn = (TGButton *) gTQSender; 04630 id = btn->WidgetId(); 04631 } 04632 04633 //TCanvas *canvas = (TCanvas*)fEmbeddedCanvas->GetCanvas(); 04634 TString query = ""; 04635 Int_t displayMode = 0; 04636 04637 Double_t xmin=0.0, ymin=0.0, xmax=0.0, ymax=0.0; 04638 if (gPad) { 04639 xmin = gPad->GetX1(); 04640 ymin = gPad->GetY1(); 04641 xmax = gPad->GetX2(); 04642 ymax = gPad->GetY2(); 04643 } 04644 04645 BesView *view = 0; 04646 if (gPad) view = (BesView*)gPad->GetView(); 04647 Int_t iret; 04648 //Double_t theta, phi, psi; 04649 04650 switch ( id ) { 04651 04652 case kM_Button_LoadGeoFile: // Load geometry file 04653 LoadGeoFile(); 04654 fLoadGeoFileButton->SetPicture(gClient->GetPicture("ButtonLoadGeoFile.gif")); 04655 break; 04656 04657 case kM_Button_OpenEventFile: // Load event file 04658 OpenEventFile(); 04659 fOpenEventFileButton->SetPicture(gClient->GetPicture("ButtonOpenEventFile.gif")); 04660 break; 04661 04662 case kM_Button_SavePicAs: // Save picture as 04663 SavePicAs(); 04664 fSavePicAsButton->SetPicture(gClient->GetPicture("ButtonSavePicAs.gif")); 04665 break; 04666 04667 case kM_Button_SavePicAsPS: // Save picture as *.ps 04668 fSavePicAsPSButton->SetPicture(gClient->GetPicture("ButtonSavePicAsPSHL.gif")); 04669 //SavePicAsPS(); 04670 fEmbeddedCanvas->GetCanvas()->Print("besvis.ps", "ps"); 04671 fSavePicAsPSButton->SetPicture(gClient->GetPicture("ButtonSavePicAsPS.gif")); 04672 break; 04673 04674 case kM_Button_Refresh: // Refresh all pads 04675 //fDisplay->SwitchDisplayMode(fDisplay->GetDisplayMode()); 04676 //UpdateAllView(); 04677 if (view) view->UpdateView(0); 04678 break; 04679 04680 case kM_Button_ResetCurrent: // reset active pad to default 04681 if (view) view->Reset(); 04682 break; 04683 04684 case kM_Button_ResetAll: // Reset all pads to Default 04685 if (view) fDisplay->Reset(); 04686 break; 04687 04688 case kM_Button_CursorPick: // Cursor Pick 04689 gBesCursor->SetType(kBesPick); 04690 fCursorButton[0]->SetPicture(gClient->GetPicture("ButtonCursorPickST.gif")); 04691 fCursorButton[0]->SetState(true); 04692 fCursorButton[1]->SetPicture(gClient->GetPicture("ButtonCursorHand.gif")); 04693 fCursorButton[1]->SetState(false); 04694 //fCursorButton[0]->SetState(kButtonEngaged); 04695 //fCursorButton[1]->SetState(kButtonUp); 04696 break; 04697 04698 case kM_Button_CursorHand: // Cursor Hand 04699 gBesCursor->SetType(kBesHand); 04700 fCursorButton[0]->SetPicture(gClient->GetPicture("ButtonCursorPick.gif")); 04701 fCursorButton[0]->SetState(false); 04702 fCursorButton[1]->SetPicture(gClient->GetPicture("ButtonCursorHandST.gif")); 04703 fCursorButton[1]->SetState(true); 04704 break; 04705 04706 case kM_Button_ZoomOut: // Zoom out 04707 if (view) view->ZoomOut(); 04708 break; 04709 04710 case kM_Button_ZoomIn: // Zoom in 04711 if (view) view->ZoomIn(); 04712 break; 04713 04714 case kM_Button_SetHome: // Set Home position 04715 SetHome(); 04716 break; 04717 04718 case kM_Button_GoHome: // Go Home position 04719 GoHome(); 04720 break; 04721 04722 case kM_Button_SaveMyConfig: 04723 SaveMyConfig(); 04724 fSaveMyConfigButton->SetPicture(gClient->GetPicture("ButtonSaveMyConfig.gif")); 04725 break; 04726 04727 case kM_Button_LoadMyConfig: 04728 LoadMyConfig(); 04729 fLoadMyConfigButton->SetPicture(gClient->GetPicture("ButtonLoadMyConfig.gif")); 04730 break; 04731 04732 case kM_Button_Help: 04733 Help(); 04734 break; 04735 04736 case kM_Button_ShowInfo: // Show Info 04737 gBesCursor->SetShowInfo(!gBesCursor->GetShowInfo()); 04738 if (gBesCursor->GetShowInfo()) { 04739 fShowInfoButton->SetState(true); 04740 fShowInfoButton->SetPicture(gClient->GetPicture("ButtonShowInfoST.gif")); 04741 } 04742 else { 04743 fShowInfoButton->SetState(false); 04744 fShowInfoButton->SetPicture(gClient->GetPicture("ButtonShowInfo.gif")); 04745 } 04746 break; 04747 04748 case kM_Button_ShowAxis: // Show Axis 04749 if (view) { 04750 view->SetVisAxis(!view->GetVisAxis()); 04751 if (view->GetVisAxis()) { 04752 fShowAxisButton->SetPicture(gClient->GetPicture("ButtonShowAxisST.gif")); 04753 fShowAxisButton->SetState(true); 04754 } 04755 else { 04756 fShowAxisButton->SetPicture(gClient->GetPicture("ButtonShowAxis.gif")); 04757 fShowAxisButton->SetState(false); 04758 } 04759 view->UpdateView(0); 04760 } 04761 break; 04762 04763 case kM_Button_FishEyeView: // FishEye View 04764 if (view) { 04765 view->SetFishEye(!view->GetFishEye()); 04766 if (view->GetFishEye()) { 04767 fFishEyeViewButton->SetPicture(gClient->GetPicture("ButtonFishEyeViewST.gif")); 04768 fFishEyeViewButton->SetState(true); 04769 } 04770 else { 04771 fFishEyeViewButton->SetPicture(gClient->GetPicture("ButtonFishEyeView.gif")); 04772 fFishEyeViewButton->SetState(false); 04773 } 04774 } 04775 break; 04776 04777 case kM_Button_ParallelView: // Parallel View 04778 if (view && view->IsPerspective()) { 04779 fParallelViewButton->SetPicture(gClient->GetPicture("ButtonParallelViewST.gif")); 04780 fParallelViewButton->SetState(true); 04781 fPerspectiveViewButton->SetPicture(gClient->GetPicture("ButtonPerspectiveView.gif")); 04782 fPerspectiveViewButton->SetState(false); 04783 //view->SetParralel(); 04784 view->SetParallel(); 04785 // use SetParallel() instead of depreciated function SetParralel() 04786 // changed by tianhl at Mon Aug 20 2007 04787 view->UpdateView(0); 04788 } 04789 break; 04790 04791 case kM_Button_PerspectiveView: // Perspective View 04792 if (view && !view->IsPerspective()) { 04793 fParallelViewButton->SetPicture(gClient->GetPicture("ButtonParallelView.gif")); 04794 fParallelViewButton->SetState(false); 04795 fPerspectiveViewButton->SetPicture(gClient->GetPicture("ButtonPerspectiveViewST.gif")); 04796 fPerspectiveViewButton->SetState(true); 04797 view->SetPerspective(); 04798 view->UpdateView(0); 04799 } 04800 break; 04801 04802 case kM_Button_X3D: // X3D 04803 X3D(); 04804 fX3DButton->SetPicture(gClient->GetPicture("ButtonX3D.gif")); 04805 break; 04806 04807 case kM_Button_OpenGL: // OpenGL 04808 OpenGL(); 04809 fOpenGLButton->SetPicture(gClient->GetPicture("ButtonOpenGL.gif")); 04810 break; 04811 04812 case kM_Button_NextEvent: 04813 NextEvent(); 04814 break; 04815 04816 case kM_Button_PrevEvent: 04817 PrevEvent(); 04818 break; 04819 04820 case kM_Button_PlayEvent: 04821 AutoDisplayEvent(); 04822 break; 04823 04824 case kM_Button_FirstEvent: 04825 FirstEvent(); 04826 break; 04827 04828 case kM_Button_ViewResetAngle: 04829 if (view->GetViewType() == k3DView) view->Front(); 04830 if (view->GetViewType() == kXYView) view->SetView( 0, 0, 270, iret); 04831 if (view->GetViewType() == kZRView) view->SetView(180, 90, 90, iret); 04832 break; 04833 04834 case kM_Button_ViewCounterClockWise: 04835 RotateClockWise(-1); 04836 if (fAutoRotate) { 04837 if (fAutoRotateClockWise != -1) { 04838 fAutoRotateClockWise = -1; 04839 fAutoRotatePhi = 0; 04840 } 04841 else fAutoRotateClockWise = 0; 04842 } 04843 break; 04844 04845 case kM_Button_ViewClockWise: 04846 RotateClockWise(1); 04847 if (fAutoRotate) { 04848 if (fAutoRotateClockWise != 1) { 04849 fAutoRotateClockWise = 1; 04850 fAutoRotatePhi = 0; 04851 } 04852 else fAutoRotateClockWise = 0; 04853 } 04854 break; 04855 04856 case kM_Button_ViewMoveUp: 04857 view->Move(0,10); 04858 //if (gPad) gPad->Range(xmin, ymin+fMoveFactor*(ymax-ymin), xmax, ymax+fMoveFactor*(ymax-ymin)); 04859 break; 04860 04861 case kM_Button_ViewMoveDown: 04862 view->Move(0,-10); 04863 break; 04864 04865 case kM_Button_ViewMoveLeft: 04866 view->Move(-10,0); 04867 break; 04868 04869 case kM_Button_ViewMoveRight: 04870 view->Move(10,0); 04871 break; 04872 04873 case kM_Button_ViewMoveCenter: 04874 view->Center(); 04875 break; 04876 04877 case kM_Button_ViewAngleThetaPlus: 04878 RotateTheta(1); 04879 if (fAutoRotate) { 04880 if (fAutoRotateTheta != 1) fAutoRotateTheta = 1; 04881 else fAutoRotateTheta = 0; 04882 } 04883 break; 04884 04885 case kM_Button_ViewAngleThetaMinus: 04886 RotateTheta(-1); 04887 if (fAutoRotate) { 04888 if (fAutoRotateTheta != -1) fAutoRotateTheta = -1; 04889 else fAutoRotateTheta = 0; 04890 } 04891 break; 04892 04893 case kM_Button_ViewAnglePhiPlus: 04894 RotatePhi(1); 04895 if (fAutoRotate) { 04896 if (fAutoRotatePhi != 1) { 04897 fAutoRotatePhi = 1; 04898 fAutoRotateClockWise = 0; 04899 } 04900 else fAutoRotatePhi = 0; 04901 } 04902 break; 04903 04904 case kM_Button_ViewAnglePhiMinus: 04905 RotatePhi(-1); 04906 if (fAutoRotate) { 04907 if (fAutoRotatePhi != -1) { 04908 fAutoRotatePhi = -1; 04909 fAutoRotateClockWise = 0; 04910 } 04911 else fAutoRotatePhi = 0; 04912 } 04913 break; 04914 04915 case kM_Button_ViewAnglePsiPlus: 04916 if (view->GetViewType() == k3DView) { 04917 RotatePsi(1); 04918 if (fAutoRotate) { 04919 if (fAutoRotatePsi != 1) fAutoRotatePsi = 1; 04920 else fAutoRotatePsi = 0; 04921 } 04922 } 04923 break; 04924 04925 case kM_Button_ViewAnglePsiMinus: 04926 if (view->GetViewType() == k3DView) { 04927 RotatePsi(-1); 04928 if (fAutoRotate) { 04929 if (fAutoRotatePsi != -1) fAutoRotatePsi = -1; 04930 else fAutoRotatePsi = 0; 04931 } 04932 } 04933 break; 04934 04935 case kM_Button_AutoRotate: 04936 AutoRotate(); 04937 break; 04938 04939 case kM_Button_DisplayMode2D: 04940 SetAllDisplayModeButtonUnHL(); 04941 fDisplayModeButton[0]->SetState(true); 04942 fDisplayModeButton[0]->SetPicture(gClient->GetPicture("DisplayMode2DST.gif")); 04943 fDisplay->SwitchDisplayMode(0); 04944 break; 04945 04946 case kM_Button_DisplayModeXY: 04947 SetAllDisplayModeButtonUnHL(); 04948 fDisplayModeButton[1]->SetState(true); 04949 fDisplayModeButton[1]->SetPicture(gClient->GetPicture("DisplayModeXYST.gif")); 04950 fDisplay->SwitchDisplayMode(1); 04951 break; 04952 04953 case kM_Button_DisplayModeZR: 04954 SetAllDisplayModeButtonUnHL(); 04955 fDisplayModeButton[2]->SetState(true); 04956 fDisplayModeButton[2]->SetPicture(gClient->GetPicture("DisplayModeZRST.gif")); 04957 fDisplay->SwitchDisplayMode(2); 04958 break; 04959 04960 case kM_Button_DisplayMode3D: 04961 SetAllDisplayModeButtonUnHL(); 04962 fDisplayModeButton[3]->SetState(true); 04963 fDisplayModeButton[3]->SetPicture(gClient->GetPicture("DisplayMode3DST.gif")); 04964 fDisplay->SwitchDisplayMode(3); 04965 break; 04966 04967 case kM_Button_DisplayModeAll: 04968 SetAllDisplayModeButtonUnHL(); 04969 fDisplayModeButton[4]->SetState(true); 04970 fDisplayModeButton[4]->SetPicture(gClient->GetPicture("DisplayModeAllST.gif")); 04971 fDisplay->SwitchDisplayMode(4); 04972 break; 04973 04974 case kM_Button_SwitchDisplayMode: 04975 displayMode = fDisplay->GetDisplayMode(); 04976 displayMode++; 04977 if (displayMode >= 5) displayMode -= 5; 04978 fDisplay->SwitchDisplayMode(displayMode); 04979 04980 SetAllDisplayModeButtonUnHL(); 04981 switch (displayMode) { 04982 case 0 : 04983 fDisplayModeButton[displayMode]->SetPicture(gClient->GetPicture("DisplayMode2DST.gif")); 04984 break; 04985 case 1 : 04986 fDisplayModeButton[displayMode]->SetPicture(gClient->GetPicture("DisplayModeXYST.gif")); 04987 break; 04988 case 2 : 04989 fDisplayModeButton[displayMode]->SetPicture(gClient->GetPicture("DisplayModeZRST.gif")); 04990 break; 04991 case 3 : 04992 fDisplayModeButton[displayMode]->SetPicture(gClient->GetPicture("DisplayMode3DST.gif")); 04993 break; 04994 case 4 : 04995 fDisplayModeButton[displayMode]->SetPicture(gClient->GetPicture("DisplayModeAllST.gif")); 04996 break; 04997 default: 04998 break; 04999 } 05000 break; 05001 05002 case kM_Button_SwitchPad: 05003 fDisplay->SwitchPad(); 05004 break; 05005 } 05006 05007 UpdateStatus(); 05008 UpdateCurrentPad(); 05009 UpdateBesInputFields(); 05010 }
|
|
|
|
02758 { 02759 // 02760 // Error handling 02761 new TGMsgBox(gClient->GetRoot(), this, 02762 "Error", msg, 02763 gClient->GetPicture("mb_stop_s.xpm")); 02764 }
|
|
|
|
03856 { 03857 // 03858 // Event list handling for buttons 03859 03860 if ( entry->GetFirstChild() != 0 ) { 03861 // Run folder 03862 if ( entry->IsOpen() ) { 03863 fEventListTree->CloseItem(entry); 03864 } else { 03865 fEventListTree->OpenItem(entry); 03866 } 03867 } else { 03868 fEventListTree->HighlightItem(entry); 03869 gClient->NeedRedraw(fEventListTree); 03870 03871 // Event item 03872 fItem = entry; 03873 fRunItem = entry->GetParent(); 03874 TString msg1("Displaying Run "); 03875 HandleStatusBar(msg1.Data()); 03876 03877 SetState(); // includes canvas update 03878 03879 TString msg2("Run "); 03880 HandleStatusBar(msg2.Data()); 03881 } 03882 03883 // Redraw canvas 03884 TCanvas *canvas = (TCanvas*)fEmbeddedCanvas->GetCanvas(); 03885 canvas->Modified(); 03886 canvas->Update(); 03887 }
|
|
|
|
02768 { 02769 // 02770 // Info handling 02771 fStatusBar->SetText(msg, 1); 02772 }
|
|
|
|
02202 { 02203 // 02204 // Handle menu items. 02205 02206 switch (id) { 02207 02208 // File 02209 case kM_File_LoadGeo: 02210 LoadGeoFile(); 02211 break; 02212 case kM_File_SaveGeoAs: 02213 SaveGeoAs(); 02214 break; 02215 case kM_File_OpenEvent: 02216 OpenEventFile(); 02217 break; 02218 case kM_File_SavePicAs: 02219 SavePicAs(); 02220 break; 02221 case kM_File_Close: 02222 gInterpreter->DeleteGlobal(this); 02223 delete this; 02224 break; 02225 case kM_File_Exit: 02226 CloseWindow(); // terminate theApp no need to use SendCloseMessage() 02227 break; 02228 02229 // Edit 02230 case kM_Edit_Editor: 02231 fEmbeddedCanvas->GetCanvas()->EditorBar(); 02232 break; 02233 02234 // Help 02235 case kM_Help_Content: 02236 Help(); 02237 break; 02238 02239 case kM_Help_About: 02240 new BesAboutHelp(gClient->GetRoot(), this); 02241 break; 02242 02243 // Default 02244 default: 02245 cerr << "Menu item" << id << "selected" << endl; 02246 break; 02247 } 02248 }
|
|
|
|
05015 { 05016 // 05017 // Handle slider events 05018 if (gDebug) cout << "BesClient::DoSlider called!" << endl; 05019 05020 TGButton *btn = (TGButton *) gTQSender; 05021 Int_t id = btn->WidgetId(); 05022 05023 BesView *view = (BesView*)gPad->GetView(); 05024 Int_t iret; 05025 05026 switch (id) { 05027 05028 case kM_Slider_EventPlay: 05029 fEventPlaySlider->SetPosition(slider); 05030 if (fEventTree) { 05031 fBesEventNo = slider; 05032 this->GetEvent(fBesEventNo); 05033 } 05034 break; 05035 05036 case kM_Slider_ViewAngleTheta: 05037 if (view) { 05038 view->SetView(view->GetLongitude(), slider, view->GetPsi(), iret); 05039 } 05040 break; 05041 05042 case kM_Slider_ViewAnglePhi: 05043 if (view) { 05044 view->SetView(slider, view->GetLatitude(), view->GetPsi(), iret); 05045 } 05046 break; 05047 05048 case kM_Slider_ViewAnglePsi: 05049 if (view && view->GetViewType() == k3DView) { 05050 view->SetView(view->GetLongitude(), view->GetLatitude(), slider, iret); 05051 } 05052 break; 05053 } 05054 05055 UpdateCurrentPad(); 05056 UpdateBesInputFields(); 05057 }
|
|
|
|
02776 { 02777 // 02778 // Client status handling 02779 fStatusBar->SetText(msg, 0); 02780 }
|
|
|
|
02252 { 02253 // 02254 // Handle view option menu items. 02255 BesView *view = (BesView*)gPad->GetView(); 02256 if (!view) { 02257 cout << "BesClient::HandleViewOptionMenu(), BesView does not exist in this pad" << endl; 02258 return; 02259 } 02260 02261 //Int_t i = 0, px = 0, py = 0; 02262 //TVirtualGeoPainter *painter = 0; 02263 02264 switch (id) { 02265 case kM_Header_On: 02266 if ( fMenuViewOptionHeader->IsEntryChecked(kM_Header_On) ) { 02267 fMenuViewOptionHeader->UnCheckEntry(kM_Header_On); 02268 //canvas->SetHeaderOn(kFALSE); 02269 } else { 02270 fMenuViewOptionHeader->CheckEntry(kM_Header_On); 02271 //canvas->SetHeaderOn(kTRUE); 02272 } 02273 break; 02274 02275 case kM_Mdc_Global: 02276 if ( fMenuViewOptionMdc->IsEntryChecked(kM_Mdc_Global) ) { 02277 fMenuViewOptionMdc->UnCheckEntry(kM_Mdc_Global); 02278 view->SetVisMdcGlobal(0); 02279 } else { 02280 fMenuViewOptionMdc->CheckEntry(kM_Mdc_Global); 02281 view->SetVisMdcGlobal(1); 02282 } 02283 break; 02284 02285 case kM_Mdc_Tubes: 02286 if ( fMenuViewOptionMdc->IsEntryChecked(kM_Mdc_Tubes) ) { 02287 fMenuViewOptionMdc->UnCheckEntry(kM_Mdc_Tubes); 02288 view->SetVisMdcTubes(0); 02289 } else { 02290 fMenuViewOptionMdc->CheckEntry(kM_Mdc_Tubes); 02291 view->SetVisMdcTubes(1); 02292 } 02293 break; 02294 02295 case kM_Mdc_Wires: 02296 if ( fMenuViewOptionMdc->IsEntryChecked(kM_Mdc_Wires) ) { 02297 fMenuViewOptionMdc->UnCheckEntry(kM_Mdc_Wires); 02298 view->SetVisMdcWires(0); 02299 } else { 02300 fMenuViewOptionMdc->CheckEntry(kM_Mdc_Wires); 02301 view->SetVisMdcWires(1); 02302 } 02303 break; 02304 02305 case kM_Tof_Global: 02306 if ( fMenuViewOptionTof->IsEntryChecked(kM_Tof_Global) ) { 02307 fMenuViewOptionTof->UnCheckEntry(kM_Tof_Global); 02308 view->SetVisTofGlobal(0); 02309 } else { 02310 fMenuViewOptionTof->CheckEntry(kM_Tof_Global); 02311 view->SetVisTofGlobal(1); 02312 } 02313 break; 02314 02315 case kM_Tof_East: 02316 if ( fMenuViewOptionTof->IsEntryChecked(kM_Tof_East) ) { 02317 fMenuViewOptionTof->UnCheckEntry(kM_Tof_East); 02318 view->SetVisTofEast(0); 02319 } else { 02320 fMenuViewOptionTof->CheckEntry(kM_Tof_East); 02321 view->SetVisTofEast(1); 02322 } 02323 break; 02324 02325 case kM_Tof_Barrel: 02326 if ( fMenuViewOptionTof->IsEntryChecked(kM_Tof_Barrel) ) { 02327 fMenuViewOptionTof->UnCheckEntry(kM_Tof_Barrel); 02328 view->SetVisTofBarrel(0); 02329 } else { 02330 fMenuViewOptionTof->CheckEntry(kM_Tof_Barrel); 02331 view->SetVisTofBarrel(1); 02332 } 02333 break; 02334 02335 case kM_Tof_West: 02336 if ( fMenuViewOptionTof->IsEntryChecked(kM_Tof_West) ) { 02337 fMenuViewOptionTof->UnCheckEntry(kM_Tof_West); 02338 view->SetVisTofWest(0); 02339 } else { 02340 fMenuViewOptionTof->CheckEntry(kM_Tof_West); 02341 view->SetVisTofWest(1); 02342 } 02343 break; 02344 02345 case kM_Emc_Global: 02346 if ( fMenuViewOptionEmc->IsEntryChecked(kM_Emc_Global) ) { 02347 fMenuViewOptionEmc->UnCheckEntry(kM_Emc_Global); 02348 view->SetVisEmcGlobal(0); 02349 } else { 02350 fMenuViewOptionEmc->CheckEntry(kM_Emc_Global); 02351 view->SetVisEmcGlobal(1); 02352 } 02353 break; 02354 02355 case kM_Emc_East: 02356 if ( fMenuViewOptionEmc->IsEntryChecked(kM_Emc_East) ) { 02357 fMenuViewOptionEmc->UnCheckEntry(kM_Emc_East); 02358 view->SetVisEmcEast(0); 02359 } else { 02360 fMenuViewOptionEmc->CheckEntry(kM_Emc_East); 02361 view->SetVisEmcEast(1); 02362 } 02363 break; 02364 02365 case kM_Emc_Barrel: 02366 if ( fMenuViewOptionEmc->IsEntryChecked(kM_Emc_Barrel) ) { 02367 fMenuViewOptionEmc->UnCheckEntry(kM_Emc_Barrel); 02368 view->SetVisEmcBarrel(0); 02369 } else { 02370 fMenuViewOptionEmc->CheckEntry(kM_Emc_Barrel); 02371 view->SetVisEmcBarrel(1); 02372 } 02373 break; 02374 02375 case kM_Emc_West: 02376 if ( fMenuViewOptionEmc->IsEntryChecked(kM_Emc_West) ) { 02377 fMenuViewOptionEmc->UnCheckEntry(kM_Emc_West); 02378 view->SetVisEmcWest(0); 02379 } else { 02380 fMenuViewOptionEmc->CheckEntry(kM_Emc_West); 02381 view->SetVisEmcWest(1); 02382 } 02383 break; 02384 02385 case kM_Emc_Side: 02386 if ( fMenuViewOptionEmc->IsEntryChecked(kM_Emc_Side) ) { 02387 fMenuViewOptionEmc->UnCheckEntry(kM_Emc_Side); 02388 view->SetVisEmcSide(0); 02389 } else { 02390 fMenuViewOptionEmc->CheckEntry(kM_Emc_Side); 02391 view->SetVisEmcSide(1); 02392 } 02393 break; 02394 02395 case kM_Muc_Global: 02396 if ( fMenuViewOptionMuc->IsEntryChecked(kM_Muc_Global) ) { 02397 fMenuViewOptionMuc->UnCheckEntry(kM_Muc_Global); 02398 view->SetVisMucGlobal(0); 02399 } else { 02400 fMenuViewOptionMuc->CheckEntry(kM_Muc_Global); 02401 view->SetVisMucGlobal(1); 02402 } 02403 break; 02404 02405 case kM_Muc_East: 02406 if ( fMenuViewOptionMuc->IsEntryChecked(kM_Muc_East) ) { 02407 fMenuViewOptionMuc->UnCheckEntry(kM_Muc_East); 02408 view->SetVisMucEast(0); 02409 } else { 02410 fMenuViewOptionMuc->CheckEntry(kM_Muc_East); 02411 view->SetVisMucEast(1); 02412 } 02413 break; 02414 02415 case kM_Muc_Barrel: 02416 if ( fMenuViewOptionMuc->IsEntryChecked(kM_Muc_Barrel) ) { 02417 fMenuViewOptionMuc->UnCheckEntry(kM_Muc_Barrel); 02418 view->SetVisMucBarrel(0); 02419 } else { 02420 fMenuViewOptionMuc->CheckEntry(kM_Muc_Barrel); 02421 view->SetVisMucBarrel(1); 02422 } 02423 break; 02424 02425 case kM_Muc_West: 02426 if ( fMenuViewOptionMuc->IsEntryChecked(kM_Muc_West) ) { 02427 fMenuViewOptionMuc->UnCheckEntry(kM_Muc_West); 02428 view->SetVisMucWest(0); 02429 } else { 02430 fMenuViewOptionMuc->CheckEntry(kM_Muc_West); 02431 view->SetVisMucWest(1); 02432 } 02433 break; 02434 02435 case kM_Muc_Strips: 02436 if ( fMenuViewOptionMuc->IsEntryChecked(kM_Muc_Strips) ) { 02437 fMenuViewOptionMuc->UnCheckEntry(kM_Muc_Strips); 02438 view->SetVisMucStrips(0); 02439 } else { 02440 fMenuViewOptionMuc->CheckEntry(kM_Muc_Strips); 02441 view->SetVisMucStrips(1); 02442 } 02443 break; 02444 02445 case kM_Full3D_Mdc: 02446 if ( fMenuViewOptionFull3D->IsEntryChecked(kM_Full3D_Mdc) ) { 02447 fMenuViewOptionFull3D->UnCheckEntry(kM_Full3D_Mdc); 02448 view->SetVisFull3DMdc(0); 02449 } else { 02450 fMenuViewOptionFull3D->CheckEntry(kM_Full3D_Mdc); 02451 view->SetVisFull3DMdc(1); 02452 } 02453 02454 if (gBesGeometry) { 02455 gBesGeometry->GetMdcROOTGeo()->SetDetector(); 02456 gBesGeometry->GetMdcROOTGeo()->SetVisMdcDetector(); 02457 } 02458 break; 02459 02460 case kM_Full3D_Tof: 02461 if ( fMenuViewOptionFull3D->IsEntryChecked(kM_Full3D_Tof) ) { 02462 fMenuViewOptionFull3D->UnCheckEntry(kM_Full3D_Tof); 02463 view->SetVisFull3DTof(0); 02464 } else { 02465 fMenuViewOptionFull3D->CheckEntry(kM_Full3D_Tof); 02466 view->SetVisFull3DTof(1); 02467 } 02468 02469 if (gBesGeometry) { 02470 gBesGeometry->GetTofROOTGeo()->SetDetector(); 02471 gBesGeometry->GetTofROOTGeo()->SetVisTofDetector(); 02472 } 02473 break; 02474 02475 case kM_Full3D_Emc: 02476 if ( fMenuViewOptionFull3D->IsEntryChecked(kM_Full3D_Emc) ) { 02477 fMenuViewOptionFull3D->UnCheckEntry(kM_Full3D_Emc); 02478 view->SetVisFull3DEmc(0); 02479 } else { 02480 fMenuViewOptionFull3D->CheckEntry(kM_Full3D_Emc); 02481 view->SetVisFull3DEmc(1); 02482 } 02483 02484 if (gBesGeometry) { 02485 gBesGeometry->GetEmcROOTGeo()->SetDetector(); 02486 gBesGeometry->GetEmcROOTGeo()->SetVisEmcDetector(); 02487 } 02488 break; 02489 02490 case kM_Full3D_Muc: 02491 if ( fMenuViewOptionFull3D->IsEntryChecked(kM_Full3D_Muc) ) { 02492 fMenuViewOptionFull3D->UnCheckEntry(kM_Full3D_Muc); 02493 view->SetVisFull3DMuc(0); 02494 } else { 02495 fMenuViewOptionFull3D->CheckEntry(kM_Full3D_Muc); 02496 view->SetVisFull3DMuc(1); 02497 } 02498 02499 if (gBesGeometry) { 02500 gBesGeometry->GetMucROOTGeo()->SetDetector(); 02501 gBesGeometry->GetMucROOTGeo()->SetVisMucDetector(); 02502 } 02503 break; 02504 02505 case kM_BeamPipe: 02506 if ( fMenuViewOptionOthers->IsEntryChecked(kM_BeamPipe) ) { 02507 fMenuViewOptionOthers->UnCheckEntry(kM_BeamPipe); 02508 view->SetVisBeamPipe(0); 02509 } else { 02510 fMenuViewOptionOthers->CheckEntry(kM_BeamPipe); 02511 view->SetVisBeamPipe(1); 02512 } 02513 break; 02514 02515 case kM_ZRPlaneOnXY: 02516 if ( fMenuViewOptionOthers->IsEntryChecked(kM_ZRPlaneOnXY) ) { 02517 fMenuViewOptionOthers->UnCheckEntry(kM_ZRPlaneOnXY); 02518 view->SetVisZRPlaneOnXY(0); 02519 } else { 02520 fMenuViewOptionOthers->CheckEntry(kM_ZRPlaneOnXY); 02521 view->SetVisZRPlaneOnXY(1); 02522 } 02523 break; 02524 02525 case kM_Axis: 02526 if ( fMenuViewOptionOthers->IsEntryChecked(kM_Axis) ) { 02527 fMenuViewOptionOthers->UnCheckEntry(kM_Axis); 02528 view->SetVisAxis(0); 02529 } else { 02530 fMenuViewOptionOthers->CheckEntry(kM_Axis); 02531 view->SetVisAxis(1); 02532 } 02533 break; 02534 02535 case kM_MdcHits_Hits: 02536 if ( fMenuViewOptionMdcHits->IsEntryChecked(kM_MdcHits_Hits) ) { 02537 fMenuViewOptionMdcHits->UnCheckEntry(kM_MdcHits_Hits); 02538 view->SetVisMdcHits(0); 02539 } else { 02540 fMenuViewOptionMdcHits->CheckEntry(kM_MdcHits_Hits); 02541 view->SetVisMdcHits(1); 02542 } 02543 break; 02544 02545 case kM_TofHits_Global: 02546 if ( fMenuViewOptionTofHits->IsEntryChecked(kM_TofHits_Global) ) { 02547 fMenuViewOptionTofHits->UnCheckEntry(kM_TofHits_Global); 02548 view->SetVisTofHitsGlobal(0); 02549 } else { 02550 fMenuViewOptionTofHits->CheckEntry(kM_TofHits_Global); 02551 view->SetVisTofHitsGlobal(1); 02552 } 02553 break; 02554 02555 case kM_TofHits_East: 02556 if ( fMenuViewOptionTofHits->IsEntryChecked(kM_TofHits_East) ) { 02557 fMenuViewOptionTofHits->UnCheckEntry(kM_TofHits_East); 02558 view->SetVisTofHitsEast(0); 02559 } else { 02560 fMenuViewOptionTofHits->CheckEntry(kM_TofHits_East); 02561 view->SetVisTofHitsEast(1); 02562 } 02563 break; 02564 02565 case kM_TofHits_Barrel: 02566 if ( fMenuViewOptionTofHits->IsEntryChecked(kM_TofHits_Barrel) ) { 02567 fMenuViewOptionTofHits->UnCheckEntry(kM_TofHits_Barrel); 02568 view->SetVisTofHitsBarrel(0); 02569 } else { 02570 fMenuViewOptionTofHits->CheckEntry(kM_TofHits_Barrel); 02571 view->SetVisTofHitsBarrel(1); 02572 } 02573 break; 02574 02575 case kM_TofHits_West: 02576 if ( fMenuViewOptionTofHits->IsEntryChecked(kM_TofHits_West) ) { 02577 fMenuViewOptionTofHits->UnCheckEntry(kM_TofHits_West); 02578 view->SetVisTofHitsWest(0); 02579 } else { 02580 fMenuViewOptionTofHits->CheckEntry(kM_TofHits_West); 02581 view->SetVisTofHitsWest(1); 02582 } 02583 break; 02584 02585 case kM_EmcHits_Global: 02586 if ( fMenuViewOptionEmcHits->IsEntryChecked(kM_EmcHits_Global) ) { 02587 fMenuViewOptionEmcHits->UnCheckEntry(kM_EmcHits_Global); 02588 view->SetVisEmcHitsGlobal(0); 02589 } else { 02590 fMenuViewOptionEmcHits->CheckEntry(kM_EmcHits_Global); 02591 view->SetVisEmcHitsGlobal(1); 02592 } 02593 break; 02594 02595 case kM_EmcHits_East: 02596 if ( fMenuViewOptionEmcHits->IsEntryChecked(kM_EmcHits_East) ) { 02597 fMenuViewOptionEmcHits->UnCheckEntry(kM_EmcHits_East); 02598 view->SetVisEmcHitsEast(0); 02599 } else { 02600 fMenuViewOptionEmcHits->CheckEntry(kM_EmcHits_East); 02601 view->SetVisEmcHitsEast(1); 02602 } 02603 break; 02604 02605 case kM_EmcHits_Barrel: 02606 if ( fMenuViewOptionEmcHits->IsEntryChecked(kM_EmcHits_Barrel) ) { 02607 fMenuViewOptionEmcHits->UnCheckEntry(kM_EmcHits_Barrel); 02608 view->SetVisEmcHitsBarrel(0); 02609 } else { 02610 fMenuViewOptionEmcHits->CheckEntry(kM_EmcHits_Barrel); 02611 view->SetVisEmcHitsBarrel(1); 02612 } 02613 break; 02614 02615 case kM_EmcHits_West: 02616 if ( fMenuViewOptionEmcHits->IsEntryChecked(kM_EmcHits_West) ) { 02617 fMenuViewOptionEmcHits->UnCheckEntry(kM_EmcHits_West); 02618 view->SetVisEmcHitsWest(0); 02619 } else { 02620 fMenuViewOptionEmcHits->CheckEntry(kM_EmcHits_West); 02621 view->SetVisEmcHitsWest(1); 02622 } 02623 break; 02624 02625 case kM_EmcHits_Side: 02626 if ( fMenuViewOptionEmcHits->IsEntryChecked(kM_EmcHits_Side) ) { 02627 fMenuViewOptionEmcHits->UnCheckEntry(kM_EmcHits_Side); 02628 view->SetVisEmcHitsSide(0); 02629 } else { 02630 fMenuViewOptionEmcHits->CheckEntry(kM_EmcHits_Side); 02631 view->SetVisEmcHitsSide(1); 02632 } 02633 break; 02634 02635 case kM_MucHits_Global: 02636 if ( fMenuViewOptionMucHits->IsEntryChecked(kM_MucHits_Global) ) { 02637 fMenuViewOptionMucHits->UnCheckEntry(kM_MucHits_Global); 02638 view->SetVisMucHitsGlobal(0); 02639 } else { 02640 fMenuViewOptionMucHits->CheckEntry(kM_MucHits_Global); 02641 view->SetVisMucHitsGlobal(1); 02642 } 02643 break; 02644 02645 case kM_MucHits_East: 02646 if ( fMenuViewOptionMucHits->IsEntryChecked(kM_MucHits_East) ) { 02647 fMenuViewOptionMucHits->UnCheckEntry(kM_MucHits_East); 02648 view->SetVisMucHitsEast(0); 02649 } else { 02650 fMenuViewOptionMucHits->CheckEntry(kM_MucHits_East); 02651 view->SetVisMucHitsEast(1); 02652 } 02653 break; 02654 02655 case kM_MucHits_Barrel: 02656 if ( fMenuViewOptionMucHits->IsEntryChecked(kM_MucHits_Barrel) ) { 02657 fMenuViewOptionMucHits->UnCheckEntry(kM_MucHits_Barrel); 02658 view->SetVisMucHitsBarrel(0); 02659 } else { 02660 fMenuViewOptionMucHits->CheckEntry(kM_MucHits_Barrel); 02661 view->SetVisMucHitsBarrel(1); 02662 } 02663 break; 02664 02665 case kM_MucHits_West: 02666 if ( fMenuViewOptionMucHits->IsEntryChecked(kM_MucHits_West) ) { 02667 fMenuViewOptionMucHits->UnCheckEntry(kM_MucHits_West); 02668 view->SetVisMucHitsWest(0); 02669 } else { 02670 fMenuViewOptionMucHits->CheckEntry(kM_MucHits_West); 02671 view->SetVisMucHitsWest(1); 02672 } 02673 break; 02674 02675 case kM_Tracks_Global: 02676 if ( fMenuViewOptionTracks->IsEntryChecked(kM_Tracks_Global) ) { 02677 fMenuViewOptionTracks->UnCheckEntry(kM_Tracks_Global); 02678 view->SetVisTracksGlobal(0); 02679 } else { 02680 fMenuViewOptionTracks->CheckEntry(kM_Tracks_Global); 02681 view->SetVisTracksGlobal(1); 02682 } 02683 break; 02684 02685 case kM_Tracks_Mdc: 02686 if ( fMenuViewOptionTracks->IsEntryChecked(kM_Tracks_Mdc) ) { 02687 fMenuViewOptionTracks->UnCheckEntry(kM_Tracks_Mdc); 02688 view->SetVisTracksMdc(0); 02689 } else { 02690 fMenuViewOptionTracks->CheckEntry(kM_Tracks_Mdc); 02691 view->SetVisTracksMdc(1); 02692 } 02693 break; 02694 02695 case kM_Tracks_Tof: 02696 if ( fMenuViewOptionTracks->IsEntryChecked(kM_Tracks_Tof) ) { 02697 fMenuViewOptionTracks->UnCheckEntry(kM_Tracks_Tof); 02698 view->SetVisTracksTof(0); 02699 } else { 02700 fMenuViewOptionTracks->CheckEntry(kM_Tracks_Tof); 02701 view->SetVisTracksTof(1); 02702 } 02703 break; 02704 02705 case kM_Tracks_Emc: 02706 if ( fMenuViewOptionTracks->IsEntryChecked(kM_Tracks_Emc) ) { 02707 fMenuViewOptionTracks->UnCheckEntry(kM_Tracks_Emc); 02708 view->SetVisTracksEmc(0); 02709 } else { 02710 fMenuViewOptionTracks->CheckEntry(kM_Tracks_Emc); 02711 view->SetVisTracksEmc(1); 02712 } 02713 break; 02714 02715 case kM_Tracks_Muc: 02716 if ( fMenuViewOptionTracks->IsEntryChecked(kM_Tracks_Muc) ) { 02717 fMenuViewOptionTracks->UnCheckEntry(kM_Tracks_Muc); 02718 view->SetVisTracksMuc(0); 02719 } else { 02720 fMenuViewOptionTracks->CheckEntry(kM_Tracks_Muc); 02721 view->SetVisTracksMuc(1); 02722 } 02723 break; 02724 02725 case kM_Tracks_Ext: 02726 if ( fMenuViewOptionTracks->IsEntryChecked(kM_Tracks_Ext) ) { 02727 fMenuViewOptionTracks->UnCheckEntry(kM_Tracks_Ext); 02728 view->SetVisTracksExt(0); 02729 } else { 02730 fMenuViewOptionTracks->CheckEntry(kM_Tracks_Ext); 02731 view->SetVisTracksExt(1); 02732 } 02733 break; 02734 02735 case kM_View_X3D: 02736 X3D(); 02737 break; 02738 02739 case kM_View_OpenGL: 02740 OpenGL(); 02741 break; 02742 02743 // Default 02744 default: 02745 cerr << "MenuViewOption item" << id << "selected" << endl; 02746 break; 02747 } 02748 02749 view->UpdateView(0); 02750 UpdateStatus(); 02751 02752 ((TCanvas*)fEmbeddedCanvas->GetCanvas())->Modified(); 02753 ((TCanvas*)fEmbeddedCanvas->GetCanvas())->Update(); 02754 }
|
|
|
|
03212 { 03213 03214 //char str[32]; 03215 //sprintf(str, "BesVis Help %s...", gROOT->GetVersion()); 03216 //TRootHelpDialog * hd = new TRootHelpDialog(this, str, 600, 400); 03217 03218 TRootHelpDialog * hd = new TRootHelpDialog(this, "Help on BesVis...", 600, 400); 03219 hd->SetText(gHelpBesVis); 03220 hd->Popup(); 03221 }
|
|
|
|
02187 { 02188 // 02189 // init connections to internal messaging queues 02190 if (gDebug) cout << "BesClient::InitConnections called!" << endl; 02191 02192 // Connect canvas to mouse actions 02193 Connect((TCanvas*)fEmbeddedCanvas->GetCanvas(),"ProcessedEvent(Int_t, Int_t, Int_t, TObject*)", "BesClient", 02194 this, "ExecuteEvent(Int_t, Int_t, Int_t, TObject*)"); 02195 02196 // Connect close button 02197 Connect("CloseWindow()", "BesClient", this, "CloseWindow()"); 02198 }
|
|
|
|
02111 { 02112 // 02113 // init local variables 02114 if (gDebug) cout << "BesClient::InitLocal called!" << endl; 02115 02116 // init widget list 02117 fWidgets = new TList(); 02118 fLayout = 0; 02119 02120 gGeometry = 0; 02121 gBesCursor = new BesCursor(); 02122 gBesCursor->SetType(kBesPick); 02123 gBesCursor->SetShowInfo(true); 02124 02125 fAutoDisplayEventTimer = new TTimer(fEventPlaySpeed); 02126 Connect(fAutoDisplayEventTimer,"Timeout()","BesClient",this,"AutoDisplayEventCommand()"); 02127 02128 fAutoRotateTimer = new TTimer((Int_t)1000/fRotateFPS); 02129 Connect(fAutoRotateTimer,"Timeout()","BesClient",this,"AutoRotateCommand()"); 02130 02131 /*TColor *milk = */ 02132 new TColor(1001, 1.0, 1.0, 225/255.0); 02133 /*TColor *pink = */ 02134 new TColor(1002, 227/255.0, 186/255.0, 227/255.0); 02135 /*TColor *lightYellow = */ 02136 new TColor(1003, 232/255.0, 234/255.0, 117/255.0); 02137 /*TColor *orange = */ 02138 new TColor(1004, 254/255.0, 216/255.0, 31/255.0); 02139 /*TColor *lightBlue = */ 02140 new TColor(1005, 175/255.0, 192/255.0, 227/255.0); 02141 /*TColor *lightGreen = */ 02142 new TColor(1006, 192/255.0, 227/255.0, 226/255.0); 02143 /*TColor *lightBrown = */ 02144 new TColor(1007, 225/255.0, 199/255.0, 162/255.0); 02145 }
|
|
|
|
02149 { 02150 // 02151 // init local variables 02152 if (gDebug) cout << "BesClient::InitParameter called!" << endl; 02153 02154 // init command line parameter 02155 fWindowWidth = 1000; 02156 fWindowHeight = 710; 02157 02158 fBesVisPath = TString(getenv("BESVISLIBROOT")); 02159 02160 fEventPlaySpeed = 1000; // 1000 ms/event 02161 fAutoDisplayEvent = kFALSE; 02162 02163 for (Int_t i = 0; i < 3; i++) { 02164 fHomeX[i] = 0.0; 02165 fHomeY[i] = 0.0; 02166 } 02167 02168 fMoveFactor = 0.1; // factor of move 02169 fRotateStep = 1.0; // 0.1 deg/frame 02170 fRotateSpeed = 10.0; // 1.0 deg/sec 02171 fRotateFPS = 10; // 10 frame/sec 02172 02173 fAutoRotate = kFALSE; 02174 fAutoRotateClockWise = 0; 02175 fAutoRotateTheta = 0; 02176 fAutoRotatePhi = 0; 02177 fAutoRotatePsi = 0; 02178 02179 fBesRunNo = 0; 02180 fBesEventNo = 0; 02181 02182 fViewer3DMode = 0; 02183 }
|
|
|
|
02793 { 02794 // 02795 // Load BesVis geometry file 02796 02797 if ( f_geoFile.Length() != 0){ 02798 cout << "Load geoFile f_geoFile: " << f_geoFile << endl; 02799 this->OpenGeoFile(f_geoFile); 02800 } 02801 else { 02802 // Open file browser 02803 static TString GeoDir = fBesVisPath + TString("/geom/"); // "." 02804 TGFileInfo fi; 02805 fi.fFileTypes = OpenGeoTypes; 02806 fi.fIniDir = StrDup(GeoDir); 02807 char msg[256]; 02808 sprintf(msg, "Loading Geometry File"); 02809 HandleStatusBar(msg); 02810 new TGFileDialog(fClient->GetRoot(), this, kFDOpen, &fi); 02811 if (&fi == 0) return; 02812 GeoDir = fi.fIniDir; 02813 this->OpenGeoFile(fi.fFilename); // fi.fFilename: full path of geofile 02814 } 02815 }
|
|
|
|
03167 { 03168 // 03169 // load my style from ~/.besvisMyConfig.txt 03170 03171 string homePath = getenv("HOME"); 03172 string fileName = homePath + string("/.besvisMyConfig.txt"); 03173 //cout << "fileName " << fileName << endl; 03174 03175 ostringstream s; 03176 s << "The config file: " << fileName.c_str() << " does not exist ! \n Maybe You have not save your config"; 03177 if (!FileExists(TString(fileName))) { 03178 this->HandleError(s.str().c_str()); 03179 return; 03180 } 03181 03182 ifstream fileMyConfig(fileName.c_str()); 03183 if (fDisplay) { 03184 BesView *viewXY = (BesView*)fDisplay->GetPadXY()->GetView(); 03185 if (viewXY) { 03186 BesStatus status; 03187 fileMyConfig >> status; 03188 viewXY->GetStatusCurrent()->Transfer(&status, true); 03189 } 03190 03191 BesView *viewZR = (BesView*)fDisplay->GetPadZR()->GetView(); 03192 if (viewZR) { 03193 BesStatus status; 03194 fileMyConfig >> status; 03195 viewZR->GetStatusCurrent()->Transfer(&status, true); 03196 } 03197 03198 BesView *view3D = (BesView*)fDisplay->GetPad3D()->GetView(); 03199 if (view3D) { 03200 BesStatus status; 03201 fileMyConfig >> status; 03202 view3D->GetStatusCurrent()->Transfer(&status, true); 03203 } 03204 } 03205 03206 UpdateStatus(); 03207 UpdateAllView(); 03208 }
|
|
|
|
03636 { 03637 Bool_t status; 03638 fBesEventNo++; 03639 if ( f_bossMode == false) { 03640 status = GetEvent(fBesEventNo); 03641 } 03642 else if ( f_bossMode == true) { 03643 std::cout << "In Boss Mode, execute NextEvent()" << std::endl; 03644 status = GetRecEvent(); 03645 } 03646 if (!status) fBesEventNo--; 03647 return status; 03648 }
|
|
|
|
|
|
02935 { 02936 // 02937 // Open BesVis event file 02938 02939 std::cout << "OpenEventFile: " << fname << std::endl; 02940 HandleStatusBar("Open Event File"); 02941 char msg[256]; 02942 f_evtFile_1 = fname; 02943 if ( fname.Contains(".root")||fname.Contains(".rtraw")||fname.Contains(".rec") ) { 02944 fEvent = 0; 02945 gEvent = 0; 02946 fEvent = new BesEvent(); 02947 gEvent = fEvent; 02948 02949 fEventFile = TFile::Open(fname, "read"); 02950 02951 if (fEventFile){ 02952 fEventTree = 0; 02953 fEventTree = (TTree*)fEventFile->Get("Event"); 02954 } 02955 else { 02956 this->HandleError("This File is not a valid BesVis ROOT Event File!"); 02957 sprintf(msg, "This File is not valid"); 02958 HandleStatusBar(msg); 02959 return; 02960 } 02961 02962 if (fEventTree) { 02963 Long64_t nEvents = fEventTree->GetEntries(); 02964 fEventPlaySlider->SetRange(0, nEvents-1); 02965 fEventPlaySlider->SetPosition(0); 02966 02967 fBesEventNo = 0; 02968 if (nEvents > 0) { 02969 if(f_bossMode == false){ 02970 fDigiEvent = 0; 02971 fEvtHeader = 0; 02972 //fTrigEvent = 0; 02973 fRecEvent_1 = 0; 02974 fEventTree->SetBranchAddress("TDigiEvent" , &fDigiEvent); 02975 fEventTree->SetBranchAddress("TRecEvent" , &fRecEvent_1); 02976 fEventTree->SetBranchAddress("TEvtHeader" , &fEvtHeader); 02977 //fEventTree->SetBranchAddress("TTrigEvent" , &fTrigEvent); 02978 } 02979 02980 GetEvent(fBesEventNo); 02981 } 02982 02983 fEventPlaySlider->SetRange(0, nEvents); // tianhl change it 02984 fEventPlaySlider->SetPosition(0); 02985 } 02986 else { 02987 this->HandleError("This File is not a valid BesVis ROOT Event File : \n Event Tree \"Event\" not found!"); 02988 sprintf(msg, "This File contains no Event Tree \"Event\""); 02989 HandleStatusBar(msg); 02990 return; 02991 } 02992 HandleStatusBar("Ready"); 02993 } 02994 }
|
|
02912 { 02913 // 02914 // Load BesVis event file 02915 if (!gBesGeometry) { 02916 this->HandleError("Geometry not intialized, Load Geometry file first!"); 02917 return; 02918 } 02919 02920 // Open file browser 02921 static TString EventDir("."); 02922 TGFileInfo fi; 02923 fi.fFileTypes = OpenEventTypes; 02924 fi.fIniDir = StrDup(EventDir); 02925 char msg[256]; 02926 sprintf(msg, "Loading Event File"); 02927 HandleStatusBar(msg); 02928 new TGFileDialog(fClient->GetRoot(), this, kFDOpen, &fi); 02929 EventDir = fi.fIniDir; 02930 this->OpenEventFile(fi.fFilename); 02931 }
|
|
|
|
02819 { 02820 // 02821 // Open BesVis geometry file 02822 HandleStatusBar("Open Geometry File"); 02823 char msg[256]; 02824 02825 if (gDebug) cout << fname << " fname Length " << fname.Length() << endl; 02826 Ssiz_t posLastSlash = fname.Last('/'); // /scratch/youzy/BesVis/geom.root 02827 // | 02828 TString fpath = fname; 02829 fpath = fpath.Remove(posLastSlash+1, fname.Length()-posLastSlash-1); 02830 02831 if (fpath.Length() == 0) return; // Cancel Button pressed. 02832 02833 if (fDisplay->GetBesGeometry()) { 02834 Int_t ret; 02835 const char *txt; 02836 txt = Form("Geometry has already been build, Yes to rebuild it? \n (Each rebuild increase memory ~80MB)"); 02837 new TGMsgBox(fClient->GetRoot(), GetMainFrame(), 02838 "Geometry Exist", txt, kMBIconExclamation, 02839 kMBYes | kMBNo, &ret); 02840 if (ret == kMBNo) return; 02841 } 02842 02843 if ( fname.Contains(".gdml") ) { 02844 fDisplay->InitGeometryFromGDML(fpath); 02845 fDisplay->Draw(); 02846 return ; 02847 } 02848 02849 if ( fname.Contains(".root") ) { 02850 fGeoFile = TFile::Open(fname, "read"); 02851 02852 TGeoVolume *volBes = (TGeoVolume*)(fGeoFile->Get("volBes")); 02853 02854 if (volBes) { 02855 fDisplay->InitGeometryFromROOT(volBes); 02856 fDisplay->Draw(); 02857 return ; 02858 } 02859 else { 02860 this->HandleError("This File is not a valid BesVis geometry file : \n TopVolume \"volBes\" not found!"); 02861 sprintf(msg, "This File is not a valid BesVis geometry file"); 02862 HandleStatusBar(msg); 02863 return; 02864 } 02865 HandleStatusBar("Ready"); 02866 } 02867 }
|
|
|
|
03275 { 03276 03277 BesView *view = (BesView*)gPad->GetView(); 03278 if (!view) return; 03279 03280 // if (view->GetViewType() & k3DView) { 03281 // //gPad->x3d("ogl"); 03282 // gPad->GetViewer3D("ogl"); 03283 // // use TPad::GetViewer3D() instead of depreciated function TPad::x3d 03284 // // changed by tianhl at Mon Aug 20 2007 03285 // fViewer3DMode = 2; 03286 // 03287 // //TViewerOpenGL *ogl = 0; 03288 // //ogl = (TViewerOpenGL*)gPad->GetViewer3D(); 03289 // // update from 4.04 to 5.14 03290 // TVirtualViewer3D *ogl = 0; 03291 // ogl = (TVirtualViewer3D*)gPad->GetViewer3D("ogl"); 03292 // 03293 // if (!ogl) cout << " ogl does not exist " << endl; 03294 // UpdateCurrentPad(); 03295 // } 03296 // else { 03297 // string s("Could not start OpenGL for 2D view, swith to 3D view first"); 03298 // this->HandleError(s.c_str()); 03299 // } 03300 }
|
|
|
|
03653 { 03654 Bool_t status; 03655 fBesEventNo--; 03656 if ( f_bossMode == false){ 03657 status = GetEvent(fBesEventNo); 03658 } 03659 else if ( f_bossMode == true){ 03660 // add error box 03661 this->HandleError("Boss Mode can not get previous event!"); 03662 } 03663 if (!status) fBesEventNo++; 03664 return status; 03665 }
|
|
|
|
03782 { 03783 Double_t phi = 0.0; 03784 Int_t iret; 03785 if (fDisplay->GetPadXY()->GetView()) { 03786 phi = fDisplay->GetPadXY()->GetView()->GetLongitude(); 03787 phi += clockwise * fRotateStep; 03788 fDisplay->GetPadXY()->GetView()->SetView(phi, 03789 fDisplay->GetPadXY()->GetView()->GetLatitude(), 03790 fDisplay->GetPadXY()->GetView()->GetPsi(), iret); 03791 fDisplay->GetPadXY()->Modified(); 03792 fDisplay->GetPadXY()->Update(); 03793 } 03794 if (fDisplay->GetPadZR()->GetView()) { 03795 //phi = fDisplay->GetPadZR()->GetView()->GetLongitude(); 03796 //phi += clockwise * fRotateStep; 03797 phi += 180.0; 03798 fDisplay->GetPadZR()->GetView()->SetView(phi, 03799 fDisplay->GetPadZR()->GetView()->GetLatitude(), 03800 fDisplay->GetPadZR()->GetView()->GetPsi(), iret); 03801 fDisplay->GetPadZR()->Modified(); 03802 fDisplay->GetPadZR()->Update(); 03803 } 03804 }
|
|
|
|
03825 { 03826 BesView *view = (BesView*)gPad->GetView(); 03827 03828 if (view) { 03829 Double_t phi = view->GetLongitude() + pn*fRotateStep; 03830 Int_t iret; 03831 SetRange(phi, 0.0, 360.0); 03832 view->SetView(phi, view->GetLatitude(), view->GetPsi(), iret); 03833 //gPad->Modified(); 03834 //gPad->Update(); 03835 } 03836 }
|
|
|
|
03841 { 03842 BesView *view = (BesView*)gPad->GetView(); 03843 03844 if (view) { 03845 Double_t psi = view->GetPsi() + pn*fRotateStep; 03846 Int_t iret; 03847 SetRange(psi, 0.0, 360.0); 03848 view->SetView(view->GetLongitude(), view->GetLatitude(), psi, iret); 03849 //gPad->Modified(); 03850 //gPad->Update(); 03851 } 03852 }
|
|
|
|
03809 { 03810 BesView *view = (BesView*)gPad->GetView(); 03811 03812 if (view) { 03813 Double_t theta = view->GetLatitude() + pn*fRotateStep; 03814 Int_t iret; 03815 SetRange(theta, 0.0, 180.0); 03816 view->SetView(view->GetLongitude(), theta, view->GetPsi(), iret); 03817 //gPad->Modified(); 03818 //gPad->Update(); 03819 } 03820 }
|
|
|
|
02871 { 02872 // 02873 // save object of Top Volume "volBes" to a ROOT file 02874 // Open file browser 02875 02876 if (!fDisplay) { 02877 this->HandleError("fDisplay not found !"); 02878 return; 02879 } 02880 02881 if (!fDisplay->GetBesGeometry()) { 02882 this->HandleError("Bes Geometry not found, Load from ROOT or GDML files first !"); 02883 return; 02884 } 02885 02886 TGeoVolume *volBes = fDisplay->GetBesGeometry()->GetVolBes(); 02887 if (volBes) { 02888 // get name to save volBes to 02889 static TString EventDir("."); 02890 TGFileInfo fi; 02891 fi.fFileTypes = SaveGeoTypes; 02892 fi.fIniDir = StrDup(EventDir); 02893 char msg[256]; 02894 sprintf(msg, "Saving Geometry ----> BUSY!"); 02895 HandleStatusBar(msg); 02896 new TGFileDialog(fClient->GetRoot(), this, kFDSave, &fi); 02897 02898 TFile *f = new TFile( fi.fFilename,"RECREATE"); 02899 volBes->Write(); 02900 f->Close(); 02901 } 02902 else { 02903 this->HandleError("TGeoVolume \"volBes\" not found !"); 02904 return; 02905 } 02906 02907 HandleStatusBar("Ready"); 02908 }
|
|
|
|
03124 { 03125 // 03126 // save current style to ~/.besvisMyConfig.txt 03127 03128 Int_t ret; 03129 const char *txt; 03130 txt = Form("Save current style to ~/.besvisMyConfig.txt, Yes to save it? "); 03131 new TGMsgBox(fClient->GetRoot(), GetMainFrame(), 03132 "Save My Style", txt, kMBIconExclamation, 03133 kMBYes | kMBNo, &ret); 03134 if (ret == kMBNo) return; 03135 03136 string homePath = getenv("HOME"); 03137 string fileName = homePath + string("/.besvisMyConfig.txt"); 03138 //cout << "fileName " << fileName << endl; 03139 ofstream fileMyConfig(fileName.c_str(), ios_base::out); 03140 03141 if (fDisplay) { 03142 BesView *viewXY = (BesView*)fDisplay->GetPadXY()->GetView(); 03143 if (viewXY) { 03144 BesStatus *status = (BesStatus*)viewXY->GetStatusXY(); 03145 fileMyConfig << *status; 03146 //cout << "viewXY " << *status << endl; 03147 } 03148 03149 BesView *viewZR = (BesView*)fDisplay->GetPadZR()->GetView(); 03150 if (viewZR) { 03151 BesStatus *status = (BesStatus*)viewZR->GetStatusZR(); 03152 fileMyConfig << *status; 03153 //cout << "viewZR " << *status << endl; 03154 } 03155 03156 BesView *view3D = (BesView*)fDisplay->GetPad3D()->GetView(); 03157 if (view3D) { 03158 BesStatus *status = (BesStatus*)view3D->GetStatus3D(); 03159 fileMyConfig << *status; 03160 //cout << "view3D " << *status << endl; 03161 } 03162 } 03163 }
|
|
|
|
02998 { 02999 // 03000 // save picture of canvas in file 03001 // Open file browser 03002 03003 // get name to save events to 03004 static TString EventDir("."); 03005 TGFileInfo fi; 03006 fi.fFileTypes = SavePicTypes; 03007 fi.fIniDir = StrDup(EventDir); 03008 char msg[256]; 03009 sprintf(msg, "Saving Picture ----> BUSY!"); 03010 HandleStatusBar(msg); 03011 new TGFileDialog(fClient->GetRoot(), this, kFDSave, &fi); 03012 03013 if ( fi.fFilename ) { 03014 TString filename = fi.fFilename; 03015 if ( filename.EndsWith("gif") || filename.EndsWith("GIF") ) { 03016 fEmbeddedCanvas->GetCanvas()->Print(filename.Data(),"gif"); 03017 } 03018 else if ( filename.EndsWith("jpg") || filename.EndsWith("JPG") ) { 03019 fEmbeddedCanvas->GetCanvas()->Print(filename.Data(),"jpg"); 03020 } 03021 else if ( filename.EndsWith("eps") || filename.EndsWith("EPS") ) { 03022 fEmbeddedCanvas->GetCanvas()->Print(filename.Data(),"eps"); 03023 } 03024 else if ( filename.EndsWith("ps") || filename.EndsWith("PS") ) { 03025 fEmbeddedCanvas->GetCanvas()->Print(filename.Data(),"ps"); 03026 } 03027 else if ( filename.EndsWith("xpm") || filename.EndsWith("XPM") ) { 03028 fEmbeddedCanvas->GetCanvas()->Print(filename.Data(),"xmp"); 03029 } 03030 else if ( filename.EndsWith("png") || filename.EndsWith("PNG") ) { 03031 fEmbeddedCanvas->GetCanvas()->Print(filename.Data(),"png"); 03032 } 03033 else if ( filename.EndsWith("tiff") || filename.EndsWith("TIFF") ) { 03034 fEmbeddedCanvas->GetCanvas()->Print(filename.Data(),"tiff"); 03035 } 03036 else if ( filename.EndsWith("cxx") || filename.EndsWith("CXX") ) { 03037 fEmbeddedCanvas->GetCanvas()->Print(filename.Data(),"cxx"); 03038 } 03039 else if ( filename.EndsWith("xml") || filename.EndsWith("XML") ) { 03040 fEmbeddedCanvas->GetCanvas()->Print(filename.Data(),"xml"); 03041 } 03042 else if ( filename.EndsWith("root") || filename.EndsWith("ROOT") ) { 03043 fEmbeddedCanvas->GetCanvas()->Print(filename.Data(),"root"); 03044 } 03045 else { 03046 new TGMsgBox(gClient->GetRoot(), this,"Error", "Please give Name and Extension of Filename! \n Valid Extensions are *.gif, *.jpg, *.ps, *.eps, *.xpm, *.png, *.tiff!",gClient->GetPicture("mb_stop_s.xpm")); 03047 SavePicAs(); 03048 return; 03049 } 03050 } 03051 HandleStatusBar("Ready"); 03052 }
|
|
|
|
03056 { 03057 // 03058 // save picture of canvas in file 03059 // Open file browser 03060 03061 // get name to save events to 03062 static TString PSEventDir("."); 03063 TGFileInfo fi; 03064 fi.fFileTypes = SavePicPS; 03065 fi.fIniDir = StrDup(PSEventDir); 03066 char msg[256]; 03067 sprintf(msg, "Saving Picture as PS ----> BUSY!"); 03068 HandleStatusBar(msg); 03069 new TGFileDialog(fClient->GetRoot(), this, kFDSave, &fi); 03070 03071 if ( fi.fFilename ) { 03072 TString filename = fi.fFilename; 03073 if ( filename.EndsWith("ps") || filename.EndsWith("PS") ) { 03074 fEmbeddedCanvas->GetCanvas()->Print(filename.Data(),"ps"); 03075 } 03076 else { 03077 filename += ".ps"; 03078 fEmbeddedCanvas->GetCanvas()->Print(filename.Data(),"ps"); 03079 } 03080 } 03081 HandleStatusBar("Ready"); 03082 }
|
|
|
|
03225 { 03226 03227 fDisplayModeButton[0]->SetPicture(gClient->GetPicture("DisplayMode2D.gif")); 03228 fDisplayModeButton[1]->SetPicture(gClient->GetPicture("DisplayModeXY.gif")); 03229 fDisplayModeButton[2]->SetPicture(gClient->GetPicture("DisplayModeZR.gif")); 03230 fDisplayModeButton[3]->SetPicture(gClient->GetPicture("DisplayMode3D.gif")); 03231 fDisplayModeButton[4]->SetPicture(gClient->GetPicture("DisplayModeAll.gif")); 03232 03233 for (Int_t i = 0; i < 5; i++) fDisplayModeButton[i]->SetState(false); 03234 }
|
|
|
|
03086 { 03087 03088 BesView *view = (BesView*)gPad->GetView(); 03089 if (view) { 03090 Double_t x1, y1, x2, y2; 03091 gPad->GetRange(x1, y1, x2, y2); 03092 //cout << "x1 " << x1 << " x2 " << x2 << " y1 " << y1 << " y2 " << y2 << endl; 03093 Int_t iPad = 0; 03094 if (view->GetViewType() == kXYView) iPad = 0; 03095 else if (view->GetViewType() == kZRView) iPad = 1; 03096 else if (view->GetViewType() == k3DView) iPad = 2; 03097 fHomeX[iPad] = 0.5*(x1+x2); 03098 fHomeY[iPad] = 0.5*(y1+y2); 03099 } 03100 }
|
|
|
|
02092 { 02093 if (gBesGeometry){ 02094 gBesGeometry->GetMdcROOTGeo()->SetQMatch(input); 02095 } 02096 }
|
|
|
|
02086 { 02087 if (gBesGeometry){ 02088 gBesGeometry->GetMdcROOTGeo()->SetTMatch(input); 02089 } 02090 }
|
|
|
|
05320 { 05321 Double_t range = max - min; 05322 if (input < min) { 05323 do { 05324 input += range; 05325 } 05326 while (input < min); 05327 } 05328 05329 if (input >= max) { 05330 do { 05331 input -= range; 05332 } 05333 while (input >= max); 05334 } 05335 }
|
|
00679 { fRotateSpeed = fRotateStep * fRotateFPS; }
|
|
00679 { fRotateSpeed = fRotateStep * fRotateFPS; }
|
|
00680 { if (fRotateFPS != 0) fRotateStep = fRotateSpeed/fRotateFPS; else fRotateStep = 0.0; }
|
|
00680 { if (fRotateFPS != 0) fRotateStep = fRotateSpeed/fRotateFPS; else fRotateStep = 0.0; }
|
|
|
|
03990 { 03991 // 03992 // set geometry state and update Canvas 03993 if (id == -1) { 03994 TGButton *btn = (TGButton *) gTQSender; 03995 id = btn->WidgetId(); 03996 } 03997 03998 BesView *view = (BesView*)gPad->GetView(); 03999 if ( view ) { 04000 switch (id) { 04001 04002 case kM_Header_Global: 04003 break; 04004 04005 case kM_Mdc_Global: 04006 view->SetVisMdcGlobal(fChkBtnMdcGlobal->GetState()); 04007 //gBesGeometry->GetMdcROOTGeo()->SetDetectorOn(); 04008 //cout << "Mdc Global vis " << endl; 04009 break; 04010 04011 case kM_Mdc_Tubes: 04012 view->SetVisMdcTubes(fChkBtnMdcTubes->GetState()); 04013 //HandleViewOptionMenu(kM_Mdc_Tubes); 04014 break; 04015 04016 case kM_Mdc_Wires: 04017 view->SetVisMdcWires(fChkBtnMdcWires->GetState()); 04018 //HandleViewOptionMenu(kM_Mdc_Wires); 04019 break; 04020 04021 case kM_Tof_Global: 04022 view->SetVisTofGlobal(fChkBtnTofGlobal->GetState()); 04023 //cout << "Tof Global vis " << endl; 04024 break; 04025 04026 case kM_Tof_East: 04027 view->SetVisTofEast(fChkBtnTofEast->GetState()); 04028 break; 04029 04030 case kM_Tof_Barrel: 04031 view->SetVisTofBarrel(fChkBtnTofBarrel->GetState()); 04032 break; 04033 04034 case kM_Tof_West: 04035 view->SetVisTofWest(fChkBtnTofWest->GetState()); 04036 break; 04037 04038 case kM_Emc_Global: 04039 view->SetVisEmcGlobal(fChkBtnEmcGlobal->GetState()); 04040 //cout << "Emc Global vis " << endl; 04041 break; 04042 04043 case kM_Emc_East: 04044 view->SetVisEmcEast(fChkBtnEmcEast->GetState()); 04045 break; 04046 04047 case kM_Emc_Barrel: 04048 view->SetVisEmcBarrel(fChkBtnEmcBarrel->GetState()); 04049 break; 04050 04051 case kM_Emc_West: 04052 view->SetVisEmcWest(fChkBtnEmcWest->GetState()); 04053 break; 04054 04055 case kM_Emc_Side: 04056 view->SetVisEmcSide(fChkBtnEmcSide->GetState()); 04057 break; 04058 04059 case kM_Muc_Global: 04060 view->SetVisMucGlobal(fChkBtnMucGlobal->GetState()); 04061 //cout << "Muc Global vis " << endl; 04062 break; 04063 04064 case kM_Muc_East: 04065 view->SetVisMucEast(fChkBtnMucEast->GetState()); 04066 break; 04067 04068 case kM_Muc_Barrel: 04069 view->SetVisMucBarrel(fChkBtnMucBarrel->GetState()); 04070 break; 04071 04072 case kM_Muc_West: 04073 view->SetVisMucWest(fChkBtnMucWest->GetState()); 04074 break; 04075 04076 case kM_Muc_Strips: 04077 view->SetVisMucStrips(fChkBtnMucStrips->GetState()); 04078 break; 04079 04080 case kM_BeamPipe: 04081 view->SetVisBeamPipe(fChkBtnBeamPipe->GetState()); 04082 break; 04083 04084 case kM_ZRPlaneOnXY: 04085 view->SetVisZRPlaneOnXY(fChkBtnZRPlaneOnXY->GetState()); 04086 break; 04087 04088 case kM_Axis: 04089 view->SetVisAxis(fChkBtnAxis->GetState()); 04090 break; 04091 04092 case kM_MdcHits_Global: 04093 view->SetVisMdcHitsGlobal(fChkBtnMdcHitsGlobal->GetState()); 04094 break; 04095 04096 case kM_TofHits_Global: 04097 view->SetVisTofHitsGlobal(fChkBtnTofHitsGlobal->GetState()); 04098 break; 04099 04100 case kM_TofHits_East: 04101 view->SetVisTofHitsEast(fChkBtnTofHitsEast->GetState()); 04102 break; 04103 04104 case kM_TofHits_Barrel: 04105 view->SetVisTofHitsBarrel(fChkBtnTofHitsBarrel->GetState()); 04106 break; 04107 04108 case kM_TofHits_West: 04109 view->SetVisTofHitsWest(fChkBtnTofHitsWest->GetState()); 04110 break; 04111 04112 case kM_EmcHits_Global: 04113 view->SetVisEmcHitsGlobal(fChkBtnEmcHitsGlobal->GetState()); 04114 break; 04115 04116 case kM_EmcHits_East: 04117 view->SetVisEmcHitsEast(fChkBtnEmcHitsEast->GetState()); 04118 break; 04119 04120 case kM_EmcHits_Barrel: 04121 view->SetVisEmcHitsBarrel(fChkBtnEmcHitsBarrel->GetState()); 04122 break; 04123 04124 case kM_EmcHits_West: 04125 view->SetVisEmcHitsWest(fChkBtnEmcHitsWest->GetState()); 04126 break; 04127 04128 case kM_EmcHits_Side: 04129 view->SetVisEmcHitsSide(fChkBtnEmcHitsSide->GetState()); 04130 break; 04131 04132 case kM_MucHits_Global: 04133 view->SetVisMucHitsGlobal(fChkBtnMucHitsGlobal->GetState()); 04134 break; 04135 04136 case kM_MucHits_East: 04137 view->SetVisMucHitsEast(fChkBtnMucHitsEast->GetState()); 04138 break; 04139 04140 case kM_MucHits_Barrel: 04141 view->SetVisMucHitsBarrel(fChkBtnMucHitsBarrel->GetState()); 04142 break; 04143 04144 case kM_MucHits_West: 04145 view->SetVisMucHitsWest(fChkBtnMucHitsWest->GetState()); 04146 break; 04147 04148 case kM_Tracks_Global: 04149 view->SetVisTracksGlobal(fChkBtnTracksGlobal->GetState()); 04150 break; 04151 04152 case kM_Tracks_Mdc: 04153 view->SetVisTracksMdc(fChkBtnTracksMdc->GetState()); 04154 break; 04155 04156 case kM_Tracks_Tof: 04157 view->SetVisTracksTof(fChkBtnTracksTof->GetState()); 04158 break; 04159 04160 case kM_Tracks_Emc: 04161 view->SetVisTracksEmc(fChkBtnTracksEmc->GetState()); 04162 break; 04163 04164 case kM_Tracks_Muc: 04165 view->SetVisTracksMuc(fChkBtnTracksMuc->GetState()); 04166 break; 04167 04168 case kM_Tracks_Ext: 04169 view->SetVisTracksExt(fChkBtnTracksExt->GetState()); 04170 break; 04171 04172 case kM_Mdc_TMatch_Global: 04173 this->SetMdcTMatch(fChkBtnMdcTMatchGlobal->GetState()); 04174 break; 04175 04176 case kM_Mdc_QMatch_Global: 04177 this->SetMdcQMatch(fChkBtnMdcQMatchGlobal->GetState()); 04178 break; 04179 04180 case kM_Tof_TMatch_Global: 04181 this->SetTofTMatch(fChkBtnTofTMatchGlobal->GetState()); 04182 break; 04183 04184 case kM_Tof_QMatch_Global: 04185 this->SetTofQMatch(fChkBtnTofQMatchGlobal->GetState()); 04186 break; 04187 } 04188 04189 view->UpdateView(0); 04190 04191 ((TCanvas*)fEmbeddedCanvas->GetCanvas())->Modified(); 04192 ((TCanvas*)fEmbeddedCanvas->GetCanvas())->Update(); 04193 } 04194 04195 UpdateStatus(); 04196 }
|
|
|
|
02104 { 02105 if (gBesGeometry){ 02106 gBesGeometry->GetTofROOTGeo()->SetQMatch(input); 02107 } 02108 }
|
|
|
|
02098 { 02099 if (gBesGeometry){ 02100 gBesGeometry->GetTofROOTGeo()->SetTMatch(input); 02101 } 02102 }
|
|
|
|
02784 { 02785 // 02786 // Show display 02787 MapWindow(); 02788 MapRaised(); 02789 }
|
|
|
|
05062 { 05063 TCanvas *canvas = (TCanvas*)fEmbeddedCanvas->GetCanvas(); 05064 TPad *curPad = (TPad*)gPad;//canvas->GetSelectedPad(); 05065 05066 fDisplay->GetPadXY()->cd(); 05067 BesView *view = (BesView*)fDisplay->GetPadXY()->GetView(); 05068 if (view) { 05069 view->UpdateView(0); 05070 cout << "update xy view" << endl; 05071 } 05072 else cout << "no xy view" << endl; 05073 05074 fDisplay->GetPadZR()->cd(); 05075 view = (BesView*)fDisplay->GetPadZR()->GetView(); 05076 if (view) { 05077 view->UpdateView(0); 05078 cout << "update zr view" << endl; 05079 } 05080 else cout << "no zr view" << endl; 05081 05082 fDisplay->GetPad3D()->cd(); 05083 view = (BesView*)fDisplay->GetPad3D()->GetView(); 05084 if (view) { 05085 view->UpdateView(0); 05086 cout << "update 3d view" << endl; 05087 } 05088 else cout << "no 3d view" << endl; 05089 05090 // Header show be drawn last, as it will update all pads and makes tracks in pad drawn first 05091 fDisplay->DrawHeader(); 05092 05093 curPad->cd(); 05094 05095 UpdateBesInputFields(); 05096 05097 // Redraw canvas 05098 canvas->Modified(); 05099 canvas->Update(); 05100 }
|
|
|
|
05174 { 05175 fNumEntryRunNo->SetNumber(GetBesRunNo()); 05176 fNumEntryEventNo->SetIntNumber(GetBesEventNo()); 05177 fNumEntryEventPlaySpeed->SetNumber(Double_t(GetEventPlaySpeed()) / 1000.0); 05178 fEventPlaySlider->SetPosition(GetBesEventNo()); 05179 05180 fNumEntryRotateStep->SetNumber(GetRotateStep()); 05181 fNumEntryRotateSpeed->SetNumber(GetRotateSpeed()); 05182 fNumEntryRotateFPS->SetIntNumber(GetRotateFPS()); 05183 05184 BesView *view = (BesView*)gPad->GetView(); 05185 if (view) { 05186 fZoomRatioNumber->SetNumber(view->GetZoomRatio()*100.0); 05187 05188 Double_t theta = view->GetLatitude(); 05189 Double_t phi = view->GetLongitude(); 05190 Double_t psi = view->GetPsi(); 05191 SetRange(theta, 0.0, 180.0); 05192 SetRange(phi, 0.0, 360.0); 05193 SetRange(psi, 0.0, 360.0); 05194 fViewAngleThetaNumber->SetNumber(theta); 05195 fViewAnglePhiNumber->SetNumber(phi); 05196 fViewAnglePsiNumber->SetNumber(psi); 05197 } 05198 fViewAngleThetaSlider->SetPosition((Int_t)fViewAngleThetaNumber->GetNumber()); 05199 fViewAnglePhiSlider->SetPosition((Int_t)fViewAnglePhiNumber->GetNumber()); 05200 fViewAnglePsiSlider->SetPosition((Int_t)fViewAnglePsiNumber->GetNumber()); 05201 05202 fChkBtnAutoRotate->SetOn(fAutoRotate); 05203 }
|
|
|
|
05105 { 05106 if (gPad) { 05107 gPad->Modified(); 05108 gPad->Update(); 05109 } 05110 05111 //BesView *view = (BesView*)gPad->GetView(); 05112 05113 //TViewerX3D *x3d = 0; 05114 //x3d = (TViewerX3D*)gPad->GetViewer3D(); 05115 //if (fViewer3DMode == 1 && view && x3d) { 05116 // x3d->ExecCommand(Int_t(2*view->GetLatitude()), Int_t(2*view->GetLongitude()), 0); //rotate 05117 //} 05118 05122 //TVirtualViewer3D *ogl = 0; 05123 //ogl = (TVirtualViewer3D*)gPad->GetViewer3D("ogl"); 05124 //if (fViewer3DMode == 2 && view && ogl) { 05125 // gVirtualGL->ClearGLColor(0.0,0.0,0.0,0.0); // set GL background color 05126 // gVirtualGL->SetGLLineWidth(5); 05127 05128 // Double_t deltaTheta = view->GetLatitude() - fViewThetaPreStep; 05129 // Double_t deltaPhi = view->GetLongitude() - fViewPhiPreStep; 05130 // if (deltaTheta > 90.0) deltaTheta -= 180.0; 05131 // if (deltaTheta < -90.0) deltaTheta += 180.0; 05132 // if (deltaPhi > 180.0) deltaPhi -= 360.0; 05133 // if (deltaPhi < -180.0) deltaPhi += 360.0; 05134 05135 // // update from 4.04 to 5.14, TViewerOpenGL has been removed, 05136 // // TVirtualViewer3D has none those memthods 05137 // //UInt_t width = ogl->GetWidth(); 05138 // //UInt_t height = ogl->GetHeight(); 05139 // //UInt_t xPos = width/2, yPos = height/2; 05140 05141 // //Event_t *event1 = new Event_t; 05142 // //event1->fType = kButtonPress; 05143 // //event1->fX = xPos; //(Int_t)view->GetLatitude(); 05144 // //event1->fY = yPos; //(Int_t)view->GetLongitude(); 05145 // //event1->fCode = kButton1; 05146 // //ogl->HandleContainerButton(event1); 05147 05148 05149 // //Event_t *event2 = new Event_t; 05150 // //event2->fType = kMotionNotify; 05151 // //event2->fX = (Int_t)(xPos + deltaTheta); 05152 // //event2->fY = (Int_t)(yPos + deltaPhi); 05153 // //ogl->HandleContainerMotion(event2); 05154 05155 // //Event_t *event3 = new Event_t; 05156 // //event3->fType = kButtonRelease; 05157 // //event3->fX = (Int_t)(xPos + deltaTheta); //(view->GetLatitude() + deltaPhi); 05158 // //event3->fY = (Int_t)(yPos + deltaPhi); //(view->GetLongitude() + deltaTheta); 05159 // //event3->fCode = kButton1; 05160 // //ogl->HandleContainerButton(event3); 05161 05162 // //fViewThetaPreStep = view->GetLatitude(); 05163 // //fViewPhiPreStep = view->GetLongitude(); 05164 05165 // //delete event1; 05166 // //delete event2; 05167 // //delete event3; 05168 //} 05169 }
|
|
|
|
04200 { 04201 // 04202 // get status from active BesView instance 04203 BesView *view = (BesView*)gPad->GetView(); 04204 04205 if ( view ) { 04206 04207 // fish eye tick in zview menu 04208 view->SetFishEye(view->GetFishEyeStatus()); 04209 04210 // Mdc global 04211 fChkBtnMdcGlobal->SetOn(view->GetVisMdcGlobal()); 04212 04213 // Mdc Tubes 04214 fChkBtnMdcTubes->SetOn(view->GetVisMdcTubes()); 04215 04216 // Mdc Wires 04217 fChkBtnMdcWires->SetOn(view->GetVisMdcWires()); 04218 04219 // Tof global 04220 fChkBtnTofGlobal->SetOn(view->GetVisTofGlobal()); 04221 04222 // Tof east 04223 fChkBtnTofEast->SetOn(view->GetVisTofEast()); 04224 04225 // Tof barrel 04226 fChkBtnTofBarrel->SetOn(view->GetVisTofBarrel()); 04227 04228 // Tof west 04229 fChkBtnTofWest->SetOn(view->GetVisTofWest()); 04230 04231 // Emc global 04232 fChkBtnEmcGlobal->SetOn(view->GetVisEmcGlobal()); 04233 04234 // Emc east 04235 fChkBtnEmcEast->SetOn(view->GetVisEmcEast()); 04236 04237 // Emc barrel 04238 fChkBtnEmcBarrel->SetOn(view->GetVisEmcBarrel()); 04239 04240 // Emc west 04241 fChkBtnEmcWest->SetOn(view->GetVisEmcWest()); 04242 04243 // Emc side 04244 fChkBtnEmcSide->SetOn(view->GetVisEmcSide()); 04245 04246 // Muc global 04247 fChkBtnMucGlobal->SetOn(view->GetVisMucGlobal()); 04248 04249 // Muc east 04250 fChkBtnMucEast->SetOn(view->GetVisMucEast()); 04251 04252 // Muc barrel 04253 fChkBtnMucBarrel->SetOn(view->GetVisMucBarrel()); 04254 04255 // Muc west 04256 fChkBtnMucWest->SetOn(view->GetVisMucWest()); 04257 04258 // Muc strips 04259 fChkBtnMucStrips->SetOn(view->GetVisMucStrips()); 04260 04261 // BeamPipe 04262 fChkBtnBeamPipe->SetOn(view->GetVisBeamPipe()); 04263 04264 // ZRPlaneOnXY 04265 fChkBtnZRPlaneOnXY->SetOn(view->GetVisZRPlaneOnXY()); 04266 04267 // Axis 04268 fChkBtnAxis->SetOn(view->GetVisAxis()); 04269 04270 // Mdc Hits global 04271 fChkBtnMdcHitsGlobal->SetOn(view->GetVisMdcHitsGlobal()); 04272 04273 // Tof Hits global 04274 fChkBtnTofHitsGlobal->SetOn(view->GetVisTofHitsGlobal()); 04275 04276 // Tof Hits east 04277 fChkBtnTofHitsEast->SetOn(view->GetVisTofHitsEast()); 04278 04279 // Tof Hits barrel 04280 fChkBtnTofHitsBarrel->SetOn(view->GetVisTofHitsBarrel()); 04281 04282 // Tof Hits west 04283 fChkBtnTofHitsWest->SetOn(view->GetVisTofHitsWest()); 04284 04285 // Emc Hits global 04286 fChkBtnEmcHitsGlobal->SetOn(view->GetVisEmcHitsGlobal()); 04287 04288 // Emc Hits east 04289 fChkBtnEmcHitsEast->SetOn(view->GetVisEmcHitsEast()); 04290 04291 // Emc Hits barrel 04292 fChkBtnEmcHitsBarrel->SetOn(view->GetVisEmcHitsBarrel()); 04293 04294 // Emc Hits west 04295 fChkBtnEmcHitsWest->SetOn(view->GetVisEmcHitsWest()); 04296 04297 // Emc Hits side 04298 fChkBtnEmcHitsSide->SetOn(view->GetVisEmcHitsSide()); 04299 04300 // Muc Hits global 04301 fChkBtnMucHitsGlobal->SetOn(view->GetVisMucHitsGlobal()); 04302 04303 // Muc Hits east 04304 fChkBtnMucHitsEast->SetOn(view->GetVisMucHitsEast()); 04305 04306 // Muc Hits barrel 04307 fChkBtnMucHitsBarrel->SetOn(view->GetVisMucHitsBarrel()); 04308 04309 // Muc Hits west 04310 fChkBtnMucHitsWest->SetOn(view->GetVisMucHitsWest()); 04311 04312 04313 // Tracks global 04314 fChkBtnTracksGlobal->SetOn(view->GetVisTracksGlobal()); 04315 04316 // Tracks mdc 04317 fChkBtnTracksMdc->SetOn(view->GetVisTracksMdc()); 04318 04319 // Tracks tof 04320 fChkBtnTracksTof->SetOn(view->GetVisTracksTof()); 04321 04322 // Tracks emc 04323 fChkBtnTracksEmc->SetOn(view->GetVisTracksEmc()); 04324 04325 // Tracks muc 04326 fChkBtnTracksMuc->SetOn(view->GetVisTracksMuc()); 04327 04328 // Tracks ext 04329 fChkBtnTracksExt->SetOn(view->GetVisTracksExt()); 04330 04331 04332 // Mdc Global 04333 if ( view->GetVisMdcGlobal() ) 04334 fMenuViewOptionMdc->CheckEntry(kM_Mdc_Global); 04335 else 04336 fMenuViewOptionMdc->UnCheckEntry(kM_Mdc_Global); 04337 04338 // Mdc Tubes 04339 if ( view->GetVisMdcTubes() ) 04340 fMenuViewOptionMdc->CheckEntry(kM_Mdc_Tubes); 04341 else 04342 fMenuViewOptionMdc->UnCheckEntry(kM_Mdc_Tubes); 04343 04344 // Mdc Wires 04345 if ( view->GetVisMdcWires() ) 04346 fMenuViewOptionMdc->CheckEntry(kM_Mdc_Wires); 04347 else 04348 fMenuViewOptionMdc->UnCheckEntry(kM_Mdc_Wires); 04349 04350 // Tof Global 04351 if ( view->GetVisTofGlobal() ) 04352 fMenuViewOptionTof->CheckEntry(kM_Tof_Global); 04353 else 04354 fMenuViewOptionTof->UnCheckEntry(kM_Tof_Global); 04355 04356 // Tof East 04357 if ( view->GetVisTofEast() ) 04358 fMenuViewOptionTof->CheckEntry(kM_Tof_East); 04359 else 04360 fMenuViewOptionTof->UnCheckEntry(kM_Tof_East); 04361 04362 // Tof Barrel 04363 if ( view->GetVisTofBarrel() ) 04364 fMenuViewOptionTof->CheckEntry(kM_Tof_Barrel); 04365 else 04366 fMenuViewOptionTof->UnCheckEntry(kM_Tof_Barrel); 04367 04368 // Tof West 04369 if ( view->GetVisTofWest() ) 04370 fMenuViewOptionTof->CheckEntry(kM_Tof_West); 04371 else 04372 fMenuViewOptionTof->UnCheckEntry(kM_Tof_West); 04373 04374 // Emc Global 04375 if ( view->GetVisEmcGlobal() ) 04376 fMenuViewOptionEmc->CheckEntry(kM_Emc_Global); 04377 else 04378 fMenuViewOptionEmc->UnCheckEntry(kM_Emc_Global); 04379 04380 // Emc East 04381 if ( view->GetVisEmcEast() ) 04382 fMenuViewOptionEmc->CheckEntry(kM_Emc_East); 04383 else 04384 fMenuViewOptionEmc->UnCheckEntry(kM_Emc_East); 04385 04386 // Emc Barrel 04387 if ( view->GetVisEmcBarrel() ) 04388 fMenuViewOptionEmc->CheckEntry(kM_Emc_Barrel); 04389 else 04390 fMenuViewOptionEmc->UnCheckEntry(kM_Emc_Barrel); 04391 04392 // Emc West 04393 if ( view->GetVisEmcWest() ) 04394 fMenuViewOptionEmc->CheckEntry(kM_Emc_West); 04395 else 04396 fMenuViewOptionEmc->UnCheckEntry(kM_Emc_West); 04397 04398 // Emc Side 04399 if ( view->GetVisEmcSide() ) 04400 fMenuViewOptionEmc->CheckEntry(kM_Emc_Side); 04401 else 04402 fMenuViewOptionEmc->UnCheckEntry(kM_Emc_Side); 04403 04404 // Muc Global 04405 if ( view->GetVisMucGlobal() ) 04406 fMenuViewOptionMuc->CheckEntry(kM_Muc_Global); 04407 else 04408 fMenuViewOptionMuc->UnCheckEntry(kM_Muc_Global); 04409 04410 // Muc East 04411 if ( view->GetVisMucEast() ) 04412 fMenuViewOptionMuc->CheckEntry(kM_Muc_East); 04413 else 04414 fMenuViewOptionMuc->UnCheckEntry(kM_Muc_East); 04415 04416 // Muc Barrel 04417 if ( view->GetVisMucBarrel() ) 04418 fMenuViewOptionMuc->CheckEntry(kM_Muc_Barrel); 04419 else 04420 fMenuViewOptionMuc->UnCheckEntry(kM_Muc_Barrel); 04421 04422 // Muc West 04423 if ( view->GetVisMucWest() ) 04424 fMenuViewOptionMuc->CheckEntry(kM_Muc_West); 04425 else 04426 fMenuViewOptionMuc->UnCheckEntry(kM_Muc_West); 04427 04428 // Muc Strips 04429 if ( view->GetVisMucStrips() ) 04430 fMenuViewOptionMuc->CheckEntry(kM_Muc_Strips); 04431 else 04432 fMenuViewOptionMuc->UnCheckEntry(kM_Muc_Strips); 04433 04434 // Full3D Mdc 04435 if ( view->GetVisFull3DMdc() ) 04436 fMenuViewOptionFull3D->CheckEntry(kM_Full3D_Mdc); 04437 else 04438 fMenuViewOptionFull3D->UnCheckEntry(kM_Full3D_Mdc); 04439 04440 // Full3D Tof 04441 if ( view->GetVisFull3DTof() ) 04442 fMenuViewOptionFull3D->CheckEntry(kM_Full3D_Tof); 04443 else 04444 fMenuViewOptionFull3D->UnCheckEntry(kM_Full3D_Tof); 04445 04446 // Full3D Emc 04447 if ( view->GetVisFull3DEmc() ) 04448 fMenuViewOptionFull3D->CheckEntry(kM_Full3D_Emc); 04449 else 04450 fMenuViewOptionFull3D->UnCheckEntry(kM_Full3D_Emc); 04451 04452 // Full3D Muc 04453 if ( view->GetVisFull3DMuc() ) 04454 fMenuViewOptionFull3D->CheckEntry(kM_Full3D_Muc); 04455 else 04456 fMenuViewOptionFull3D->UnCheckEntry(kM_Full3D_Muc); 04457 04458 // BeamPipe 04459 if ( view->GetVisBeamPipe() ) 04460 fMenuViewOptionOthers->CheckEntry(kM_BeamPipe); 04461 else 04462 fMenuViewOptionOthers->UnCheckEntry(kM_BeamPipe); 04463 04464 // ZRPlaneOnXY 04465 if ( view->GetVisZRPlaneOnXY() ) 04466 fMenuViewOptionOthers->CheckEntry(kM_ZRPlaneOnXY); 04467 else 04468 fMenuViewOptionOthers->UnCheckEntry(kM_ZRPlaneOnXY); 04469 04470 // Axis 04471 if ( view->GetVisAxis() ) { 04472 fMenuViewOptionOthers->CheckEntry(kM_Axis); 04473 fShowAxisButton->SetPicture(gClient->GetPicture("ButtonShowAxisST.gif")); 04474 fShowAxisButton->SetState(true); 04475 } 04476 else { 04477 fMenuViewOptionOthers->UnCheckEntry(kM_Axis); 04478 fShowAxisButton->SetPicture(gClient->GetPicture("ButtonShowAxis.gif")); 04479 fShowAxisButton->SetState(false); 04480 } 04481 04482 // Mdc Hits 04483 if ( view->GetVisMdcHits() ) 04484 fMenuViewOptionMdcHits->CheckEntry(kM_MdcHits_Hits); 04485 else 04486 fMenuViewOptionMdcHits->UnCheckEntry(kM_MdcHits_Hits); 04487 04488 // Tof hits Global 04489 if ( view->GetVisTofHitsGlobal() ) 04490 fMenuViewOptionTofHits->CheckEntry(kM_TofHits_Global); 04491 else 04492 fMenuViewOptionTofHits->UnCheckEntry(kM_TofHits_Global); 04493 04494 // Tof hits East 04495 if ( view->GetVisTofHitsEast() ) 04496 fMenuViewOptionTofHits->CheckEntry(kM_TofHits_East); 04497 else 04498 fMenuViewOptionTofHits->UnCheckEntry(kM_TofHits_East); 04499 04500 // Tof hits Barrel 04501 if ( view->GetVisTofHitsBarrel() ) 04502 fMenuViewOptionTofHits->CheckEntry(kM_TofHits_Barrel); 04503 else 04504 fMenuViewOptionTofHits->UnCheckEntry(kM_TofHits_Barrel); 04505 04506 // Tof hits West 04507 if ( view->GetVisTofHitsWest() ) 04508 fMenuViewOptionTofHits->CheckEntry(kM_TofHits_West); 04509 else 04510 fMenuViewOptionTofHits->UnCheckEntry(kM_TofHits_West); 04511 04512 // Emc hits Global 04513 if ( view->GetVisEmcHitsGlobal() ) 04514 fMenuViewOptionEmcHits->CheckEntry(kM_EmcHits_Global); 04515 else 04516 fMenuViewOptionEmcHits->UnCheckEntry(kM_EmcHits_Global); 04517 04518 // Emc hits East 04519 if ( view->GetVisEmcHitsEast() ) 04520 fMenuViewOptionEmcHits->CheckEntry(kM_EmcHits_East); 04521 else 04522 fMenuViewOptionEmcHits->UnCheckEntry(kM_EmcHits_East); 04523 04524 // Emc hits Barrel 04525 if ( view->GetVisEmcHitsBarrel() ) 04526 fMenuViewOptionEmcHits->CheckEntry(kM_EmcHits_Barrel); 04527 else 04528 fMenuViewOptionEmcHits->UnCheckEntry(kM_EmcHits_Barrel); 04529 04530 // Emc hits West 04531 if ( view->GetVisEmcHitsWest() ) 04532 fMenuViewOptionEmcHits->CheckEntry(kM_EmcHits_West); 04533 else 04534 fMenuViewOptionEmcHits->UnCheckEntry(kM_EmcHits_West); 04535 04536 // Emc hits Side 04537 if ( view->GetVisEmcHitsSide() ) 04538 fMenuViewOptionEmcHits->CheckEntry(kM_EmcHits_Side); 04539 else 04540 fMenuViewOptionEmcHits->UnCheckEntry(kM_EmcHits_Side); 04541 04542 // Muc hits Global 04543 if ( view->GetVisMucHitsGlobal() ) 04544 fMenuViewOptionMucHits->CheckEntry(kM_MucHits_Global); 04545 else 04546 fMenuViewOptionMucHits->UnCheckEntry(kM_MucHits_Global); 04547 04548 // Muc hits East 04549 if ( view->GetVisMucHitsEast() ) 04550 fMenuViewOptionMucHits->CheckEntry(kM_MucHits_East); 04551 else 04552 fMenuViewOptionMucHits->UnCheckEntry(kM_MucHits_East); 04553 04554 // Muc hits Barrel 04555 if ( view->GetVisMucHitsBarrel() ) 04556 fMenuViewOptionMucHits->CheckEntry(kM_MucHits_Barrel); 04557 else 04558 fMenuViewOptionMucHits->UnCheckEntry(kM_MucHits_Barrel); 04559 04560 // Muc hits West 04561 if ( view->GetVisMucHitsWest() ) 04562 fMenuViewOptionMucHits->CheckEntry(kM_MucHits_West); 04563 else 04564 fMenuViewOptionMucHits->UnCheckEntry(kM_MucHits_West); 04565 04566 // Tracks Global 04567 if ( view->GetVisTracksGlobal() ) 04568 fMenuViewOptionTracks->CheckEntry(kM_Tracks_Global); 04569 else 04570 fMenuViewOptionTracks->UnCheckEntry(kM_Tracks_Global); 04571 04572 // Tracks Mdc 04573 if ( view->GetVisTracksMdc() ) 04574 fMenuViewOptionTracks->CheckEntry(kM_Tracks_Mdc); 04575 else 04576 fMenuViewOptionTracks->UnCheckEntry(kM_Tracks_Mdc); 04577 04578 // Tracks Tof 04579 if ( view->GetVisTracksTof() ) 04580 fMenuViewOptionTracks->CheckEntry(kM_Tracks_Tof); 04581 else 04582 fMenuViewOptionTracks->UnCheckEntry(kM_Tracks_Tof); 04583 04584 // Tracks Emc 04585 if ( view->GetVisTracksEmc() ) 04586 fMenuViewOptionTracks->CheckEntry(kM_Tracks_Emc); 04587 else 04588 fMenuViewOptionTracks->UnCheckEntry(kM_Tracks_Emc); 04589 04590 // Tracks Muc 04591 if ( view->GetVisTracksMuc() ) 04592 fMenuViewOptionTracks->CheckEntry(kM_Tracks_Muc); 04593 else 04594 fMenuViewOptionTracks->UnCheckEntry(kM_Tracks_Muc); 04595 04596 // Tracks Ext 04597 if ( view->GetVisTracksExt() ) 04598 fMenuViewOptionTracks->CheckEntry(kM_Tracks_Ext); 04599 else 04600 fMenuViewOptionTracks->UnCheckEntry(kM_Tracks_Ext); 04601 04602 // Fish Eye View 04603 if ( view->GetFishEye() ) { 04604 fFishEyeViewButton->SetPicture(gClient->GetPicture("ButtonFishEyeViewST.gif")); 04605 } 04606 else { 04607 fFishEyeViewButton->SetPicture(gClient->GetPicture("ButtonFishEyeView.gif")); 04608 } 04609 04610 // Parallel or Perspective View 04611 if ( view->IsPerspective() ) { 04612 fParallelViewButton->SetPicture(gClient->GetPicture("ButtonParallelView.gif")); 04613 fPerspectiveViewButton->SetPicture(gClient->GetPicture("ButtonPerspectiveViewST.gif")); 04614 } 04615 else { 04616 fParallelViewButton->SetPicture(gClient->GetPicture("ButtonParallelViewST.gif")); 04617 fPerspectiveViewButton->SetPicture(gClient->GetPicture("ButtonPerspectiveView.gif")); 04618 } 04619 } 04620 UpdateBesInputFields(); 04621 }
|
|
|
|
03238 { 03239 03240 /* 03241 painter = gGeoManager->GetGeomPainter(); 03242 //if (!painter) return; 03243 painter->SetRaytracing(true); 03244 //if (!gPad) return; 03245 gPad->Modified(); 03246 gPad->Update(); 03247 */ 03248 03249 BesView *view = (BesView*)gPad->GetView(); 03250 if (!view) return; 03251 03252 if (view && view->GetViewType() & k3DView) { 03253 //gPad->x3d(); 03254 gPad->GetViewer3D(); 03255 // use TPad::Getviewer3D() instead of depreciated function x3d() 03256 // changed by tianhl at Mon Aug 20 2007 03257 fViewer3DMode = 1; 03258 03259 TViewerX3D *x3d = 0; 03260 x3d = (TViewerX3D*)gPad->GetViewer3D(); 03261 //x3d = (TViewerX3D*)TViewerX3D::Viewer3D("x3d"); 03262 if (!x3d) cout << " x3d does not exist "<< endl; 03263 else 03264 x3d->ExecCommand(0,0,'r'); 03265 //x3d->ExecCommand(0,0,'w'); 03266 } 03267 else { 03268 string s("Could not start X3D for 2D view, swith to 3D view first"); 03269 this->HandleError(s.c_str()); 03270 } 03271 }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|