Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
paramlist.C
Go to the documentation of this file.
1 /// \file
2 /// \ingroup tutorial_eve
3 /// Demonstrates usage of simple configuration via TEveParamList class.
4 ///
5 /// \macro_code
6 ///
7 /// \author Matevz Tadel
8 
9 #include "TEveManager.h"
10 #include "TEveParamList.h"
11 #include "TQObject.h"
12 
13 class TParamFollower
14 {
15 public:
16  TParamFollower()
17  {
18  TQObject::Connect("TEveParamList", "ParamChanged(char*)",
19  "TParamFollower", this, "OnParamChanged(char*)");
20  }
21  virtual ~TParamFollower()
22  {
23  TQObject::Disconnect("TParamFollower", "ParamChanged(char*)",
24  this, "OnParamChanged(char*)");
25  }
26 
27  void OnParamChanged(const char* parameter)
28  {
29  auto pl = dynamic_cast<TEveParamList*> (reinterpret_cast<TQObject*>(gTQSender));
30 
31  printf("Change in param-list '%s', parameter '%s'.\n", pl->GetElementName(), parameter);
32  }
33 
34  ClassDef(TParamFollower, 0);
35 };
36 
37 ClassImp(TParamFollower)
38 
39 void paramlist()
40 {
41  TEveManager::Create();
42 
43  TEveParamList* x = 0;
44 
45  x = new TEveParamList("Top config");
46  gEve->AddToListTree(x, 0);
47 
48  x->AddParameter(TEveParamList::FloatConfig_t("Pepe", 20, 0, 110));
49  x->AddParameter(TEveParamList::IntConfig_t("Dima", 100, 0, 110));
50  x->AddParameter(TEveParamList::BoolConfig_t("Chris", 1));
51 
52  x = new TEveParamList("Another config");
53  gEve->AddToListTree(x, 0);
54 
55  x->AddParameter(TEveParamList::FloatConfig_t("MagneticField", 4, -4, 4));
56  x->AddParameter(TEveParamList::FloatConfig_t("Temperature", 16, -20, 40));
57 
58  new TParamFollower;
59 }