#ifndef ROOT_TEveParamList
#define ROOT_TEveParamList
#include "TEveElement.h"
#include "TQObject.h"
#include <vector>
class TEveParamList : public TEveElement,
                      public TNamed,
                      public TQObject
{
   friend class TEveParamListEditor;
public:
   struct FloatConfig_t
   {
      Float_t   fValue, fMin, fMax;
      TString   fName;
      Bool_t    fSelector;
      FloatConfig_t(TString name, Double_t value, Double_t min, Double_t max, Bool_t selector = kFALSE):
         fValue(value), fMin(min), fMax(max), fName(name), fSelector(selector) {}
      FloatConfig_t():	fValue(0), fMin(0), fMax(0), fName(""), fSelector(kFALSE) {}
   };
   typedef std::vector<FloatConfig_t>       FloatConfigVec_t;
   typedef FloatConfigVec_t::iterator       FloatConfigVec_i;
   typedef FloatConfigVec_t::const_iterator FloatConfigVec_ci;
   struct IntConfig_t
   {
      Int_t     fValue, fMin, fMax;
      TString   fName;
      Bool_t    fSelector;
      IntConfig_t(TString name, Int_t value, Int_t min, Int_t max, Bool_t selector=kFALSE) :
         fValue(value), fMin(min), fMax(max), fName(name), fSelector(selector) {}
      IntConfig_t() : fValue(0), fMin(0), fMax(0), fName(""), fSelector(kFALSE) {}
   };
   typedef std::vector<IntConfig_t>       IntConfigVec_t;
   typedef IntConfigVec_t::iterator       IntConfigVec_i;
   typedef IntConfigVec_t::const_iterator IntConfigVec_ci;
   struct BoolConfig_t
   {
      Bool_t    fValue;
      TString   fName;
      BoolConfig_t(TString name, Bool_t value): fValue(value), fName(name) {}
      BoolConfig_t() : fValue(kFALSE), fName("") {}
   };
   typedef std::vector<BoolConfig_t>       BoolConfigVec_t;
   typedef BoolConfigVec_t::iterator       BoolConfigVec_i;
   typedef BoolConfigVec_t::const_iterator BoolConfigVec_ci;
private:
   TEveParamList(const TEveParamList&);            
   TEveParamList& operator=(const TEveParamList&); 
protected:
   Color_t              fColor;
   FloatConfigVec_t     fFloatParameters;
   IntConfigVec_t       fIntParameters;
   BoolConfigVec_t      fBoolParameters;
public:
   TEveParamList(const Text_t* n="TEveParamList", const Text_t* t="", Bool_t doColor=kFALSE);
   virtual ~TEveParamList() {}
   void AddParameter(const FloatConfig_t& parameter) { fFloatParameters.push_back(parameter); }
   void AddParameter(const IntConfig_t& parameter)   { fIntParameters.push_back(parameter); }
   void AddParameter(const BoolConfig_t& parameter)  { fBoolParameters.push_back(parameter); }
   const FloatConfigVec_t&  GetFloatParameters() { return fFloatParameters; }
   const IntConfigVec_t&    GetIntParameters()   { return fIntParameters; }
   const BoolConfigVec_t&   GetBoolParameters()  { return fBoolParameters; }
   FloatConfig_t    GetFloatParameter(const TString& name);
   IntConfig_t      GetIntParameter  (const TString& name);
   Bool_t           GetBoolParameter (const TString& name);
   void ParamChanged(const char* name); 
   ClassDef(TEveParamList, 0); 
};
#include "TGedFrame.h"
class TGButton;
class TGCheckButton;
class TGNumberEntry;
class TGColorSelect;
class TEveGValuator;
class TEveGDoubleValuator;
class TEveParamList;
class TGNumberEntry;
class TEveParamListEditor : public TGedFrame
{
private:
   TEveParamListEditor(const TEveParamListEditor&);            
   TEveParamListEditor& operator=(const TEveParamListEditor&); 
protected:
   TEveParamList                 *fM; 
   TGVerticalFrame               *fParamFrame;
   std::vector<TGNumberEntry*>    fIntParameters;
   std::vector<TGNumberEntry*>    fFloatParameters;
   std::vector<TGCheckButton*>    fBoolParameters;
   virtual void InitModel(TObject* obj);
public:
   TEveParamListEditor(const TGWindow* p=0, Int_t width=170, Int_t height=30,
         UInt_t options=kChildFrame, Pixel_t back=GetDefaultFrameBackground());
   virtual ~TEveParamListEditor() {}
   virtual void SetModel(TObject* obj);
   
   void DoIntUpdate();
   void DoFloatUpdate();
   void DoBoolUpdate();
   ClassDef(TEveParamListEditor, 0); 
};
#endif
Last change: Wed Jun 25 08:37:30 2008
Last generated: 2008-06-25 08:37
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.