Belle II Software  release-05-02-19
BrowsableWrapper.cc
1 #include <display/BrowsableWrapper.h>
2 
3 #include <framework/logging/Logger.h>
4 
5 #include <TVirtualPad.h>
6 
7 using namespace Belle2;
8 
9 std::map<TVirtualPad*, std::string> BrowsableWrapper::s_pads;
10 
11 void BrowsableWrapper::Browse(TBrowser* b)
12 {
13  if (!m_wrapped) {
14  B2ERROR("Trying to browse invalid object!");
15  return;
16  }
17  std::string name(m_wrapped->GetName());
18  s_pads[gPad] = name;
19  gPad->Connect("Closed()", "Belle2::BrowsableWrapper", this, "padClosed()");
20 
21  m_wrapped->Browse(b);
22 }
23 
25 {
26  TVirtualPad* pad = dynamic_cast<TVirtualPad*>(static_cast<TQObject*>(gTQSender));
27  if (!pad) {
28  B2ERROR("Sender is not a pad?");
29  return;
30  }
31 
32  B2WARNING("TODO remove - deleting pad");
33  s_pads.erase(pad);
34 }
Belle2::BrowsableWrapper::s_pads
static std::map< TVirtualPad *, std::string > s_pads
TPad -> name of drawn object.
Definition: BrowsableWrapper.h:47
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::BrowsableWrapper::padClosed
void padClosed()
Slot to remove associated pad from central map.
Definition: BrowsableWrapper.cc:24
Belle2::BrowsableWrapper::m_wrapped
TObject * m_wrapped
wrapped object.
Definition: BrowsableWrapper.h:46
Belle2::BrowsableWrapper::Browse
virtual void Browse(TBrowser *b)
Reimplementation to store additional info on current state.
Definition: BrowsableWrapper.cc:11