#include <TridPageDisplay.h>
Inheritance diagram for TridPageDisplay:
Public Member Functions | |
TridPageDisplay (TGWindow &parent, Mint *mint) | |
virtual | ~TridPageDisplay () |
virtual TObject * | MySpawnSinglePage (const char *name, int width=640, int height=480) |
virtual void | RemovePage (PageABC *page) |
virtual void | BuildGUI (const PageDisplayConfig &cfg) |
virtual void | SetupMenus () |
virtual void | SetupButtons () |
virtual void | SetAutoRun (Bool_t on=true) |
virtual void | SetAutoTime (Float_t seconds=10.0) |
void | AutoTimeEntryHandler () |
void | JumpEntryHandler () |
void | RunSnarlEntryHandler () |
Public Attributes | |
SigC::Signal0< void > | fNextSignal |
SigC::Signal0< void > | fNextPassSignal |
SigC::Signal0< void > | fPrevSignal |
Private Member Functions | |
ClassDef (TridPageDisplay, 0) | |
Private Attributes | |
Float_t | fAutoAdvanceTime |
GuiTextEntry * | fAutoTimeEntry |
GuiTextEntry * | fRunEntry |
GuiTextEntry * | fSnarlEntry |
GuiTextEntry * | fJumpEntry |
GuiTextButton * | fAutoButton |
|
Definition at line 81 of file TridPageDisplay.cxx. References MSG.
00081 : 00082 PageDisplay(parent,mint), 00083 fAutoAdvanceTime(20) 00084 { 00085 MSG("TriD",Msg::kDebug) << "Running TridPageDisplay::Constructor()\n"; 00086 } |
|
Definition at line 88 of file TridPageDisplay.cxx.
00089 { 00090 } |
|
Definition at line 266 of file TridPageDisplay.cxx. References fAutoTimeEntry, and SetAutoTime(). Referenced by BuildGUI().
00267 { 00268 const char* txt = fAutoTimeEntry->GetText(); 00269 if(txt!="") { 00270 SetAutoTime(atof(txt)); 00271 } 00272 } |
|
Reimplemented from PageDisplay. Definition at line 92 of file TridPageDisplay.cxx. References GuiTextEntry::activated, GuiCompositeFrameBase::Add(), AutoTimeEntryHandler(), fAutoAdvanceTime, fAutoTimeEntry, fJumpEntry, Form(), fRunEntry, fSnarlEntry, GuiBox::GuiBox(), JumpEntryHandler(), MSG, RunSnarlEntryHandler(), GuiTab::selected, GuiBase::SetLayoutHints(), SetupButtons(), and SetupMenus().
00093 { 00094 MSG("TriD",Msg::kDebug) << "Running TridPageDisplay::BuildGUI()\n"; 00095 // MENU 00096 this->SetupMenus(); 00097 00098 // Boxes: 00099 GuiBox* vbox = manage(new GuiBox(*this,kVerticalFrame)); 00100 this->Add(*vbox); 00101 00102 // RSE 00103 GuiHBox* hbox = manage(new GuiHBox(*vbox)); 00104 vbox->Add(*hbox); 00105 GuiLabel* lab; 00106 00107 lab = manage(new GuiLabel(*hbox,"Advance Time:")); 00108 hbox->Add(*lab); 00109 fAutoTimeEntry = manage(new GuiTextEntry(*hbox,Form("%f.0",fAutoAdvanceTime))); 00110 hbox->Add(*fAutoTimeEntry); 00111 fAutoTimeEntry->activated.connect 00112 (slot(*this,&TridPageDisplay::AutoTimeEntryHandler)); 00113 00114 lab = manage(new GuiLabel(*hbox,"Jump snarls:")); 00115 hbox->Add(*lab); 00116 fJumpEntry = manage(new GuiTextEntry(*hbox,"")); 00117 hbox->Add(*fJumpEntry); 00118 fJumpEntry->activated.connect 00119 (slot(*this,&TridPageDisplay::JumpEntryHandler)); 00120 00121 lab = manage(new GuiLabel(*hbox,"Run:")); 00122 hbox->Add(*lab); 00123 fRunEntry = manage(new GuiTextEntry(*hbox,"")); 00124 hbox->Add(*fRunEntry); 00125 fRunEntry->activated.connect 00126 (slot(*this,&TridPageDisplay::RunSnarlEntryHandler)); 00127 00128 lab = manage(new GuiLabel(*hbox,"Snarl:")); 00129 hbox->Add(*lab); 00130 fSnarlEntry = manage(new GuiTextEntry(*hbox,"")); 00131 hbox->Add(*fSnarlEntry); 00132 fSnarlEntry->activated.connect 00133 (slot(*this,&TridPageDisplay::RunSnarlEntryHandler)); 00134 00135 00136 00137 // Button box 00138 fBBox = manage(new GuiBox(*vbox,kHorizontalFrame)); 00139 fBBox->SetLayoutHints(kLHintsExpandX); 00140 vbox->Add(*fBBox); 00141 this->SetupButtons(); 00142 00143 // Tabs 00144 fTabs = manage(new GuiTab(*vbox)); 00145 vbox->Add(*fTabs); 00146 fTabs->selected.connect(slot(*this,&PageDisplay::UpdateTab)); 00147 00148 // Sliders 00149 //this->SetupSliders(); 00150 00151 // status bar 00152 fStatusBar = manage(new GuiStatusBar(*this)); 00153 this->Add(*fStatusBar); 00154 00155 } |
|
|
|
Definition at line 274 of file TridPageDisplay.cxx. References fJumpEntry, Mint::GetJint(), Jint::Next(), and Jint::Prev(). Referenced by BuildGUI().
00275 { 00276 const char* txt = fJumpEntry->GetText(); 00277 if(txt!="") { 00278 int jumpi = atoi(fJumpEntry->GetText()); 00279 if(jumpi >0) fMint->GetJint().Next(jumpi); 00280 else if(jumpi<0) fMint->GetJint().Prev(-jumpi); 00281 } 00282 } |
|
Definition at line 304 of file TridPageDisplay.cxx. References PageProxyBase::Create(), Form(), NamedFactory::GetProxy(), GuiBox::GuiBox(), PageABC::Init(), NamedFactory::Instance(), MSG, RemovePage(), root(), and PageABC::Update().
00305 { 00306 MSG("TriD",Msg::kDebug) << "TridPageDisplay::SpawnSinglePage\n"; 00307 PageProxyBase* ppb = dynamic_cast<PageProxyBase*> 00308 (NamedFactory::Instance("Page").GetProxy(name)); 00309 if (!ppb) { 00310 MSG("TriD",Msg::kWarning) << "Can't get page named: \"" << name << "\"\n"; 00311 return 0; 00312 } 00313 PageABC* page = ppb->Create(); 00314 fSinglePageList.push_back(page); 00315 00316 MSG("TriD",Msg::kDebug) << "Adding page @ " << page << endl; 00317 // Load the geometry info, if any. 00318 Int_t x,y; 00319 UInt_t w = width; 00320 UInt_t h = height; 00321 TEnv env(".tridrc"); 00322 TString newname(name); 00323 newname.ReplaceAll(" ","_"); 00324 const char* value = env.GetValue(Form("Trid.WindowGeom.%s",newname.Data()), 00325 ""); 00326 MSG("TriD",Msg::kDebug) << "Looking for " << newname << " got " << value << endl; 00327 if(strlen(value)>0) { 00328 sscanf(value,"%ux%u+%d+%d",&w,&h,&x,&y); 00329 } 00330 00331 MSG("TriD",Msg::kDebug) << "Making gui window with dimensions " << w << " " << h << endl; 00332 GuiMainWindow* gmw = new GuiMainWindow(w,h); 00333 gmw->SetWindowName(name); 00334 GuiBox* box = manage(new GuiBox(*gmw, kVerticalFrame)); 00335 gmw->Add(*box); 00336 00337 00338 gmw->ShowAll(); 00339 00340 // Locate the outermost part of the window. 00341 Window_t wind = (Window_t)((gmw->GetId())); 00342 Window_t root = (Window_t)gClient->GetRoot()->GetId(); 00343 Window_t frame = wind; 00344 Window_t parent = wind; 00345 while( (parent != root) && (parent) ) { 00346 frame = parent; 00347 parent = gVirtualX->GetParent(parent); 00348 } 00349 WindowAttributes_t attr; 00350 gVirtualX->GetWindowAttributes(frame,attr); 00351 x = attr.fX; 00352 y = attr.fY; 00353 w = attr.fWidth; 00354 h = attr.fHeight; 00355 00356 if(strlen(value)>0) { 00357 sscanf(value,"%ux%u+%d+%d",&w,&h,&x,&y); 00358 MSG("TriD",Msg::kDebug) << "----> Got Value " << value << endl; 00359 gVirtualX->MoveResizeWindow(frame,x,y,w,h); 00360 } 00361 00362 MSG("TriD",Msg::kDebug) << "Restoring geometry " << Form("Trid.WindowGeom.%s",newname.Data()) 00363 << endl; 00364 00365 TObject* obj = page->Init(fMint,this,*box); 00366 //gmw->ShowAll(); 00367 00368 gmw->close_window.connect(bind(slot_class(*this,&TridPageDisplay::RemovePage),page)); 00369 gmw->ConnectClose(true); 00370 00371 page->Update(); 00372 00373 return obj; 00374 } |
|
Definition at line 376 of file TridPageDisplay.cxx. References MSG. Referenced by MySpawnSinglePage().
00377 { 00378 MSG("TriD",Msg::kDebug) << "TridPageDisplay::RemovePage() called " << page << "\n"; 00379 if(!page) return; 00380 00381 for( PageList_t::iterator it = fPageList.begin(); it != fPageList.end(); it++) { 00382 if(*it == page) { 00383 MSG("TriD",Msg::kDebug) << "Deleteing page.\n"; 00384 fPageList.erase(it,it+1); 00385 delete page; 00386 return; 00387 } 00388 } 00389 for( PageList_t::iterator it = fSinglePageList.begin(); it != fSinglePageList.end(); it++) { 00390 if(*it == page) { 00391 MSG("TriD",Msg::kDebug) << "Deleteing page.\n"; 00392 fSinglePageList.erase(it,it+1); 00393 delete page; 00394 return; 00395 } 00396 } 00397 00398 } |
|
Definition at line 284 of file TridPageDisplay.cxx. References fRunEntry, fSnarlEntry, Mint::GetJint(), Jint::GoTo(), and run(). Referenced by BuildGUI().
00285 { 00286 if (!fMint) return; 00287 00288 string run = fRunEntry->GetText(); 00289 string snarl = fSnarlEntry->GetText(); 00290 00291 if (run == "" || snarl == "" || run == " " || snarl == " ") { 00292 cerr << "Both run and snarl must be set to jump to record\n"; 00293 return; 00294 } 00295 00296 int runi = atoi(run.c_str()); 00297 int snarli = atoi(snarl.c_str()); 00298 00299 fMint->GetJint().GoTo(runi,snarli); 00300 } |
|
Definition at line 243 of file TridPageDisplay.cxx. References fAutoAdvanceTime, fAutoButton, AutoEventTimer::fAutoNextDelay, and gAutoTimer(). Referenced by toggle_free_run().
00244 { 00245 if(on) { 00246 00247 fAutoButton->SetText("Stop Auto"); 00248 gAutoTimer.fAutoNextDelay = fAutoAdvanceTime; 00249 gAutoTimer.Start((Long_t)(gAutoTimer.fAutoNextDelay*1000.),true); 00250 gAutoTimer.TurnOn(); 00251 } else { 00252 fAutoButton->SetText("Start Auto"); 00253 gAutoTimer.TurnOff(); 00254 } 00255 } |
|
Definition at line 258 of file TridPageDisplay.cxx. References fAutoAdvanceTime, AutoEventTimer::fAutoNextDelay, fAutoTimeEntry, Form(), and gAutoTimer(). Referenced by AutoTimeEntryHandler().
00259 { 00260 fAutoAdvanceTime = t; 00261 fAutoTimeEntry->SetText(Form("%.1f",t)); 00262 gAutoTimer.fAutoNextDelay = t; 00263 } |
|
Reimplemented from PageDisplay. Definition at line 212 of file TridPageDisplay.cxx. References PageDisplay::AddButton(), GuiButtonBase::clicked, fAutoButton, fNextSignal, fPrevSignal, and toggle_free_run(). Referenced by BuildGUI().
00213 { 00214 GuiTextButton* but; 00215 00216 but = this->AddButton("Start Auto"); 00217 but->clicked.connect(bind(slot(toggle_free_run),this,but)); 00218 fAutoButton = but; 00219 00220 // but = this->AddButton("Next Pass ->"); 00221 //but->clicked.connect(fNextPassSignal); 00222 00223 but = this->AddButton("Next -->"); 00224 but->clicked.connect(fNextSignal); 00225 00226 but = this->AddButton("<-- Prev"); 00227 but->clicked.connect(fPrevSignal); 00228 00229 but = this->AddButton("Zoom Auto"); 00230 but->clicked.connect(slot(*this,&PageDisplay::AutoZoom)); 00231 00232 but = this->AddButton("Zoom Full"); 00233 but->clicked.connect(slot(*this,&PageDisplay::FullZoom)); 00234 00235 //but = this->AddButton("Zoom Undo"); 00236 //but->clicked.connect(slot(*this,&PageDisplay::Unzoom)); 00237 00238 //but = this->AddButton("Zoom Redo"); 00239 //but->clicked.connect(slot(*this,&PageDisplay::Rezoom)); 00240 00241 } |
|
Reimplemented from PageDisplay. Definition at line 171 of file TridPageDisplay.cxx. References GuiMenu::Add(), GuiCompositeFrameBase::Add(), GuiMenuBar::AddMenu(), die_die_die(), PageProxyBase::GetRegisteredNames(), MSG, and my_add_to_window_menu(). Referenced by BuildGUI().
00172 { 00173 MSG("TriD",Msg::kDebug) << "Running TridPageDisplay::SetupMenus()\n"; 00174 fMenuBar = manage(new GuiMenuBar(*this)); 00175 this->Add(*fMenuBar); 00176 00177 GuiMenu* file_menu = manage(new GuiMenu); 00178 fMenuBar->AddMenu(*file_menu,"File"); 00179 file_menu->Add("Open...",slot(*this,&PageDisplay::OpenFile)); 00180 file_menu->Add("Load Lib...",slot(*this,&PageDisplay::LoadLib)); 00181 file_menu->Add("Print...",bind(slot(*this,&PageDisplay::Print),"")); 00182 file_menu->Add("Close",close_window.slot()); 00183 file_menu->Add("Quit",slot(die_die_die)); 00184 00185 GuiMenu* pages_menu = manage(new GuiMenu); 00186 fMenuBar->AddMenu(*pages_menu,"Windows"); 00187 00188 vector<const char*> page_names = PageProxyBase::GetRegisteredNames(); 00189 for (unsigned int ind = 0; ind < page_names.size(); ++ind) { 00190 my_add_to_window_menu(page_names[ind],pages_menu,this); 00191 } 00192 PageProxyBase::page_added.connect(bind(bind(slot(my_add_to_window_menu),this),pages_menu)); 00193 pages_menu->Add(0); 00194 00195 GuiMenu* view_menu = manage(new GuiMenu); 00196 fMenuBar->AddMenu(*view_menu,"Views"); 00197 view_menu->Add("3D Geometry",slot(*this,&PageDisplay::DrawGeometry)); 00198 view_menu->Add("Digit text",slot(*this,&PageDisplay::MakeDigitText)); 00199 view_menu->Add("Time hist",slot(*this,&PageDisplay::MakeTimeHist)); 00200 view_menu->Add("Pmt Pixels",slot(*this,&PageDisplay::MakePmtPixels)); 00201 view_menu->Add("MC text",slot(*this,&PageDisplay::MakeMCText)); 00202 view_menu->Add("MC tree",slot(*this,&PageDisplay::MakeMCTree)); 00203 00204 GuiMenu* zoom_menu = manage(new GuiMenu); 00205 fMenuBar->AddMenu(*zoom_menu,"Zoom"); 00206 zoom_menu->Add("Undo",slot(*this,&PageDisplay::Unzoom)); 00207 zoom_menu->Add("Redo",slot(*this,&PageDisplay::Rezoom)); 00208 zoom_menu->Add("Auto",slot(*this,&PageDisplay::AutoZoom)); 00209 zoom_menu->Add("Full",slot(*this,&PageDisplay::FullZoom)); 00210 } |
|
Definition at line 31 of file TridPageDisplay.h. Referenced by BuildGUI(), SetAutoRun(), and SetAutoTime(). |
|
Definition at line 34 of file TridPageDisplay.h. Referenced by SetAutoRun(), and SetupButtons(). |
|
Definition at line 32 of file TridPageDisplay.h. Referenced by AutoTimeEntryHandler(), BuildGUI(), and SetAutoTime(). |
|
Definition at line 33 of file TridPageDisplay.h. Referenced by BuildGUI(), and JumpEntryHandler(). |
|
Definition at line 16 of file TridPageDisplay.h. |
|
Definition at line 15 of file TridPageDisplay.h. Referenced by SetupButtons(). |
|
Definition at line 17 of file TridPageDisplay.h. Referenced by SetupButtons(). |
|
Definition at line 33 of file TridPageDisplay.h. Referenced by BuildGUI(), and RunSnarlEntryHandler(). |
|
Definition at line 33 of file TridPageDisplay.h. Referenced by BuildGUI(), and RunSnarlEntryHandler(). |