Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions include/DataManager.hh
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ public:
bool NextEvent();
/// Move to the previous event.
bool PrevEvent();
/// Jump directly to a specific event number.
bool GoToEvent(int evtNum);
/// Load selected event.
bool LoadEvent();

Expand Down
4 changes: 4 additions & 0 deletions include/GUIDisplay.hh
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,9 @@ public:
void OnNextEvent();
void OnPrevEvent();

/// Called when "Go To" button fires
void OnGoToEvent();

/// Called when "Save" button fires
void OnSave();

Expand All @@ -43,6 +46,7 @@ private:
DataManager dataMgr_;
MultiView *mv_;
TGLabel* summaryView_;
TGTextEntry* goToEntry_;
TGTextEntry* filenameEntry_;

int imageScale_ = 0; // for saving
Expand Down
Binary file modified numu_display.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
15 changes: 14 additions & 1 deletion src/DataManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -87,12 +87,25 @@ bool DataManager::PrevEvent()
std::cout << "[DataManager] Already at first event." << std::endl;
return false;
}

--currentIndex_;
currentEvent_ = eventList_.at(currentIndex_);
return true;
}

bool DataManager::GoToEvent(int evtNum)
{
if(!rootFile_) return false;
auto it = std::find(eventList_.begin(), eventList_.end(), evtNum);
if (it == eventList_.end()) {
std::cerr << "[DataManager] Event " << evtNum << " not found." << std::endl;
return false;
}
currentIndex_ = std::distance(eventList_.begin(), it);
currentEvent_ = evtNum;
return true;
}

bool DataManager::LoadEvent()
{
if(!rootFile_){
Expand Down
23 changes: 23 additions & 0 deletions src/GUIDisplay.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,17 @@ void GUIDisplay::OnPrevEvent()
}
}

void GUIDisplay::OnGoToEvent()
{
TString txt = goToEntry_->GetText();
if (txt.IsNull()) return;
int evtNum = txt.Atoi();
if (dataMgr_.GoToEvent(evtNum)) {
LoadEvent();
UpdateSummary();
}
}

void GUIDisplay::OnSave()
{
std::string filename = filenameEntry_->GetText();
Expand Down Expand Up @@ -154,6 +165,18 @@ void GUIDisplay::MakeControlTab()

frm->AddFrame(hf, new TGLayoutHints(kLHintsTop | kLHintsCenterX));

// go-to event row
TGHorizontalFrame* gotoFrame = new TGHorizontalFrame(frm);
TGLabel* gotoLabel = new TGLabel(gotoFrame, "Go to event:");
gotoFrame->AddFrame(gotoLabel, new TGLayoutHints(kLHintsCenterY, 5, 2, 2, 2));
goToEntry_ = new TGTextEntry(gotoFrame, "");
goToEntry_->SetWidth(60);
gotoFrame->AddFrame(goToEntry_, new TGLayoutHints(kLHintsCenterY, 2, 2, 2, 2));
TGTextButton* gotoBtn = new TGTextButton(gotoFrame, "Go");
gotoFrame->AddFrame(gotoBtn, new TGLayoutHints(kLHintsCenterY, 2, 5, 2, 2));
gotoBtn->Connect("Clicked()", "GUIDisplay", this, "OnGoToEvent()");
frm->AddFrame(gotoFrame, new TGLayoutHints(kLHintsTop | kLHintsCenterX));

// event summary
summaryView_ = new TGLabel(frm, "");
frm->AddFrame(summaryView_, new TGLayoutHints(kLHintsExpandX | kLHintsTop, 5, 5, 10, 5));
Expand Down