Belle II Software  release-05-02-19
BrowsableWrapper.h
1 #pragma once
2 
3 #include <TQObject.h>
4 #include <TObject.h>
5 
6 #include <string>
7 #include <map>
8 
9 class TBrowser;
10 class TVirtualPad;
11 
12 namespace Belle2 {
18  class BrowsableWrapper : public TQObject, public TObject {
19  public:
21  explicit BrowsableWrapper(TObject* wrapped): m_wrapped(wrapped) { }
22  virtual ~BrowsableWrapper() { }
23 
25  virtual void Browse(TBrowser* b);
26 
28  virtual const char* GetIconName() const { return m_wrapped ? m_wrapped->GetIconName() : ""; }
30  virtual const char* GetName() const { return m_wrapped ? m_wrapped->GetName() : ""; }
31 
32  //not a good idea without making all other functions of wrapped object available :/
33  //virtual bool InheritsFrom(const char* classname) const { return m_wrapped?m_wrapped->InheritsFrom(classname):false; }
34  //virtual TClass* IsA() const { return m_wrapped?m_wrapped->IsA():TObject::Class(); }
35 
37  void padClosed();
38 
40  void setWrapped(TObject* wrapped) { m_wrapped = wrapped; }
41 
43  static const std::map<TVirtualPad*, std::string>& getPads() { return s_pads; }
44 
45  private:
46  TObject* m_wrapped;
47  static std::map<TVirtualPad*, std::string> s_pads;
51  };
53 }
Belle2::BrowsableWrapper::GetIconName
virtual const char * GetIconName() const
Wrap.
Definition: BrowsableWrapper.h:28
Belle2::BrowsableWrapper::setWrapped
void setWrapped(TObject *wrapped)
Wrap the given object, does NOT take ownership.
Definition: BrowsableWrapper.h:40
Belle2::BrowsableWrapper::ClassDef
ClassDef(BrowsableWrapper, 0)
A wrapper for browsable objects to enable automatic redrawing.
Belle2::BrowsableWrapper::BrowsableWrapper
BrowsableWrapper(TObject *wrapped)
Wrap the given object, does NOT take ownership.
Definition: BrowsableWrapper.h:21
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::GetName
virtual const char * GetName() const
Wrap.
Definition: BrowsableWrapper.h:30
Belle2::BrowsableWrapper::padClosed
void padClosed()
Slot to remove associated pad from central map.
Definition: BrowsableWrapper.cc:24
Belle2::BrowsableWrapper
A wrapper for browsable objects to enable automatic redrawing.
Definition: BrowsableWrapper.h:18
Belle2::BrowsableWrapper::m_wrapped
TObject * m_wrapped
wrapped object.
Definition: BrowsableWrapper.h:46
Belle2::BrowsableWrapper::getPads
static const std::map< TVirtualPad *, std::string > & getPads()
Get list of pads (static).
Definition: BrowsableWrapper.h:43
Belle2::BrowsableWrapper::Browse
virtual void Browse(TBrowser *b)
Reimplementation to store additional info on current state.
Definition: BrowsableWrapper.cc:11