ROOT  6.07/01
Reference Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
TEveParamList.h
Go to the documentation of this file.
1 // @(#)root/eve:$Id$
2 // Author: Dmytro Kovalskyi, 28.2.2008
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2007, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 
12 #ifndef ROOT_TEveParamList
13 #define ROOT_TEveParamList
14 
15 #include "TEveElement.h"
16 #include "TQObject.h"
17 #include <vector>
18 
19 //==============================================================================
20 //==============================================================================
21 // TEveParamList
22 //==============================================================================
23 
24 class TEveParamList : public TEveElement,
25  public TNamed,
26  public TQObject
27 {
28  friend class TEveParamListEditor;
29 
30 public:
32  {
36 
38  fValue(value), fMin(min), fMax(max), fName(name), fSelector(selector) {}
40  };
41  typedef std::vector<FloatConfig_t> FloatConfigVec_t;
42  typedef FloatConfigVec_t::iterator FloatConfigVec_i;
43  typedef FloatConfigVec_t::const_iterator FloatConfigVec_ci;
44 
45  struct IntConfig_t
46  {
50 
52  fValue(value), fMin(min), fMax(max), fName(name), fSelector(selector) {}
53  IntConfig_t() : fValue(0), fMin(0), fMax(0), fName(""), fSelector(kFALSE) {}
54  };
55  typedef std::vector<IntConfig_t> IntConfigVec_t;
56  typedef IntConfigVec_t::iterator IntConfigVec_i;
57  typedef IntConfigVec_t::const_iterator IntConfigVec_ci;
58 
59  struct BoolConfig_t
60  {
63 
66  };
67  typedef std::vector<BoolConfig_t> BoolConfigVec_t;
68  typedef BoolConfigVec_t::iterator BoolConfigVec_i;
69  typedef BoolConfigVec_t::const_iterator BoolConfigVec_ci;
70 
71 private:
72  TEveParamList(const TEveParamList&); // Not implemented
73  TEveParamList& operator=(const TEveParamList&); // Not implemented
74 
75 protected:
80 
81 public:
82  TEveParamList(const char* n="TEveParamList", const char* t="", Bool_t doColor=kFALSE);
83  virtual ~TEveParamList() {}
84 
85  void AddParameter(const FloatConfig_t& parameter) { fFloatParameters.push_back(parameter); }
86  void AddParameter(const IntConfig_t& parameter) { fIntParameters.push_back(parameter); }
87  void AddParameter(const BoolConfig_t& parameter) { fBoolParameters.push_back(parameter); }
88 
92 
93  FloatConfig_t GetFloatParameter(const TString& name);
94  IntConfig_t GetIntParameter (const TString& name);
96 
97  void ParamChanged(const char* name); // *SIGNAL*
98 
99  ClassDef(TEveParamList, 0); // Eve element to store generic configuration information.
100 };
101 
102 
103 //==============================================================================
104 //==============================================================================
105 // TEveParamListEditor
106 //==============================================================================
107 
108 #include "TGedFrame.h"
109 
110 class TGButton;
111 class TGCheckButton;
112 class TGNumberEntry;
113 class TGColorSelect;
114 
115 class TEveGValuator;
116 class TEveGDoubleValuator;
117 
118 class TEveParamList;
119 
120 class TGNumberEntry;
121 
123 {
124 private:
125  TEveParamListEditor(const TEveParamListEditor&); // Not implemented
126  TEveParamListEditor& operator=(const TEveParamListEditor&); // Not implemented
127 
128 protected:
129  TEveParamList *fM; // Model object.
131  std::vector<TGNumberEntry*> fIntParameters;
132  std::vector<TGNumberEntry*> fFloatParameters;
133  std::vector<TGCheckButton*> fBoolParameters;
134 
135  virtual void InitModel(TObject* obj);
136 
137 public:
138  TEveParamListEditor(const TGWindow* p=0, Int_t width=170, Int_t height=30,
140  virtual ~TEveParamListEditor() {}
141 
142  virtual void SetModel(TObject* obj);
143 
144  // Declare callback/slot methods
145  void DoIntUpdate();
146  void DoFloatUpdate();
147  void DoBoolUpdate();
148 
149  ClassDef(TEveParamListEditor, 0); // GUI editor for TEveParamList.
150 };
151 #endif
IntConfig_t(TString name, Int_t value, Int_t min, Int_t max, Bool_t selector=kFALSE)
Definition: TEveParamList.h:51
void AddParameter(const FloatConfig_t &parameter)
Definition: TEveParamList.h:85
static Vc_ALWAYS_INLINE int_v min(const int_v &x, const int_v &y)
Definition: vector.h:433
void DoFloatUpdate()
Slot for float parameter update.
const FloatConfigVec_t & GetFloatParameters()
Definition: TEveParamList.h:89
void AddParameter(const IntConfig_t &parameter)
Definition: TEveParamList.h:86
void ParamChanged(const char *name)
Emit ParamChanged() signal.
float Float_t
Definition: RtypesCore.h:53
std::vector< TGCheckButton * > fBoolParameters
IntConfigVec_t::iterator IntConfigVec_i
Definition: TEveParamList.h:56
Color_t fColor
Definition: TEveParamList.h:76
This is the ROOT implementation of the Qt object communication mechanism (see also http://www...
Definition: TQObject.h:53
FloatConfigVec_t::const_iterator FloatConfigVec_ci
Definition: TEveParamList.h:43
TEveParamListEditor & operator=(const TEveParamListEditor &)
Basic string class.
Definition: TString.h:137
Bool_t GetBoolParameter(const TString &name)
Get value for bool parameter 'name'.
int Int_t
Definition: RtypesCore.h:41
bool Bool_t
Definition: RtypesCore.h:59
const Bool_t kFALSE
Definition: Rtypes.h:92
const BoolConfigVec_t & GetBoolParameters()
Definition: TEveParamList.h:91
void AddParameter(const BoolConfig_t &parameter)
Definition: TEveParamList.h:87
Composite GUI element for single value selection (supports label, number-entry and slider)...
FloatConfigVec_t::iterator FloatConfigVec_i
Definition: TEveParamList.h:42
ULong_t Pixel_t
Definition: GuiTypes.h:41
static Pixel_t GetDefaultFrameBackground()
Get default frame background.
Definition: TGFrame.cxx:665
The TNamed class is the base class for all named ROOT classes.
Definition: TNamed.h:33
BoolConfig_t(TString name, Bool_t value)
Definition: TEveParamList.h:64
BoolConfigVec_t::iterator BoolConfigVec_i
Definition: TEveParamList.h:68
IntConfigVec_t::const_iterator IntConfigVec_ci
Definition: TEveParamList.h:57
const IntConfigVec_t & GetIntParameters()
Definition: TEveParamList.h:90
ClassDef(TEveParamListEditor, 0)
FloatConfig_t GetFloatParameter(const TString &name)
Get config-struct for float parameter 'name'.
short Color_t
Definition: RtypesCore.h:79
TEveParamList & operator=(const TEveParamList &)
FloatConfigVec_t fFloatParameters
Definition: TEveParamList.h:77
std::vector< TGNumberEntry * > fFloatParameters
std::vector< BoolConfig_t > BoolConfigVec_t
Definition: TEveParamList.h:67
GUI editor for TEveParamList.
void DoBoolUpdate()
Slot for bool parameter update.
TEveParamListEditor(const TEveParamListEditor &)
TThread * t[5]
Definition: threadsh1.C:13
std::vector< IntConfig_t > IntConfigVec_t
Definition: TEveParamList.h:55
std::vector< TGNumberEntry * > fIntParameters
void DoIntUpdate()
Slot for integer parameter update.
virtual void InitModel(TObject *obj)
Initialize widgets when a new object is selected.
BoolConfigVec_t fBoolParameters
Definition: TEveParamList.h:79
IntConfigVec_t fIntParameters
Definition: TEveParamList.h:78
unsigned int UInt_t
Definition: RtypesCore.h:42
FloatConfig_t(TString name, Double_t value, Double_t min, Double_t max, Bool_t selector=kFALSE)
Definition: TEveParamList.h:37
virtual ~TEveParamListEditor()
IntConfig_t GetIntParameter(const TString &name)
Get config-struct for int parameter 'name'.
double Double_t
Definition: RtypesCore.h:55
TEveParamList * fM
virtual void SetModel(TObject *obj)
Set model object.
static Vc_ALWAYS_INLINE int_v max(const int_v &x, const int_v &y)
Definition: vector.h:440
#define name(a, b)
Definition: linkTestLib0.cpp:5
Collection of named parameters.
Definition: TEveParamList.h:24
Mother of all ROOT objects.
Definition: TObject.h:58
TGVerticalFrame * fParamFrame
virtual ~TEveParamList()
Definition: TEveParamList.h:83
ClassDef(TEveParamList, 0)
TEveParamList(const TEveParamList &)
Composite GUI element for selection of range (label, two number-entries and double-slider).
BoolConfigVec_t::const_iterator BoolConfigVec_ci
Definition: TEveParamList.h:69
TObject * obj
float value
Definition: math.cpp:443
Base class for TEveUtil visualization elements, providing hierarchy management, rendering control and...
Definition: TEveElement.h:33
const Int_t n
Definition: legend1.C:16
std::vector< FloatConfig_t > FloatConfigVec_t
Definition: TEveParamList.h:41