ATTPCROOT  0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
AtSidebarAddon.cxx
Go to the documentation of this file.
1 #include "AtSidebarAddon.h"
2 
3 #include <FairLogger.h>
4 
5 #include <Rtypes.h> // for TGenericClassInfo
6 #include <TGFrame.h> // for TGHorizontalFrame
7 #include <TGLabel.h> // for TGLabel
8 #include <TGLayout.h> // for TGLayoutHints, kLHintsCenterY, kLHintsLeft
9 #include <TGNumberEntry.h> // for TGNumberEntry, TGNumberFormat, TGNumberFo...
10 #include <TGString.h> // for TGString
11 #include <TGWindow.h> // for TGWindow
12 #include <TString.h>
13 
14 #include <utility> // for pair
15 
17 
18 void AtSidebarAddon::AddInfoBox(std::string label)
19 {
20  auto bFrame = new TGHorizontalFrame(this);
21  auto bLabel = new TGLabel(bFrame, (TString)label + ": ");
22  auto bInfo = new TGLabel(bFrame, "");
23  bFrame->AddFrame(bLabel);
24  bFrame->AddFrame(bInfo);
25 
26  if (fStrings.find(label) != fStrings.end())
27  LOG(error) << "String labeled " << label << " already exists in this addon!";
28  else
29  fStrings.insert({label, bInfo});
30 
31  this->AddFrame(bFrame);
32 }
33 
34 void AtSidebarAddon::AddIntBox(std::string label, std::string function, int min, int max)
35 {
36  auto bFrame = new TGHorizontalFrame(this);
37  auto bLabel = new TGLabel(bFrame, (TString)label + ": ");
38 
39  auto bEntry = new TGNumberEntry(bFrame, 0., 6, -1, TGNumberFormat::kNESInteger, TGNumberFormat::kNEANonNegative,
40  TGNumberFormat::kNELLimitMinMax, min, max);
41 
42  bEntry->Connect("ValueSet(Long_t)", ClassName(), this, (TString)function);
43  bFrame->AddFrame(bLabel, new TGLayoutHints(kLHintsLeft | kLHintsCenterY, 1, 2, 1, 1));
44  bFrame->AddFrame(bEntry);
45 
46  if (fNumbers.find(label) != fNumbers.end())
47  LOG(error) << "Number labeled " << label << " already exists in this addon!";
48  else
49  fNumbers.insert({label, bEntry});
50 
51  this->AddFrame(bFrame);
52 }
53 
54 TString AtSidebarAddon::GetInfoString(std::string label)
55 {
56  if (fStrings.find(label) == fStrings.end()) {
57  LOG(error) << label << " not defined!";
58  return "";
59  } else
60  return fStrings.find(label)->second->GetText()->GetString();
61 }
62 
63 Long_t AtSidebarAddon::GetIntNumber(std::string label)
64 {
65  if (fNumbers.find(label) == fNumbers.end()) {
66  LOG(error) << label << " not defined!";
67  return 0;
68  } else
69  return fNumbers.find(label)->second->GetNumberEntry()->GetIntNumber();
70 }
71 
72 void AtSidebarAddon::SetInfoString(std::string label, TString value)
73 {
74  if (fStrings.find(label) == fStrings.end())
75  LOG(error) << label << " not defined!";
76  else {
77  fStrings.find(label)->second->SetText(value);
78  dynamic_cast<TGFrame *>(const_cast<TGWindow *>(this->GetParent()))->Layout(); // NOLINT
79  }
80 }
81 
82 void AtSidebarAddon::SetIntNumber(std::string label, Long_t value)
83 {
84  if (fNumbers.find(label) == fNumbers.end())
85  LOG(error) << label << " not defined!";
86  else
87  fNumbers.find(label)->second->GetNumberEntry()->SetIntNumber(value);
88 }
AtSidebarAddon::GetIntNumber
Long_t GetIntNumber(std::string label)
Definition: AtSidebarAddon.cxx:63
AtSidebarAddon
Definition: AtSidebarAddon.h:24
AtSidebarAddon::GetInfoString
TString GetInfoString(std::string label)
Definition: AtSidebarAddon.cxx:54
AtSidebarAddon::AddIntBox
void AddIntBox(std::string label, std::string function, int min=0, int max=1)
Definition: AtSidebarAddon.cxx:34
AtSidebarAddon::SetInfoString
void SetInfoString(std::string label, TString value)
Definition: AtSidebarAddon.cxx:72
AtSidebarAddon::SetIntNumber
void SetIntNumber(std::string label, Long_t value)
Definition: AtSidebarAddon.cxx:82
AtSidebarAddon.h
AtSidebarAddon::fStrings
std::map< std::string, TGLabel * > fStrings
Definition: AtSidebarAddon.h:27
AtSidebarAddon::AddInfoBox
void AddInfoBox(std::string label)
Definition: AtSidebarAddon.cxx:18
AtSidebarAddon::fNumbers
std::map< std::string, TGNumberEntry * > fNumbers
Definition: AtSidebarAddon.h:26
ClassImp
ClassImp(AtSidebarAddon)