00001 //--------------------------------------------------------------- 00002 // Go4 Release Package v2.10-5 (build 21005) 00003 // 03-Nov-2005 00004 //--------------------------------------------------------------- 00005 // The GSI Online Offline Object Oriented (Go4) Project 00006 // Experiment Data Processing at DVEE department, GSI 00007 //--------------------------------------------------------------- 00008 // 00009 //Copyright (C) 2000- Gesellschaft f. Schwerionenforschung, GSI 00010 // Planckstr. 1, 64291 Darmstadt, Germany 00011 //Contact: http://go4.gsi.de 00012 //---------------------------------------------------------------- 00013 //This software can be used under the license agreements as stated 00014 //in Go4License.txt file which is part of the distribution. 00015 //---------------------------------------------------------------- 00016 #ifndef TGO4PARAEDITSTATUS_H 00017 #define TGO4PARAEDITSTATUS_H 00018 00019 #include "Go4StatusBase/TGo4Status.h" 00020 #include <vector> 00021 #include "TObjArray.h" 00022 #include "TList.h" 00023 00024 class TGo4Parameter; 00025 class TGo4Fitter; 00026 00027 using namespace std; 00028 00032 class TGo4ParaEditStatus : public TGo4Status { 00033 public: 00034 00035 TGo4ParaEditStatus(const char* name, const char* title); 00036 virtual ~TGo4ParaEditStatus(); 00037 00038 void UpdateParameter(TGo4Parameter* source); 00039 00042 Bool_t LoadParameter(const Text_t* filename, const Text_t* parname=0); 00043 00046 //Bool_t SaveParameter(const Text_t* filename, const Text_t* parname=0); 00047 00048 00049 TGo4Parameter* GetParameter(){return fxPara;} 00050 00051 Int_t GetMemNumber(){return fiMemNum;} 00052 00054 Long_t GetMemberAddress(Int_t i); 00055 00057 void SetParaName(const Text_t* name); 00058 00060 void SetParaClass(const Text_t* name); 00061 00063 const Text_t* GetParaName(); 00064 00066 const Text_t* GetParaClass(); 00067 00069 const Text_t* GetParaMember(Int_t i); 00070 00072 const Text_t* GetParaMemType(Int_t i); 00073 00075 const Text_t* GetParaMemVal(Int_t i); 00076 00078 const Text_t* GetParaMemComment(Int_t i); 00079 00083 void SetParaMemVal(Int_t i, const Text_t* val); 00084 00086 void SetFitPointerAddress(Long_t add) 00087 { 00088 fxFitPointer= (TGo4Fitter**) add; 00089 } 00090 TGo4Fitter* GetLastFitter() 00091 { 00092 return (*fxFitPointer); 00093 } 00094 00097 void UpdateLastFitter(TGo4Fitter* source); 00098 00099 00105 const Int_t GetParaMemArrIndex(Int_t i); 00106 00108 const Int_t GetParaMemArrIndey(Int_t i); 00109 00111 Bool_t IsParaMemVisible(Int_t i); 00112 00114 void SetParaMemVisible(Int_t i, Bool_t on); 00115 00117 void ResetParameterList(); 00118 00121 const Text_t* NextParameterClass(); 00122 00123 private: 00124 00126 void UpdateMemberLists(); 00127 00131 void EvalMembers(TClass* cl, Long_t baseoffset=0); 00132 00135 const Text_t* ValueString(const Text_t* type, Long_t address); 00136 00139 void SetCast(const Text_t* memtype,Long_t address); 00140 00144 void SetValue(const Text_t* memtype, 00145 const Text_t* expression, 00146 Long_t address); 00147 00148 00150 void BuildParameterList(); 00151 00152 TGo4Parameter* fxPara; 00153 00155 TClass* fxParaClass; 00156 00158 TList* fxDatamembers; 00159 00161 Int_t fiMemNum; 00162 00164 TObjArray fxNames; 00165 00167 TObjArray fxTypes; 00168 00170 TObjArray fxVals; 00171 00173 TObjArray fxComments; 00174 00176 vector <Long_t> fxAddress; 00177 00180 vector <Int_t> fxArrayIndex; 00181 00184 vector <Int_t> fxArrayIndey; 00185 00187 vector <Bool_t> fbMemberVisible; 00188 00190 Float_t* fxDataFloat; 00191 Double_t* fxDataDouble; 00192 Int_t* fxDataInt; 00193 UInt_t* fxDataUInt; 00194 Short_t* fxDataShort; 00195 Char_t* fxDataChar; 00196 Long_t* fxDataLong; 00197 Bool_t* fxDataBool; 00198 UShort_t* fxDataUShort; 00199 UChar_t* fxDataUChar; 00200 ULong_t* fxDataULong; 00201 TString* fxDataString; 00202 00204 TGo4Fitter** fxFitPointer; 00205 00207 Int_t fiDatatypeSize; 00209 Text_t fcTextBuffer[256]; 00210 00212 TList fxParaClassList; 00213 00215 TIterator* fxNextParaClass; 00216 }; 00217 #endif //TGO4PARAEDITSTATUS_H 00218 00219 00220 00221 //----------------------------END OF GO4 SOURCE FILE ---------------------